数据库总结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;

数据库总结2_第1张图片

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个 ~ 多个)

数据库总结2_第2张图片

1.3分组查询(group by)

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

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

数据库总结2_第3张图片

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;

数据库总结2_第4张图片

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

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条记录

数据库总结2_第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_第6张图片

2多表查询

2.1 一对多

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

2.1.2 外键约束

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

2.2 一对一

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

2.3多对多

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

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

你可能感兴趣的:(数据库,java,数据库,sql)