MySQL DQL语句

本文详细介绍了DataQueryLanguage(DQL)的基本语法,包括SELECT、FROM、JOIN、WHERE、GROUPBY、HAVING、ORDERBY、LIMIT等,以及聚合函数、分组查询、连接查询、排序、分页和子查询的使用方法,以及关键字的执行顺序。
摘要由CSDN通过智能技术生成

DQL 数据查询语言

Data Query Language
数据查询语言,用来查询数据库中表的记录

1、基本语法

-- 语法
SELECT [ALL | DISTINCT] * | 字段1 , 字段2 , ......
FROM 表1 [as 别名]
    [left | right | inner join 表2]  -- 联合查询
    [WHERE ...]  -- 指定结果需满足的条件
    [GROUP BY ...]  -- 指定结果按照哪几个字段来分组
    [HAVING]  -- 过滤分组的记录必须满足的次要条件
    [ORDER BY ...]  -- 指定查询记录按一个或多个条件排序
    [LIMIT {[offset,]row_count | row_countOFFSET offset}]; -- 指定查询的记录从哪条至哪条

2、基本查询

-- 查看全部数据
SELECT * FROM student;

3、条件查询

-- 条件查询
SELECT * 
FROM student
WHERE Sno = '152022001';

4、聚合函数

只能用在select、group by和having语句中,不能用在where语句中,这与几个关键字的执行顺序有关。

COUNT() -- 统计个数
MAX() -- 最大值
MIN() -- 最小值
SUM() -- 求和
AVG() -- 平均值

5、分组查询

-- 分组查询
SELECT Sdept
FROM student
GROUP BY Sdept
HAVING count(*) >= 10;

6、连接查询

7、排序和分页

-- 排序展示
SELECT *
FROM student
WHERE Ssex = '男'
ORDER BY Sno
LIMIT 10;

8、子查询

一条select查询语句中包含另外一条select查询语句

8.1、WHERE子查询

子查询出现where条件中,跟在where语句后面充当查询条件,每执行一次where条件筛选,就会进行一次子查询,效率低下。像这种反复子查询就属于相关子查询,where语句的子查询都属于相关子查询

8.2、FROM子查询

子查询跟在from之后,通常这种子查询的结果集作为一个临时表,from子查询只会执行一次,不是相关子查询,所以查询效率高

8.3、SELECT子查询

子查询跟在SELECT之后,SELECT子查询也是相关子查询,不推荐

9、select语句中各关键字执行顺序

  1. from [on , join]
  2. where (可以使用表的别名)
  3. group by (可以开始使用select中字段的别名(不是表的别名)后面的语句中都可以使用)
  4. having [聚合函数]
  5. select
  6. distinct
  7. order by
  8. limit

1 ~ 1 选择表

2 ~ 4 筛选条件

5 ~ 8 展示

  • 4
    点赞
  • 8
    收藏
    觉得还不错? 一键收藏
  • 1
    评论
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值