(DQL)查询:
DQL(Data Query Language 数据查询语言)。用途是查询数据库数据,如SELECT语句。是SQL语句 中最核心、最重要的语句,也是使用频率最高的语句。其中,可以根据表的结构和关系分为单表查询和多 表联查。
一切查询的结构都是虚拟表
单表-----简单查询:
针对数据库中的一张数据表进行查询,可以通过各 种查询条件和方式去做相关的优化。
select * from 表名;
select 字段名,字段名 from 表名;
关键字:as
select 字段名 as '别名',字段名 as '别名' from 表名;
SELECT 表别名.字段名1 AS 字段别名1, 表别名.字段名2 AS 字段别名2 FROM 表名 AS 表别名
• “.” 当前表存在的字段;
• “AS”可忽略不写,“AS”的功能如下:
• 给字段取一个新别名; • 给表取一个新别名;
• 把经计算或总结的结果用另外一个新名称来代替。
去除重复的数据(去除所有的查询)
select DISTINCT 字段名 from 表名;
去掉SELECT查询返回的记录结果中重复的记录(所有返回列的值都相同), 只返回一条。
按条件查询
select * from 表名 where 条件;
• WHERE条件子句不是必须的;
• WHERE子句,可以给查询增加条件;
• 条件:为筛选条件,如不指定则修改该表的所有数据。
模糊查询:
关键字:like
select * from 表名 where 字段名 like '%关键字%'(包含)
select * from 表名 where 字段名 like '关键字%'(开头)
select * from 表名 where 字段名 like '关键字_'(以关键字开头的两个字符)
%表示任意0个或多个字符
_表示任意一个字符
关键字:in
in表示在某个集合的范围内查找
查询的字段的值,至少与IN 后的括号中的一个值相同;
多个值之间用英文逗号隔开。
null值查询:
其中: • NULL代表“无值”;
• 区别于零值0和空符串;
• 只能出现在定义允许为NULL的字段;
• 须使用 IS NULL 或 IS NOT NULL 比较操作符去比较。
常用的聚合函数:
函数名 | 返回值 |
---|---|
AVG(col) | 返回指定列的平均值 |
COUNT(col) | 返回指定列中非NULL值的个数 |
MIN(col) | 返回指定列的最小值 |
MAX(col) | 返回指定列的最大值 |
SUM(col) | 返回指定列的所有值之和 |
注意:用count统计个数的时候,统计的列名中有null的话则不会被统计
count():括号中写任意常量
分组:
GROUP BY和HAVING分组
GROUP BY: 1、对所有的数据进行分组统计; 2、分组的依据字段可以有多个,并 依次分组。
HAVING : 与GROUP BY结合使用,进行分组 后的数据筛选。
ORDER BY排序:
默认是升序(asc)
降序(desc)
select * from 表名 ORDER BY 字段名 desc,字段名 关键字
LIMIT关键字:
LIMIT关键字是MySQL特有关键字;
LIMIT限制SELECT返回结果的行数;
后有两个参数:索引---步长
索引:0 表示第一个
步长:每页显示几个数据