DQL语句
条件查询
(一) 排序
1.单例排序
单列排序就是使用一个字段排序
SELECT * FROM student3 ORDER BY age DESC;
2.组合排序
组合排序就是先按第一个字段进行排序,如果第一个字段相同,才按第二个字段进行排序,依次类推
SELECT * FROM student3 ORDER BY age DESC, math DESC;
(二)聚合函数
count 统计指定列记录数,记录为NULL的不统计
sum 计算指定列的数值和
AVG 计算指定列的平均值
MAX 计算指定列的最大值
MIN 计算指定列的最小值
(三)分组
1.分组的概念
分组查询是指使用 GROUP BY语句对查询信息进行分组,相同数据作为一组
2.分组的格式
SELECT 字段1,字段2… FROM 表名 GROUP BY 分组字段 [HAVING 条件];
3.怎么分组的
将分组字段结果中相同内容作为一组
4.where
where是在分组前对数据进行过滤
where后面不可以使用聚合函数
5.having
having是在分组后对数据进行过滤.
having后面可以使用聚合函数
(四)limit语句
1.LIMIT的作用
限制查询记录的条数
2.LIMIT语法格式
LIMIT offset,length;
offset是指偏移量,可以认为是跳过的记录数量,默认为0
length是指需要显示的总记录数
数据库备份
(一)备份的应用场景
(二)source命令备份与还原
1.备份格式:
mysqldump -u用户名 -p密码 数据库 > 文件的路径
2.还原格式
SOURCE 导入文件的路径;
数据库约束
(一)主键
1.主键的作用
用来唯一标识一条记录
2.创建主键
在创建表的时候给字段添加主键
字段名 字段类型 PRIMARY KEY
在已有表中添加主键
ALTER TABLE 表名 ADD PRIMARY KEY(字段名);
3.删除主键
ALTER TABLE 表名 DROP PRIMARY KEY;
4.主键自增
AUTO_INCREMENT 表示自动增长
(二)唯一
唯一约束的基本格式
字段名 字段类型 UNIQUE
实现唯一约束
CREATE TABLE st7 ( id INT, NAME VARCHAR(20) UNIQUE );
(三)非空
1.非空约束的基本语法格式
字段名 字段类型 NOT NULL
2.默认值
默认值概念
往表中添加数据时,如果不指定这个字段的数据,就使用默认值
默认值格式
字段名 字段类型 DEFAULT 默认值
3.疑问:如果一个字段设置了非空与唯一约束,该字段与主键的区别
一张表中只有一个字段可以设置为主键
一张表中可以多个字段非空与唯一约束
主键可以自动增长,非空与唯一约束的字段不能自动增长
(四)外键
1.什么是外键约束
一张表中的某个字段引用另一个表的主键
2.创建外键
新建表时增加外键
[CONSTRAINT] [外键约束名称] FOREIGN KEY(外键字段名) REFERENCES 主表名(主键字段名) 已有表增加外键
ALTER TABLE 从表 ADD [CONSTRAINT] [外键约束名称] FOREIGN KEY (外键字段名) REFERENCES 主表(主键字段名);
3.删除外键
ALTER TABLE 从表 drop foreign key 外键名称;
4.外键的级联
ON UPDATE CASCADE – 级联更新,主键发生更新时,外键也会更新
ON DELETE CASCADE --级联删除,主键发生删除时,外键也会删除
表关系
(一)表关系的概念
比如:老公和老婆,部门和员工,老师和学生等。
那么我们在设计表的时候,就应该体现出表与表之间的这种关系。
(二)一对多
例如:班级和学生,部门和员工,客户和订单,分类和商品
建表原则: 在从表(多方)创建一个字段,字段作为外键指向主表(一方)的主键
(三)多对多
例如:老师和学生,学生和课程,用户和角色
建表原则: 需要创建第三张表,中间表中至少两个字段,这两个字段分别作为外键指向各自一方的主键。
(四)一对一
例如:学生和简历,学生和个人信息