mysql语法总结—DQL(2)

本文介绍了SQL中的三种查询技术:子查询,包括在SELECT、FROM和WHERE/HAVING后的不同应用;分页查询,通过LIMIT关键字实现指定数量的数据检索;以及联合查询,使用UNION操作符合并多个查询结果。通过实例详细解析了这些查询方法的用法和应用场景。

1.  子查询

  含义:

  出现在其他语句中的select语句,称为子查询或内查询

  外部的查询语句,称为主查询或外查询

  分类:

  按子查询出现的位置:

    select后面:

        仅仅支持标量子查询 

    from后面:

        支持表子查询

    where或having后面:★

        标量子查询(单行) √

        列子查询  (多行) √

例:

谁的工资比 Abel 高?

#①查询Abel的工资

SELECT salary

FROM employees

WHERE last_name = 'Abel'

#②查询员工的信息,满足 salary>①结果

SELECT *

FROM employees

WHERE salary>(

    SELECT salary

    FROM employees

    WHERE last_name = 'Abel'

);

例:查询最低工资大于50号部门最低工资的部门id和其最低工资

#①查询50号部门的最低工资

SELECT  MIN(salary)

FROM employees

WHERE department_id = 50

#②查询每个部门的最低工资

SELECT MIN(salary),department_id

FROM employees

GROUP BY department_id

#③ 在②基础上筛选,满足min(salary)>①

SELECT MIN(salary),department_id

FROM employees

GROUP BY department_id

HAVING MIN(salary)>(

    SELECT  MIN(salary)

    FROM employees

    WHERE department_id = 50

);

2 分页查询

 语法:

     select 查询列表

     from 表

     【join type join 表2

     on 连接条件

     where 筛选条件

     group by 分组字段

     having 分组后的筛选

     order by 排序的字段】

     limit 【offset,】size; 

    offset要显示条目的起始索引(起始索引从0开始)

    size 要显示的条目个数

例:

查询前五条员工信息

SELECT * FROM  employees LIMIT 0,5;

SELECT * FROM  employees LIMIT 5;

3.联合查询

语法:

查询语句1

union

查询语句2

union

...

例:

查询部门编号>90或邮箱包含a的员工信息

SELECT * FROM employees WHERE email LIKE '%a%' OR department_id>90;;

SELECT * FROM employees  WHERE email LIKE '%a%'

UNION

SELECT * FROM employees  WHERE department_id>90;

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值