Sql学习6-2_数据库查询语言DQL
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
要注意的是:当 AND
和 OR
一起使用时, 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相关推荐
- Oracle数据库:sql语言结构,数据查询语言DQL,select * from table;算术,别名,连接,去重等操作
Oracle数据库:sql语言结构,数据查询语言DQL,select * from table;算术,别名,连接,去重等操作 2022找工作是学历.能力和运气的超强结合体,遇到寒冬,大厂不招人,可能很 ...
- SQL学习,Mysql数据库常用表及数据备份。
1.Student表及表数据备份 CREATE TABLE student (st_id varchar(64) NOT NULL DEFAULT '' COMMENT '编号',st_name va ...
- mysql实验6语言结构_实验六 SQL语言数据查询语言DQL.pdf
实验六 SQL语言数据查询语言DQL 实验六 SQL 语言数据查询语言DQL 一.实验目的 数据查询语言指对数据库中的数据查询.统计.分组.排序等操作.查询语 句可以分为简单查询.连接查询.嵌套查询和 ...
- 07--MySQL自学教程:DQL(Data Query Language:数据库查询语言)简介、基础查询、条件查询、模糊查询以及排序(一)
1. DQL(Data Query Language:数据库查询语言)知识点概览 DQL(Data Query Language:数据库查询语言): 用来查询数据(记录),不会对数据进行改变,而是让数 ...
- 【数据库学习笔记】Day03 - SQL语言基础及数据库定义功能
[数据库学习笔记]Day03 - SQL语言基础及数据库定义功能 〇.本文所用数据库表格: 一.关系运算: 关系运算,数学名词,基本运算有两类:一类是传统的集合运算(并.差.交等),另一类是专门的关系 ...
- Python学习日志16 - 数据库SQL查询
Python学习日志 RBHGO的主页欢迎关注 温馨提示:创作不易,如有转载,注明出处,感谢配合~ 目录 文章目录 Python学习日志 目录 Python学习日志16课 - 数据库SQL查询 DQL ...
- MYSQL之DQL(数据库查询语言)
DQL(数据库查询语言): DQL(data query language)数据查询语言,专门用来查询数据. 一般使用的都是Select 所有的查询操作都是这个 简单的查询和复杂的查询都能做 数据库中 ...
- Python|SQL详解之DDL|DML|DQL|DCL|索引|视图、函数和过程|JSON类型|窗口函数|接入MySQL|清屏|正则表达式|executemany|语言基础50课:学习(14)
文章目录 系列目录 原项目地址 第41课:SQL详解之DDL 建库建表 删除表和修改表 第42课:SQL详解之DML insert操作 delete 操作 update 操作 完整的数据 第43课:S ...
- 数据库查询语言SQL概念
SQL (Structured Query Language) 数据查询语言 SQL由如下四部分组成: Data Query Language(DQL) 数据查询语言 标准结构:SELECT... F ...
最新文章
- 因热爱而编码,创造至美生活,挑战高效工作 阿里云智能开发者创新应用大赛全记录...
- UVA 512 Spreadsheet Tracking
- 未结束的字符文字_PAT B1042:字符统计
- Uva 11178 Morley's Theorem 向量旋转+求直线交点
- 决策引擎中的Hunter类策略又是什么?
- XBMC源代码分析 6:视频播放器(dvdplayer)-文件头(以ffmpeg为例)
- GIMP教程 4 图层
- 哈理工OJ 1029 Function Run Fun(记忆思想)
- 关于virtual box安装windows xp虚拟机遇到的一个问题
- java技术英文名词读音_Java开发,Java development,音标,读音,翻译,英文例句,英语词典...
- wpf Route Event Code Snippet
- 题目:给一个不多于5位的正整数,要求:一、求它是几位数,二、逆序打印出各位数字。
- TCL/Tk基础学习(二)
- VC++ 获取窗体句柄,并发送键盘消息(这种方法也可以打开某些应用程序)
- 纯CSS 毛玻璃效果
- IDEA中创建编写JSP
- Everything Is Generated In Equal Probability(HDU - 6595,概率期望)
- 基坑监测系统详细解决方案
- android 仿雷霆战机、打飞机等简易u小游戏
- 京瓷FS1040清零方法
热门文章
- Prometheus 监控之 Blackbox_exporter黑盒监测 [icmp、tcp、http(get\post)、dns、ssl证书过期时间]
- 在路上!OceanBase首次公布四大“开发者友好”实践
- pro6 surface 进入安全_Surface pro 6到手后,别着急,先做好“两个安检”
- 五岳华酿养生露酒赢开创白酒市场新蓝海
- css动画效果:鼠标移上去底部线条从中间往四周动画延伸
- IDEA社区版使用字体连字
- Squid概述及详细应用
- 创建SQLserver数据库
- 深圳服务器机房位置,深圳机房云服务器
- 2005年计算机专转本试题答案,2005_2017年江苏专转本计算机基础历年真题版