Select查询语句(一)
语法:
5 Select 字段名
1 from 表名
2 where 字段查询条件
3 group by 字段/单行函数 分组查询
4 having 根据分组依据,在进行筛选
6 order by 根据分组的字段/单行函数进行 升序或降序
sql语句的执行流程:
1--2--3--4--5--6
from--where--group by--having--select--order by
1. form:来自于那张表,书写表名
2. where:根据字段条件查询,其表达式是布尔表达式
比较查询: 2.1 等值查询 = 和 != 和 >= 和 <= '字符串' 和数字都可以
2.2 关系查询 > 和 < 和 >= 和 <=
逻辑查询: and(并且) or(或者)
区间查询 :between .... and....
枚举(多个值):in(值1,值2,值3) 该字段中的多个值之间使用逗号
null值的处理:2.1 isnull 该字段为null,不存在error
2.2 is notnull 该字段字段不为null,不存在error
模糊查询: like _ : 一个字符 %:0~N个字符
取反操作: not 表示当前值的反义词
3. group by :通过指定的内容进行分组(字段、单行函数、组函数)
是对where过滤后的 数据 进行分组
4. having : 根据第3步,再进行筛选条件,留下符合的内容
5. select : 字段名、函数(可以对保留下的内容进行计算)
多个字段之间使用 逗号 隔开
可以使用 + - * /
可以给当前的字段分别起 别名 as 汉字别名 as可以省略
"汉(空格)字 " 有空格时,使用双引号
6. order by :排序,以字段/单行函数进行排序-根据第3不
默认升序: asc (小-->大)
降序:desc(大-->小)
多个内容进行排序时,分设置排序方式
在排序时,null为最大值
查询语句
基础查询
语法:
SELECT 查询列表 FROM 表名;
查询列表可以是:表中的(一个或多个)字段,常量,变量,表达式,函数
查询结果是一个虚拟的表格
条件查询
语法:
select 查询列表 from 表名 where 筛选条件;
where 条件字句:检索数据中符合条件
的值
分组查询
语法:
select 分组函数,分组后的字段
from 表
【where 筛选条件】
group by 分组的字段
【having 分组后的筛选】
【order by 排序列表】
区别:
关键字 | 所筛选的表 | 关键字位置 | 描述 |
where | 原始表(form后面的表) | group by的前面 | 分组前进行筛选 |
having | 分组后的结果 | group by 的后面 | 分组后筛选 |
表连接查询
排序
语法:
select 查询列表
from 表
where 筛选条件
order by 排序列表 asc/desc
- order by的位置一般放在查询语句的最后(除limit语句之外)
-
asc 升序,如果不写默认是升序 desc 降序
分页
语法:
select 查询列表
from 表
limit offset,pagesize;
- offset代表的是起始的条目索引,默认从0开始
- pagesize代表的是显示的条目数
- 计算offset:
- n=当前页
- offset=(n-1)*pagesize
-
-- 第一页 limit 0 5 -- 第二页 limit 5,5 -- 第三页 limit 10,5 -- 第n页 limit (n-1)*pagesize,pagesize -- pagesize:当前页面大小 -- (n-1)*pagesize:起始值 -- n:当前页面 -- 数据总数/页面大小=总页面数 -- limit n 表示从0到n的页面
- 子查询