DQL数据查询笔记

概念:DQL英文全称是Data Query Language(数据查询语言),数据查询语言,用来查询数据库中表的记录。

查询过程中去重: 语法格式: select distinct 字段列表 from 表名;

查询指定的字段: 语法格式: select 指定的字段列表 from 表名;

查询所有的字段: 语法格式: select * from 表名;

可以将查到的字段取别名使用as关键字(as也可以省略不写),示例: select name '姓名' from emp;

条件查询

使用where关键字可以查找指定的条件范围:

语法格式: select * from 表名 where 条件列表;

条件查询中常见的字符运算符:

(大于) >=(大于等于) <(小于) <=(小于等于) =(等于) <>(不等于,和!=的效果一样) BETWEEN ... AND ... (在某个返回区间) IN(....)(在in括号后的某个值,多选一) LIKE(通常用于模糊匹配,查询名字中含有新字的示例: select * from 表名 where name like '%新%' ;) IS NULL(判断是否为空) IS NOT NULL(判断是否不为空)

排序查询

语法格式: select 字段列表 from 表名 order by 字段1 排序方式1,字段2 排序方式2.....

升序:ACS (默认使用升序排序,使用升序时ACS可以省略不写)

降序:DESC

分页查询

语法格式: select 字段列表 from 表名 limit 起始索引,每页显示数据数量

起始索引计算公式: (查询页码数 - 1) * 每页显示数据数量,如果是第一页数据,起始索引可以省略不写。

聚合函数

常见的聚合函数: count(统计数量) max(求最大值) min(求最小值) avg(求平均值) sum(求总和)

语法格式: select 聚合函数(字段列表) from 表名;

分组查询

语法格式: select 字段列表 from 表名 [where条件] group by 需要分组的字段名 [having 分组后过滤条件]

where 和 having 条件查询的区别:

1、执行时机不同: where是在分组之前进行过滤,having是在分组之后进行过滤。

2、判断条件不同:where不可以对聚合函数进行判断,having可以对聚合函数进行操作。

完整的条件查询语句:

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

多表设计可以分为三种情况,一对一,一对多,多对多。

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

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

 

缺点: 一个表的数据删除之后,被关联的表数据还存在,这就不能保证数据的一致性和完整性。

解决方案:可以使用外键约束来解决这个问题,什么是外键约束呢?

外键约束:让两张表的数据建立连接,保证数据的一致性和完整性。 对应的关键字:foreign key

语法格式: alter table emp add constraint fk_dept_id foreign key (dept_id) references dept(id);

实现多对多: 建立第三张中间表,中间表至少包含两个外键,分别关联两方主键

评论 2
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值