数据库—进阶语句必备

目录

一、分组查询

1.排序查询

2.聚合查询

3.分组查询

4.group by注意事项

5.同类单独聚合

6.having 和 where的区别

7.分页查询

二、外键约束

1.多表

2.外键约束

3.使用的外键值,必须是主表中存在的

4.删除主表数据

5.注意

三、多表连接

1.内连接

2.左外连接

3.右外连接

4.注意事项

一、分组查询-7

1.排序查询-4

关键字:order by

格式:select 列 from 表 [where] order by 条件(age) (Asc升/Desc降);

二级排序:select 列 from 表 [where] order by 条件(1) Asc , 条件(2) Asc;

注意:在书写代码时,先写where ,再写排序order by,默认升序

2.聚合查询-4

意义:一列数据计算出一个值

种类:最大max(······),最小min(······),平均avg(······),计数count(······),求和sum(······)

格式:select max(age) from 表 where [条件];

查询该表共多少数据:select count (*) from 表 ;

3.分组查询-3

意义:按照指定的字段,将数据分成若干组,通常情况下,分组和聚合结合使用

格式:select 列,[聚合结果] from 表 group by 分组条件列;

与聚合函数合并:select 列,[聚合结果] from 表 where 条件 group by 分组条件列 order by 条件(age) (Asc升/Desc降);

4.group by注意事项-4

(1)在使用group之后,无法在select中使用除分组字段之外的其他字段

(2)聚合函数配合分组进行使用时,聚合的范围是当前分组内部

(3)我们也可以根据多个字段进行分组操作,多个字段完全相同的会被归为一组数据

(4)在开发中使用where筛选,要使用在 group by 之前,order by要用在group by 之后

5.同类单独聚合-4

问题:select 中选择的字段,不能是分组范围外的其他字段

函数:group_count(聚合列)

格式:select group_count(聚合列) from 表 group by 分组列;

注意:按照分组列分组后,同组内不同属性记录放到一条中

6.having 和 where的区别-3
  1. having 是在 group by 之后使用的,而where 是在group by之前使用的

  2. having 中可以使用聚合函数, 而where中不能使用聚合函数

  3. having 中不能使用除分组字段外的其他字段, 而where中可以使用任意字段

7.分页查询-5

定义:按照一定的规则,查询全部数据中的一部分信息, 又叫做边界查询

格式:select 列名 from 表名 limit m , n;

m 代表查询数据的起始索引 : 索引值从0开始 ,如果从头开始查询,则索引值为0

n 代表查询数据的条目数 : 如果要查询5条数据则为5

举例:要查询从 下标为4的记录开始,查询5条数据 limit 4, 5;

二、外键约束-5

1.多表-4

目的:减少数据冗余

  1. 学生表和班级表之前,学生是多的一方,成为从表, 班级是一的一方,称为主表.

在从表中创建一个外键(class_id),绑定主表的主键(class_id) 从而形成对应关系.

  1. 班级表和教师表之间,班级是多的一方称为从表, 教师是一的一方,称为主表.

在从表中创建一个外键(teacher_id),绑定主表中的主键(teacher_id).形成对应关系.

3.学生表和教师表之间.没有直接关系.

2.外键约束-5

外键(建表时末尾直接加):foreign key (外键字段) references category (主表主键)

外键约束:就是主表主键和从表外键之间的关联关系,添加约束后,强制关联,关联不成功则无法插入

如果在定义表时没有添加外键约束,也可以使用alter table进行添加

后加外键:ALTER TABLE 表 ADD CONSTRAINT 外键名 FOREIGN KEY (外键字段) REFERENCES category(主表主键);

删外键:需要使用外键名称,ALTER TABLE 表 DROP FOREIGN KEY 外键名;

3.使用的外键值,必须是主表中存在的-2

先添加主表主键:INSERT INTO category VALUES (2,'办公用品');

再添加从表数据:INSERT INTO productsVALUES (1,'雕牌打字机',23.55,2);

4.删除主表数据-3

先删除从表中,使用该id值的从表记录 :DELETE FROM 从表 WHERE 外键 = 2;

再副除主表中的该记录即可 :DELETE FROM 主表 WHERE id = 2;

总结:副除主表中的数据记录时,该记录不能被从表中的外键引用(绑定),否则无法副除

5.注意-3

外键约束主要是保证了数据的一致性和完整性

外键约束也降低了数据的查询效筝和插入效率

增加了数据插入的难度、提高了数据操作复条性

三、多表连接-4

1.内连接-3

格式:select 字段列表 from 左表 inner join 右表 on 连接规则;

连接规则:左表.列 = 右表.列

内连接:就是左表和右表按照指定规则进行匹配,匹配成功的数据,则保留,不成功则放弃

2.左外连接-3

解释 : 左表和右表链接,保留左表全部数据,和右表中匹配成功数据,其他全删 关键字 : left outer join 格式 : select 列名 from 左表 left outer join 右表 on 连接规则;

3.右外连接-3

解释 : 左表和右表链接,保留右表全部数据,和左表中匹配成功数据,其他全删 关键字 : right outer join 格式 : select 列名 from 左表 right outer join 右表 on 连接规则;

4.注意事项-3

左表是主表还是从表呢? 没有关系 , 写在左边的表就是左表,写在右边的表就是右表

hero作为左表左连接时, 和hero作为右表右连接时获取的数据内容是完全相同的

列的顺序可以随意调整


  • 18
    点赞
  • 20
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值