MySQL数据查询SQL-DQL

语法格式

select 字段列表|* from 表名
[where 搜索条件]
[group by 分组字段 [having 分组条件]]
[order by 排序字段 排序规则]
[limit 分页参数]

查询语句概括说明

子句 说明 是否必须
select 要返回的列或表达式,字段列表
from 查询的数据表 需要在表中查询时
where 数据行的过滤
group by 分组 仅在分组聚合计算时
having 分组后的数据过滤
order by 输出排序
limit 要提取的结果行数

一、基础查询

-- 查询表中所有列 所有数据
select * from student;
-- 指定字段列表进行查询
select id,name,phone from student;

二、条件查询

  • 可以在where子句中指定任何条件
  • 可以使用 and 或者 or 指定一个或多个条件
  • where条件也可以运用在update和delete语句的后面
  • where子句类似程序语言中if条件,根据mysql表中的字段值来进行数据的过滤
-- 查询 student 表中 age > 22的数据
SELECT * FROM student WHERE age > 18;-- 查询 student 表中 name=某个条件值 的数据
SELECT * FROM student WHERE name = '王五';-- 查询 student 表中 年龄在22到25之间的数据
SELECT * FROM student WHERE age >= 22 and age <= 25;
SELECT * FROM student WHERE age between 22 AND 25;-- 查询 student 表中 年龄不在22到25之间的数据
SELECT * FROM student WHERE age < 22 OR age > 25;
SELECT * FROM student WHERE age NOT BETWEEN 22 AND 25;-- 查询 student 表中 年龄在22到25之间的女生信息
SELECT * FROM student WHERE age >= 22 AND age <= 25 AND sex = '女';

2.1 AND 和 OR

要注意的是:当 ANDOR 一起使用时, sql会优先处理 AND 条件,如有需要应该使用括号来关联条件

2.2 LIKE 子句

可以只用LIKE语句进行模糊查询

-- 使用 % 模糊搜索。%代表任意个任意字符-- 查询name字段中包含五的
SELECT * FROM student WHERE name LIKE '%五%';
-- 查询name字段中最后一个字符 为 五的
SELECT * FROM student WHERE name LIKE '%五';
-- 查询name字段中第一个字符 为 王 的
SELECT * FROM student WHERE name LIKE '王%';-- 使用 _ 单个的下划线。表示一个任意字符,使用和%类似-- 查询表中 name 字段为两个字符的数据
SELECT * FROM student WHERE name LIKE '__';
-- 查询 name 字段最后为五,的两个字符的数据
SELECT * FROM student WHERE name LIKE '_五';

要注意的是:where子句中的like在使用%或者_进行模糊搜索时,效率不高,使用时注意:
尽可能的不去使用%或者_,如果需要使用,也尽可能不要把通配符放在开头处

三、 Mysql 统计函数(聚合函数)

函数 说明
max() 返回查询列中的最大值
min() 返回查询列中的最小值
count() 用来计算表中记录的个数或者列中值的个数,计算内容由SELECT语句指定。当单行时,不计算空值NULL
sum() 用于对数据求和,返回选取结果集中所有值的总和。
avg() 计算一列中数据值的平均值。
-- 计算 users 表中 最大年龄,最小年龄,年龄和及平均年龄
SELECT max(age) AS max_age,min(age) AS min_age,sum(age) AS sum_age,avg(age) AS avg_age FROM student;-- 统计 users 表中的数据量
SELECT COUNT(*) FROM users;

聚合函数除了以上简单的使用意外,通常情况下都是配合着分组进行数据的统计和计算

四、Group BY 分组

group by 语句根据一个或多个列对结果集进行分组。一般情况下,是用与数据的统计或计算,配合聚合函数使用

-- 统计 student 表中 男女生人数,
-- 很明显按照上面的需要,可以写出两个语句进行分别统计
SELECT COUNT(*) FROM student WHERE sex = '女';
SELECT COUNT(*) FROM student WHERE sex = '男';-- 可以使用分组进行统计,更方便
SELECT sex,COUNT(*) FROM student GROUP BY sex;-- 统计1班和2班的人数
SELECT classid,COUNT(*) FROM student GROUP BY  classid;-- 分别统计每个班级的男女生人数
SELECT classid,sex,COUNT(*) AS num FROM student GROUP BY  classid,sex;

注意,在使用。group by分组时,一般除了聚合函数,其它在select后面出现的字段列都需要出现在grouop by 后面

4.1 Having 子句

having是在分组聚合计算后,对结果再一次进行过滤,类似于where,where过滤的是行数据,having过滤的是分组数据

五、Order by 排序

我们在mysql中使用select的语句查询的数据结果是根据数据在底层文件的结构来排序的, 首先不要依赖默认的排序,另外在需要排序时要使用orderby对返回的结果进行排序 Asc 升序,默认 desc降序

-- 按照年龄对结果进行排序,从大到小
SELECT * FROM users ORDER BY age DESC;
-- 从小到大排序 asc 默认就是。可以不写
SELECT * FROM users ORDER BY age;
-- 也可以按照多个字段进行排序
SELECT * FROM users ORDER BY age,id; -- 先按照age进行排序,age相同情况下,按照id进行排序
SELECT * FROM users ORDER BY age,id DESC;

六、Limit 数据分页

  • limit n 提取n条数据
  • limit m,n 跳过m跳数据,提取n条数据
