DQL数据库表记录查询
排序查询 ORDER BY
排序规则:ASC 升序,DESC 降序;
SELECT * FROM 表名 ORDER BY 列名 ASC;升序排列
SELECT * FROM 表名 ORDER BY 列名 ASC,列名 DESC;先按照前面的排,前面的一样再按照后面的排。
聚合函数
常用的聚合函数:COUNT(列名) -- 求个数
MAX()-- 求最大值
MIN () -- 求最小值
SUM()-- 求和
AVG()-- 求平均值
聚合韩式排除为MULL值的列,解决方案
不采用 为NULL的列
函数 IFNULL(列名,0)
分组查询:GROUP BY
1.基础格式: GROUP BY 分组字段
2.注意事项:
1.分组之后,查询的结果是 分组的字段 或者是聚合函数
2.两个区别 WHERE 和 HAVING
2.1 WHERE分组之前的条件筛选,不满足就不参与分组,后面能跟聚合函数
2.2 HAVING 分组之后的条件筛选,不满足条件,不显示出来,后面可以跟聚合函数
3.案例
SELECT 性别,COUNT(主键id) FROM 学生表 GROUP BY 性别;-- 根据性别进行分组,分组后查询学生表中不同性别各自的人数。
分页查询:LIMIT (MySQL数据库专属)
1.基础格式
LIMIT 起始位置,每页条数
2.计算公式
起始位置=(当前页数-1)* 每页条数
3.案例
SELECT * FROM 表名 LIMIT 开始位置,每条页数;
约束
*概念:对表中的数据进行限定,保证表中数据的正确性、有效性和完整性。
非空约束
1.名称:NOT NULL
2.三种操作的方式
a.创建表的时候添加非空约束
CREATE TABLE 表名称(列名1,数据类型1,列名2,数据类型2 NOT NULL);
b.表创建完毕之后,再添加非空约束【条件:不能已经有重复的】
ALTER TABLE 表名称 MODIFY 列名 数据类型 NOT NULL;
c.删除非空约束
ALTER TABLE 表名称 MODIFY 列名 数据类型;
唯一约束
1.名称:UNIQUE
2.效果:不能添加重复的数据,NULL只能有一个
3.三种操作方式
a.创建表的时候添加唯一约束
CREATE TABLE 表名称(列名1,数据类型1,列名2,数据类型2 UNIQUE);
b.表创建完毕之后,再添加唯一约束
ALTER TABLE 表名称 MODIFY 列名 数据类型 UNIQUE;
c.删除唯一约束
ALTER TABLE 表名称 DROP INDEX 列名称;
主键约束
1.名称:PRIMARY KEY
2.效果:非空且唯一,而且一张表中只能有一个主键
3.三种操作方式
a.创建表的时候添加主键约束
CREATE TABLE 表名称(列名1,数据类型1 PRIMARY KEY,列名2,数据类型2 );
b.表创建完毕之后,再添加唯一约束
ALTER TABLE 表名称 MODIFY 列名 数据类型 PRIMARY KEY;
c.删除唯一约束
ALTER TABLE 表名称 DROP PRIMARY KEY;
d.自动增长:
*概念:如果某一列是数值类型的,使用AUTO_INCREMENT;
1.创建表的时候添加
CREATE TABLE 表名称(列名1,数据类型1 PRIMARY KEY AUTO_INCREMENT,列名2,数据类型2 );
2.表创建完毕之后,再添加
ALTER TABLE 表名称 MODIFY 列名 数据类型 AUTO_INVREMENT;
2.删除
ALTER TABLE 表名称 列名 数据类型;
外建约束
1.名称:FOREIGN KEY
效果:让两个表之间产生关联,自己表的外键连别人表的主键
2.三种操作方式
a.创建表大的时候添加外键约束
CREATE TABLE 表名称(
列名1,数据类型,
列名2,数据类型,
CONSTRAINT 外键别名 FOREIGN KEY (外键名称)REFERENCES 其他表名称(其他表主键));
b.创建表后添加外键约束
ALTER TABLE 表名称 ADD ONSTRAINT 外键别名 FOREIGN KEY (外键名称)REFERENCES 其他表名称(其他表主键));
c.删除外键
ALTER TABLE 表名称 DROP FOREIGN KEY 外键名;
3.级联操作:多个表主外表关系删除和修改的时候,彼此之间后受影响
a.添加级联操作
ALTER TABLE 表名称 ADD ONSTRAINT 外键别名 FOREIGN KEY (外键名称)REFERENCES 其他表名称(其他表主键))ON UPDATE CASCADE;
b.关键子:ON UPDATE CASCADE;
ON DELETE CASCADE;
多表关系
1.一对多
实例:
部门和员工之间的关系
建表原则:
一是主键,多的添加外键连接一的主键;
2.多对多
实例:
学生与课程之间的关系
建表原则:
设计一个中间表,至少包含看两个字段(两个表的主键)
3.一对一
实例:
人和身份证
建表原则:
再任意一方添加外键(唯一(UNIQUE)),指向另一方的主键。
范式
1.范式的含义
设计数据库的时候遵循的规范
2.范式分类
第一范式(1NF):每一项数据都是不可分割的原子项
第二范式(2NF):消除部分依赖
第三范式(3NF):消除传递依赖
巴斯-科德范式()
第四范式(4NF)
第五范式(5NF)