上篇数据库基本操作数据库操作
目录
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条记录

注意事项:
起始索引从0开始。 计算公式 : 起始索引 = (查询页码 - 1)* 每页显示记录数(分页查询会用到)
分页查询是数据库的方言,不同的数据库有不同的实现,MySQL中是LIMIT
如果查询的是第一页数据,起始索引可以省略,直接简写为 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站找黑马数据库素材练习 比较全

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

被折叠的 条评论
为什么被折叠?