-- 查询users表中的数据,只要3条
SELECT * FROM users LIMIT 3;
-- 跳过前4条数据,再取3条数据
SELECT * FROM users LIMIT 4,3;
-- limit一般应用在数据分页上面
-- 例如每页显示10条数据,第三页的 limit应该怎么写? 思考
--第一页
LIMIT 0,10
--第二页
LIMIT 10,10
--第三页
LIMIT 20,10
--第四页
LIMIT 30,10
-- 提取 user表中 年龄最大的三个用户数据 怎么查询?
SELECT * FROM users ORDER BY age DESC LIMIT 3;

6.1 分页查询的使用

与前端页面交互就是,前端页面传入页数,然后,页数也就是limit的第一个参数page,每页行数就是limit的第二个参数row

SELECT * FROM users LIMIT page,row;

Sql学习6-2_数据库查询语言DQL相关推荐

  1. Oracle数据库:sql语言结构,数据查询语言DQL,select * from table;算术,别名,连接,去重等操作

    Oracle数据库:sql语言结构,数据查询语言DQL,select * from table;算术,别名,连接,去重等操作 2022找工作是学历.能力和运气的超强结合体,遇到寒冬,大厂不招人,可能很 ...

  2. SQL学习,Mysql数据库常用表及数据备份。

    1.Student表及表数据备份 CREATE TABLE student (st_id varchar(64) NOT NULL DEFAULT '' COMMENT '编号',st_name va ...

  3. mysql实验6语言结构_实验六 SQL语言数据查询语言DQL.pdf

    实验六 SQL语言数据查询语言DQL 实验六 SQL 语言数据查询语言DQL 一.实验目的 数据查询语言指对数据库中的数据查询.统计.分组.排序等操作.查询语 句可以分为简单查询.连接查询.嵌套查询和 ...

  4. 07--MySQL自学教程:DQL(Data Query Language:数据库查询语言)简介、基础查询、条件查询、模糊查询以及排序(一)

    1. DQL(Data Query Language:数据库查询语言)知识点概览 DQL(Data Query Language:数据库查询语言): 用来查询数据(记录),不会对数据进行改变,而是让数 ...

  5. 【数据库学习笔记】Day03 - SQL语言基础及数据库定义功能

    [数据库学习笔记]Day03 - SQL语言基础及数据库定义功能 〇.本文所用数据库表格: 一.关系运算: 关系运算,数学名词,基本运算有两类:一类是传统的集合运算(并.差.交等),另一类是专门的关系 ...

  6. Python学习日志16 - 数据库SQL查询

    Python学习日志 RBHGO的主页欢迎关注 温馨提示:创作不易,如有转载,注明出处,感谢配合~ 目录 文章目录 Python学习日志 目录 Python学习日志16课 - 数据库SQL查询 DQL ...

  7. MYSQL之DQL(数据库查询语言)

    DQL(数据库查询语言): DQL(data query language)数据查询语言,专门用来查询数据. 一般使用的都是Select 所有的查询操作都是这个 简单的查询和复杂的查询都能做 数据库中 ...

  8. Python|SQL详解之DDL|DML|DQL|DCL|索引|视图、函数和过程|JSON类型|窗口函数|接入MySQL|清屏|正则表达式|executemany|语言基础50课:学习(14)

    文章目录 系列目录 原项目地址 第41课:SQL详解之DDL 建库建表 删除表和修改表 第42课:SQL详解之DML insert操作 delete 操作 update 操作 完整的数据 第43课:S ...

  9. 数据库查询语言SQL概念

    SQL (Structured Query Language) 数据查询语言 SQL由如下四部分组成: Data Query Language(DQL) 数据查询语言 标准结构:SELECT... F ...

最新文章

  1. 因热爱而编码,创造至美生活,挑战高效工作 阿里云智能开发者创新应用大赛全记录...
  2. UVA 512 Spreadsheet Tracking
  3. 未结束的字符文字_PAT B1042:字符统计
  4. Uva 11178 Morley's Theorem 向量旋转+求直线交点
  5. 决策引擎中的Hunter类策略又是什么?
  6. XBMC源代码分析 6:视频播放器(dvdplayer)-文件头(以ffmpeg为例)
  7. GIMP教程 4 图层
  8. 哈理工OJ 1029 Function Run Fun(记忆思想)
  9. 关于virtual box安装windows xp虚拟机遇到的一个问题
  10. java技术英文名词读音_Java开发,Java development,音标,读音,翻译,英文例句,英语词典...
  11. wpf Route Event Code Snippet
  12. 题目:给一个不多于5位的正整数,要求:一、求它是几位数,二、逆序打印出各位数字。
  13. TCL/Tk基础学习(二)
  14. VC++ 获取窗体句柄,并发送键盘消息(这种方法也可以打开某些应用程序)
  15. 纯CSS 毛玻璃效果
  16. IDEA中创建编写JSP
  17. Everything Is Generated In Equal Probability(HDU - 6595,概率期望)
  18. 基坑监测系统详细解决方案
  19. android 仿雷霆战机、打飞机等简易u小游戏
  20. 京瓷FS1040清零方法

热门文章

  1. Prometheus 监控之 Blackbox_exporter黑盒监测 [icmp、tcp、http(get\post)、dns、ssl证书过期时间]
  2. 在路上!OceanBase首次公布四大“开发者友好”实践
  3. pro6 surface 进入安全_Surface pro 6到手后,别着急,先做好“两个安检”
  4. 五岳华酿养生露酒赢开创白酒市场新蓝海
  5. css动画效果:鼠标移上去底部线条从中间往四周动画延伸
  6. IDEA社区版使用字体连字
  7. Squid概述及详细应用
  8. 创建SQLserver数据库
  9. 深圳服务器机房位置,深圳机房云服务器
  10. 2005年计算机专转本试题答案,2005_2017年江苏专转本计算机基础历年真题版