一.约束
1.not null
指定某列不能够存储空值.
2.unique
指定某列中每行的值不能够重复.
3.default
指定没有给某列赋值时的默认值
4.primary key
主键, not null 与 unique的结合体, 指定某列中每行的值非空且唯一.
通常在primary key后加 auto_increment, 表示自增操作.
5. foreign key
外键, 外键用于一张表中的字段关联另一张表的主键或者唯一键.
语法: foreign key (字段) references 表名(字段);
通过外键约束, 确保关系的正确性.
6.check
保证列中的值符合指定的条件.
7. 综合使用
创建一个班级表和学生表
二.进阶查询
1.新增(插入查询的结果)
insert into table_name1(目标表) 字段,... (select 字段 from table_name2(查询表));
2.聚合查询
a.聚合函数
count(参数) 统计某一列的行数
sum(参数 计算某一列的和
avg(参数) 计算某一列的平均值
max(参数) 计算某一列的最大值
min(参数) 计算某一列的最小值
round(数值, n) 表示保留数值的小数点后n位
b.使用
3.分组查询
select * from 表1, 表2 group by 字段, ... having (过滤条件);
having:跟在group by之后使用.
where: 在group by 之前使用
4.联合查询
a.内连接
select 表名.字段, ... from 表1, 表2 ...;
select 表明.字段, ... from [inner] 表1 join 表2 ...;
b.外连接
左连接
左表全部显示, 右表没有的内容为null
右连接
右表全部显示, 左表没有的内容为null
c.自连接
实现行与行的比较, 就是进行笛卡尔积.
select 字段, ... from 表1, 表1 where ...;
d.子查询
子查询也叫作嵌套查询, 就是将一条sql语句的查询结果当做另一条sql语句的查询条件.
select 字段, ... from table_name where (查询语句);
例如: 查询工资大于149号员工工资的员工信息
注意:子查询查询出来的结果是临时表.
5.合并查询
select 字段, ... from table_name union select 字段, ... from table_name;
union: 去掉结果集中的重复行.
union all: 不去掉结果集中的重复行.
三.总结
约束: not null, unique, default, primary key, foreign key, check
进阶查询: 新增, 聚合查询(使用聚合函数), 分组查询(group by), 联合查询(多个表), 合并查询.
版权归原作者 NMBG22 所有, 如有侵权,请联系我们删除。