数据库总结2

这篇博客总结了数据库开发操作,包括基本查询、条件查询、分组查询、排序查询、分页查询和聚合函数的使用。此外,还详细介绍了多表查询,如一对多、一对一和多对多的关系实现,特别是外键约束的应用。

上篇数据库基本操作数据库操作

目录

1 数据库开发操作

1.1基本查询(不带任何条件)

1.2条件查询(where)

1.3分组查询(group by)

1.4排序查询(order by)

1.5分页查询(limit)

1.6聚合函数

2多表查询

2.1 一对多

2.1.2 外键约束

2.2 一对一

2.3多对多


1 数据库开发操作

具体格式为:

SELECT
    字段列表
FROM
    表名列表
WHERE
    条件列表
GROUP  BY
    分组字段列表
HAVING
    分组后条件列表
ORDER BY
    排序字段列表
LIMIT
    分页参数

1.1基本查询(不带任何条件)

查询指定字段 name,entrydate并返回

select name,entrydate from tb_emp;

1.2条件查询(where)

有两种运算符  得有印象

  • 比较运算符

  • 逻辑运算符

比较:

比较运算符功能
>大于
>=大于等于
<小于
<=小于等于
=等于
<> 或 !=不等于
between ... and ...在某个范围之内(含最小、最大值)
in(...)在in之后的列表中的值,多选一
like 占位符模糊匹配(_匹配单个字符, %匹配任意个字符)
is null是null

逻辑:

逻辑运算符功能
and 或 &&并且 (多个条件同时成立)
or 或 ||或者 (多个条件任意一个成立)
not 或 !非 , 不是

查询 查询 姓 '张' 的员工信息

select id, username, password, name, gender, image, job, entrydate, create_time, update_time
from tb_emp
where name like '张%'; # 通配符 "%" 代表任意个字符(0个 ~ 多个)

1.3分组查询(group by)

根据性别分组 , 统计男性和女性员工的数量

select job, count(*)
from tb_emp
where entrydate <= '2015-01-01'   -- 分组前条件
group by job                      -- 按照job字段分组
having count(*) >= 2;             -- 分组后条件

where与having区别

执行时机不同:where是分组之前进行过滤,不满足where条件,不参与分组;而having是分组之后对结果进行过滤。
判断条件不同:where不能对聚合函数进行判断,而having可以。

1.4排序查询(order by)

排序方式:

- ASC :升序(默认值)

- DESC:降序

根据入职时间对公司的员工进行升序排序,入职时间相同,再按照更新时间进行降序排序

select id, username, password, name, gender, image, job, entrydate, create_time, update_time
from tb_emp
order by entrydate ASC , update_time DESC;

注意事项:如果是多字段排序,当第一个字段值相同时,才会根据第二个字段进行排序

1.5分页查询(limit)

查询 第3页 员工数据, 每页展示5条记录

select id, username, password, name, gender, image, job, entrydate, create_time, update_time
from tb_emp
limit 10 , 5; -- 从索引10开始,向后取5条记录

注意事项:  

  1. 起始索引从0开始。 计算公式 : 起始索引 = (查询页码 - 1)* 每页显示记录数(分页查询会用到)

  2. 分页查询是数据库的方言,不同的数据库有不同的实现,MySQL中是LIMIT

  3. 如果查询的是第一页数据,起始索引可以省略,直接简写为 limit 条数

1.6聚合函数

注意 : 聚合函数会忽略空值,对NULL值不作为统计         

函数功能
count统计数量
max最大值
min最小值
avg平均值
sum

求和

 count :按照列去统计有多少行数据。
  ~~~~在根据指定的列统计的时候,如果这一列中有null的行,该行不会被统计在其中。
sum :计算指定列的数值和,如果不是数值类型,那么计算结果为0
max :计算指定列的最大值
min :计算指定列的最小值
avg :计算指定列的平均值

练习:

统计该企业员工的 ID 之和

2多表查询

2.1 一对多

一对多关系实现:在数据库表中多的一方,添加字段,来关联属于一这方的主键

2.1.2 外键约束

在现在的企业开发中,很少会使用物理外键,都是使用逻辑外键。 甚至在一些数据库开发规范中,会明确指出禁止使用物理外键 foreign key

2.2 一对一

一对一 :在任意一方加入外键,关联另外一方的主键,并且设置外键为唯一的(UNIQUE)

2.3多对多

多对多:创建第三张中间表,建立两个字段分别关联菜品表的主键和套餐表的主键。

如果想后续练习 可以从B站找黑马数据库素材练习  比较全

评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
红包 添加红包
表情包 插入表情
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值