数据库笔记
获取中... 获取中...
基本概念
理清一些以前的误区
数据库的特点
数据库服务的启动和关闭
1 | net stop rufusql |
登录数据库
可以用它自带的命令行
但这样是默认以root用户的身份进去的
所以我们可以打开命令行窗口,用mysql指令进入,这样可以指定用户名和密码
本来中间还有个指定IP的命令行参数,但这里默认不填,就自动连接到localhost的3306端口了。
命令后面都要加分号!真是神奇!!
常用命令
查看当前所有的数据库:show databases;
打开指定的库:use 库名;
查看当前的所有表:show tables;
查看当前所在库:select database();
查看其他库的所有表:show tables from 库名;
创建表:create table 表名(列名 列类型,列名 列类型);
查看表结构:desc 表名;
保存的时候的文件格式是sql.
各种语言(一览全局)
DQL语言学习(数据库查询语言)
基础查询
1 | #基础查询,查询一列 |
1 | #sql中的字符串拼接,可以拼接多个 |
条件查询
1 | #选出工资大于12000的人的所有信息 |
排序查询
1 | #关键是使用order by语句 |
后面的由于下载了老师的代码,格式质量会大升级!
1 | /* |
1 | #进阶4:常见函数 |
分组函数
1 | #二、分组函数 |
分组查询
1 | /* |
注意where和having的区别,前者是分组前筛选,后者是分组后筛选
等值连接
1 | #1.显示所有员工的姓名,部门号和部门名称。 |
非等值连接
自连接
自连接就是自己和自己做连接查询
外连接
外连接分主从表,如果从表中有和它匹配的,则显示匹配的值。如果从表中没有和它匹配的,则显示null。外连接查询结果=内连接结果+主表中有而从表没有的记录,查询结果会将主表中的所有记录都显示出来,而等值连接自连接那些都是只显示交集。
而左右连接,其实就是指定了主从表
而全外连接,就是
主键
像那个带有小黄钥匙标志的就是主键,主键的特点就是
- 每个表只能定义一个主键。
- 主键值必须唯一标识表中的每一行,且不能为 NULL,即表中不可能存在有相同主键值的两行数据。这是唯一性原则。
- 一个字段名只能在联合主键字段表中出现一次。
- 联合主键不能包含不必要的多余字段。当把联合主键的某一字段删除后,如果剩下的字段构成的主键仍然满足唯一性原则,那么这个联合主键是不正确的。这是最小化原则。
1 |
|
交叉连接
就是创建一个笛卡尔乘积的通用说法。
总结
子查询(感觉就是嵌套)
1 |
|
分页查询
1 | /* |
联合查询
就像是取并集一样
1 | /* |
DML语言学习(用来操纵数据库的表字段)
表中行的插入、删除语句
1 | #DML语言 |
骚操作
1 | #1. 运行以下脚本创建表my_employees |
DDL语言学习(就是对数据库内部的对象进行操作)
DDL 是数据定义语言的缩写,简单来说,就是对数据库内部的对象进行创建、删除、修改的操作语言。它和 DML 语言的最大区别是 DML 只是对表内部数据的操作,而不涉及到表的定义、结构的修改,更不会涉及到其他对象。DDL 语句更多的被数据库管理员(DBA)所使用,一般的开发人员很少使用。
库的管理
1 | #DDL |
约束
1 | /* |
标识列
有点像excel里面自动标号的列
1 | #标识列 |
TCL语言(事务控制语言)
Transaction Control Language 事务控制语言
事务
事务并发的各种问题
1 | /* |
视图
一种虚拟的表,只保存了sql的逻辑,没有保存查询结果
1 | /* |
本文由 rufus 创作,采用 知识共享署名 4.0 国际许可协议。
本站文章除注明转载/出处外,均为本站原创或翻译,转载请务必署名。