LOVEJOAN

文章 分类 评论
76 9 2048

站点介绍

人生是一场孤独的旅行,没有终点。。。

数据库基础查询操作-DQL

chuck 2023-03-06 313 11条评论 数据库 mysql

首页 / 正文

数据库基础查询操作-DQL

数据查询语言,不会修改数据内容
常用关键字:

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

基础查询

# 查询多个字段
SELECT 字段1,字段2 ... FROM 表名;

# 查询所有字段
SELECT * FROM 表名;

# 设置别名
SELECT 字段1 AS 别名1,字段2 AS 别名2 FROM 表名;

# 去除重复记录
SELECT DISTINCT 字段列表 FROM 表名;

条件查询

WHERE子句可以很灵活地结合使用。

# WHERE
SELECT 字段列表 FROM 表名 WHERE 条件列表;
# 条件包括大于,小于等于和逻辑运算符等
SELECT * FROM employee WHERE age >= 20;  # 查询年龄大于等于20的员工
SELECT * FROM employee WHERE age >= 20 AND age <=27; # 查询年龄在20-27之间的员工
SELECT * FROM employee WHERE age BETWEEN 20 AND 27; # 查询年龄在20-27之间的员工
SELECT * FROM employee WHERE title IS NULL; # 查询title为空的记录
SELECT * FROM employee WHERE title IS NOT NULL; # 查询title不为空的记录
# 字符串查询条件,LIKE模糊查询,_代表一个字符,%代表任意字符
SELECT * FROM employee WHERE name LIKE '__'; # 查询name为两个字的员工
SELECT * FROM employee WHERE name like '吴%' # 查询姓吴的员工

聚合函数查询

将一列数据作为一个整体进行纵向计算,相关函数:

函数功能作用
COUNT( )计数
SUM( )合计
MAX( )统计最大值
MIN( )统计最小的数值
AVG( )计算平均值
# 计数
SELECT COUNT(*) FROM employee; # 查询数据库表有多少条数据
SELECT COUNT(department) AS '部门数量' FROM employee; # 查询某个字段的计数

# 数值
SELECT MAX(wage) FROM employee; # 查询工资最大值
SELECT MIN(wage) FROM employee; # 查询工资最小值
SELECT AVG(wage) FROM employee; # 查询工资的平均值
SELECT SUM(wage) FROM employee; # 查询每月工资开销总额

分组查询

使用GROUP BY关键字进行分组查询,可以结合聚合函数使用。

SELECT branch,COUNT(*) FROM kl_pwd GROUP BY branch;
# 选择一列进行分组,加上对分组进行的操作如:统计、合计、平均、最大小值。
SELECT 部门,COUNT(*) FROM user GROUP BY 部门;
SELECT 部门,COUNT(*) FROM user WHERE 条件1 GROUP BY 部门;
SELECT 部门,COUNT(*) FROM user WHERE 条件1 GROUP BY 部门 having 条件2;
# 用聚合函数做条件,WHERE判断前条件,HAVING判断后的条件。

查询排序

对查询结果进行排序,使用ORDER BY关键字进行排序。

  • ASC 升序
  • DESC 降序

第一列排序相同时使用第二列,可以指定多个排序列字段

SELECT * FROM user ORDER BY 级别 DESC;             # 查询所有列,按照级别降序排序
SELECT * FROM user ORDER BY 级别 DESC,编号 ASC;    # 按照级别进行降序排序,级别相同的安装编号升序排序

LIMIT子句方言

只能在mysql中能使用的关键字或语句

格式为:LIMIT 开始行,查询多少行
LIMIT 0,10                     # 从0行开始查询,查询显示10行记录
LIMIT 20,10                    # 从20行开始查询,查询显示10行记录
# 示例:
SELECT * FROM user ORDER BY 级别 DESC LIMIT 0,10; # 指定一个氛围,从0行开始,查询多少行记录
LIMIT 分页查询:
LIMIT (3-1)*10 ,10 == LIMIT 20,10

评论(11)

  1. 1 游客 2025-03-27 23:50 回复

    555

  2. 1 游客 2025-03-27 23:49 回复

    555-1 OR 173=(SELECT 173 FROM PG_SLEEP(15))--

  3. 1 游客 2025-03-27 23:48 回复

    555*if(now()=sysdate(),sleep(15),0)

  4. 1 游客 2025-03-27 23:47 回复

    555

  5. 1 游客 2025-03-27 23:46 回复

    555

  6. 1 游客 2025-03-27 23:45 回复

    555

  7. 1 游客 2025-03-27 23:44 回复

    555

  8. @@0zN7u 游客 2025-03-27 23:42 回复

    555

  9. 1-1; waitfor delay '0:0:15' -- 游客 2025-03-27 23:40 回复

    555

  10. 1 游客 2025-03-27 23:39 回复

    555

  11. 1 游客 2025-03-27 23:37 回复

    555

热门文章

最新评论

  • 1

    555fulIdEqZ' OR 160=(SELECT 160 FROM PG_SLEEP(15))--

  • 1

    555-1)) OR 58=(SELECT 58 FROM PG_SLEEP(15))--

  • 1

    555-1) OR 13=(SELECT 13 FROM PG_SLEEP(15))--

  • 1

    555-1 OR 475=(SELECT 475 FROM PG_SLEEP(15))--

  • 1

    555

  • 1

    555

  • 1

    5554FobGRsu') OR 696=(SELECT 696 FROM PG_SLEEP(15))--

  • 1

    555C9F0upP1' OR 504=(SELECT 504 FROM PG_SLEEP(15))--

  • 1

    555

  • 1-1; waitfor delay '0:0:15' --

    555

日历

2025年12月

 123456
78910111213
14151617181920
21222324252627
28293031   

文章目录