0


Mysql(二) - 约束, 进阶查询

一.约束

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), 联合查询(多个表), 合并查询.

标签: mysql 数据库 sql

本文转载自: https://blog.csdn.net/nmbg11/article/details/142046638
版权归原作者 NMBG22 所有, 如有侵权,请联系我们删除。

“Mysql(二) - 约束, 进阶查询”的评论:

还没有评论