MySQL笔记——DQL查询数据
DQL查询包括以下这些内容:
• 基础查询
• 条件查询(WHERE)
• 分组查询(GROUP BY)
• 排序查询(ORDER BY)
• 分页查询(LIMIT)
(一)、基础查询
1、查询多个字段
SELECT 字段列表 FROM 表名;
SELECT * FROM 表名;
当前表中数据如下:
2、去除重复记录
SELECT DISTINCT 字段列表 FROM 表名;
直接查询表中address结果如下,可以看出有重复的地址信息出现:
去除重复记录
3、起别名
AS: AS也可以省略
(二)条件查询
1、条件查询语法
SELECT 字段列表 FROM 表名 WHERE 条件列表;
2、条件
查询年龄大于30的SELECT id,name,age,sex,address,math, english,hire_date from stu WHERE age>30;
-- 查询年龄大于等于30岁的信息SELECT id,name,age,sex,address,math, english,hire_date from stu WHERE age>=30;
-- 查询年龄大于等于30岁并且年龄小于等于50的信息SELECT id,name,age,sex,address,math, english,hire_date from stu WHERE age>=30 AND age<=50;
-- 查询年龄不等于30的SELECT id,name,age,sex,address,math, english,hire_date from stu WHERE age!=30;
-- 查询英语为null的
-- 注意:null值的比较不能使用 = !=,需要使用 is is not
SELECT id,name,age,sex,address,math, english,hire_date from stu WHERE english is null;
LIKE 占位符:(1) _:代表单个任意字符(2)%:代表任意个数字符-- 查询姓‘马’的
SELECT id,name,age,sex,address,math,english,hire_date FROM stu WHERE name like '马%';
-- 查询第二个字是‘花’的
SELECT id,name,age,sex,address,math,english,hire_date FROM stu WHERE name like '_花%';
-- 查询名字中有‘运’的
SELECT id,name,age,sex,address,math,english,hire_date FROM stu WHERE name like '%运%';
(三)排序查询
1、排序查询语法SELECT 字段列表 FROM 表名 ORDER BY 排序字段名1 [排序方式1],排序字段名2 [排序方式2]…;排序方式:ASC:升序排列(默认)DESC:降序排列注意: 如果有多个排序条件,当前边的条件值一样时,才会根据第二条进行排序-- 查询年龄按照升序
SELECT id,name,age,sex,address,math,english,hire_date FROM stu ORDER BY age ASC;
-- 查询按照数学成绩降序排列
SELECT id,name,age,sex,address,math,english,hire_date FROM stu ORDER BY math DESC;
-- 查询,按数学成绩降序排列,如果数学成绩一样,再按照英语升序排列
SELECT id,name,age,sex,address,math,english,hire_date FROM stu ORDER BY math DESC,english ASC;
(四)聚合函数
1、聚合函数的概念将一列数据作为一个整体,进行纵向计算。2、聚合函数的分类:
3、聚合函数的语法SELECT 聚合函数名(列名) FROM 表;注意:null值不参与所有聚合函数运算。-- 统计指定列的数量
SELECT count(name) FROM stu;
english列中有一个数据为null,所以统计数量为9,因此,统计数据时要选用不为null的列。推荐直接在括号内写*
-- 查询数学成绩最高的
SELECT max(math) FROM stu;
-- 查询数学成绩最低的
SELECT min(math) FEOM stu;
-- 求数学成绩总和
SELECT sum(math) FEOM stu;
-- 数学成绩平均值
SELECT avg(math) FEOM stu;
(五)分组查询
1、分组查询语句
SELECT 字段列表 FROM 表名 [WHERE 分组前条件限定] GROUP BY 分组字段名 [HAVING 分组后条件过滤];
注意:分组之后,查询的字段为聚合函数和分组字段,查询其他字段无任何意义。where和having的区别:(1)执行的时机不一样:where是分组之前进行限定,不满足where条件,则不参与分组,而having是分组之后对结果进行过滤(2)可判断的条件不一样:where不能对聚合函数进行判断,having可以。执行顺序:where>聚合函数>having查询男女生各自的数学平均分
SELECT avg(math) FROM stu GROUP BY sex;
查询男女生各自数学平均分,以及各自人数
SELECT avg(math),count(*) FROM stu GROUP BY sex;
查询男女生各自数学平均分,以及各自人数,要求:分数低于70不参与分组
SELECT avg(math),count(*) FROM stu WHERE math>=70 GROUP BY sex;
查询男女生各自数学平均分,以及各自人数,要求:分数低于70不参与分组,分组之后人数大于两个的。
SELECT avg(math),count(*) FROM stu WHERE math>=70 GROUP BY sex HAVING count(*)>2;
(六)分页查询
1、分页查询语法SELECT 字段列表 FROM 表名 LIMIT 起始索引,查询条目数;起始索引:从0开始计算公式:起始索引=(当前页码-1) * 每页显示的条数提示:(1)分页查询limit是MySQL数据库的方言(2)Oracle分页查询使用rownumber(3)SQL server分页查询使用top从0开始查询3条数据
SELECT id,name,age,sex,address,math,english,hire_date FROM stu LIMIT 0,3;
每页显示三条数据,查询第一页数据
SELECT id,name,age,sex,address,math,english,hire_date FROM stu LIMIT 0,3;
每页显示三条数据,查询第二页数据
SELECT id,name,age,sex,address,math,english,hire_date FROM stu LIMIT 3,3;
每页显示三条数据,查询第三页数据
SELECT id,name,age,sex,address,math,english,hire_date FROM stu LIMIT 6,3;
MySQL笔记——DQL查询数据相关推荐
- MySQL中DQL查询数据——(四)
MySQL中DQL查询数据--(四) 本篇博客,是个人根据 西部开源-秦疆老师的教学视频整理出的笔记,想看最详细的教学笔记和提供的SQL语句素材,请点击如下链接: https://www.cnblog ...
- JAVA-MySQL四{MySQL重点DQL查询数据}JAVA从基础开始 --7
JAVA-MySQL四{MySQL重点DQL查询数据}JAVA从基础开始 --7 DQL查询语句 DQL - Data Query Language:数据查询语言 指定查询字段 1.全查 2.指定字段 ...
- 4.MySQL的DQL查询数据
4.1DQL (Data Query LANGUAGE):数据查询语言 所以的查询操作都用它, Select 简单和复杂的查询它都能做!5](5.png) 数据库中最核心的语言,最重要的语言 使用频率 ...
- MySQL之DQL(数据查询语言)- 表连接查询
目录 一.简介 1.1.男生表 1.2.女生表 二.左连接查询(左外连接) 三.右连接查询(右外连接) 四.内连接查询 五.全连接查询 五.自连接查询 六.子查询 七.伪表查询 学习计划: 一.简介 ...
- MySQL学习总结(2) --- 数据表管理(增删改查)、使用DQL查询数据(SELECT)
MySQL学习总结(2) - 数据表管理(增删改查).使用DQL查询数据(SELECT) 1. 数据管理(增删改查) 数据库数据管理方法: a.通过SQLyog等管理工具管理数据库数据 b. 通过DM ...
- 数据库应用——DQL查询数据(连表查询 子查询 详细案例)
DQL查询数据 DQL Select完整的语法 练习用的sql脚本 指定查询字段 where 条件子句 连表查询(重要) 三种join的比较 连表查询练习 自连接 分页和排序 子查询 分组和过滤 DQ ...
- MySQL之DQL(数据查询语言)-常见关键字
目录 一.简介 二.SELECT 2.1.查询所有 2.2.查询指定的列 2.3.别名 2.4.其他特别使用 三.FROM 3.1.表 3.2.结果集 四.WHERE 五.COUNT 六.LIMIT ...
- MySQL基础之查询数据
MySQL基础之查询数据 一.DQL操作表中记录环境搭建 细节:查询只是查看数据,不会修改表中数据 创建商品表(goods2)包含: 商品名称(name),商品价格(price),商品销量(sales ...
- java查询mysql装载bean_jsp与javabean链接mysql数据库并查询数据表的简单实例源码
jsp与javabean链接mysql数据库并查询数据表的简单实例源码.这个简单的实例是给新手学习的,或者一些高手临时忘记怎么使用jsp操作mysql数据库时候查找的,包括了建立mysql数据库连接的 ...
最新文章
- 生鲜电商APP开发,有哪五大商机?
- 30. Leetcode 83. 删除排序链表中的重复元素 (链表-双指针)
- 字符串根据字典值排序问题
- java scoket网络编程_嵌入式狗的JAVA之路 socket 网络编程
- stm32f103 spi slave从机模式miso需要上拉
- Thymeleaf中使用select进行消息回显时提示:Exception evaluaating SpringEL expression
- MySQL升级后 MySQL 5.7 时间不兼容问题
- Objective-C之null NaN undefined
- 数据结构队列代码_代码简介:队列数据结构如何工作
- C++手写快读详解(快速读入数字)
- Elasticsearch--springcloud整合 high-level-client-测试-复杂检索---全文检索引擎ElasticSearch工作笔记025
- 压缩JS方法:uglifyjs
- 深入Java集合学习系列:Hashtable的实现原理
- 使用akka框架编写RPC框架
- resetlog oracle,用RMAN的全备恢复resetlog之前的数据
- 东大22春领导科学与决策X《领导科学与决策》在线平时作业3百分非答案
- 【机器学习】AI去马赛克工具(图像修复)
- 孢子社群:今日推荐人工智能微信群:粤、沪、鄂人工智能产业化集群1
- Could not build wheels for xx which use PEP 517 and cannot be installed directly
- win10,GTX1650配置cuda10.1,cudnn7.6.5,cv2环境参考