1.DQL:
查询语句
排序查询
聚合函数
分组查询
分页查询
2.约束
3.多表之间的联系
4.范式
5.数据库的备份与还原
排序查询
ORDER BY 子句
ORDER BY 排序字段1 顺序1,排序字段2 顺序2
默认为升序
SELECT*
FROM student3
ORDER BY math DESC,english DESC; -- 第一条件相同时 会按照第二条件排序
聚合函数
进行列的纵向计算
1 count 计算个数
2 max 计算最大值
3 min 计算最小值
4 sum 计算和
5 arg 平均值
聚合函数会自动排除非空
SELECT COUNT(IFNULL(english,0)) -- 聚合函数非空 或者选择非空的进行计算 主键
FROM student3;
分组查询
GROUP BY 字段 聚合函数
SELECT sex,AVG(math),COUNT(id)
FROM student3
WHERE math>70 -- 条件
GROUP BY sex;
WHERE 和HAVING 条件语句的区别
WHERE 是在未分组前进行筛选的 如果不满足 则不会分组
HAVING 分组之后产生效果 如果不满足 不会被查询
WHERE 不可以用聚合函数
HAVING 可以
分页查询
1 语句 LIMIT 开始的索引 每页查询的条数
SELECT *
FROM student3
LIMIT 0,3;
公式:开始的索引=(当前页码-1)*每页显示的条数
约束
主键约束 PRIMARY KEY
非空约束 NOT NULL
唯一约束 UNIQUE
外键约束 FOREIGN KEY
非空约束 NOT NULL
- 创建时添加非空
CREATE TABLE stu(
id INT UNIQUE, -- 唯一约束
NAME VARCHAR(20) NOT NULL -- 非空约束
);
2.删除非空约束
ALTER TABLE 表名 MODIFY 列名 数据类型;
ALTER TABLE stu MODIFY NAME VARCHAR(20);
3.创建后修改数据为非空
ALTER TABLE 表名 MODIFY 列名 数据类型 NOT NULL
ALTER TABLE stu MODIFY NAME VARCHAR(20) NOT NULL;
唯一约束 UNIQUE 列中不可重复
mysql中唯一约束可以存有多个null
1.创建时添加唯一约束
CREATE TABLE stu(
id INT UNIQUE, -- 唯一约束
NAME VARCHAR(20) NOT NULL -- 非空约束
);
2.删除唯一约束
ALTER TABLE 表名 DROP INDEX 列名;
ALTER TABLE stu DROP INDEX id;
3.创建后添加唯一约束
ALTER TABLE 表名 MODIFY 列名 数据类型 UNIQUE;
ALTER TABLE stu MODIFY id INT UNIQUE;
主键约束 PRIMARY KEY 非空且唯一
一张表只能有一个主键
表中的唯一标识
创建时添加主键
CREATE TABLE stu1(
id INT PRIMARY KEY,
NAME VARCHAR(20)
);
删除主键 因为表中就一个主键 所以不用声明主键位置 如果有自增 删除时要取消自增
ALTER TABLE 表名 DROP PRIMARY KEY;
ALTER TABLE stu1 DROP PRIMARY KEY;
在创建后添加主键
ALTER TABLE 表名 MOTIFY 列名 类型 PRIMARY KEY
ALTER TABLE stu1 MODIFY id INT PRIMARY KEY;
主键自增 如果填入主键为null 则会对照上一行的值 进行自增
AUTO_INCREMENT
创建表时添加
create table stu1(
id int PRIMARY KEY auto_increment,
name varchar(20)
);
删除主键自增
ALTER TABLE 表名 MODIFY 列名 数据类型
创建后添加
ALTER TABLE 表名 MODIFY 列名 数据类型 AUTO_INCREMENT
外键 让表与表产生关系
- CONSTRAINT 外键名称FOREIGN KEY 外键列名 REFERENCES 主表名称 ( 主表列名称)
网友评论