SELECT 字段列表 select
FROM 表名列表 from
WHERE 条件列表 where
GROUP BY 分组字段列表 group by
HAVING 分组后条件列表 having
ORDER BY 排序字段列表 order by
LIMIT 分页参数 limit
SELECT 字段列表 FROM 表名列表 WHERE 条件列表 GROUP BY 分组字段列表 HAVING 分组后条件列表 ORDER BY 排序字段列表 LIMIT 分页参数
select 字段1,字段2,字段3,.... from 表名
select * from 表名设置别名
select 字段1 [ as 别名1],字段2[as 别名2]... from 表名
as可以省略不写
select distinct 字段列表 from 表名
-- 查询 年龄 age > 18 的员工有哪些
select * from employee where age >18;
-- 查询 年龄 age < 18 的员工有哪些
select * from employee where age < 18;
-- 查询 年龄 age = 18 的员工有哪些
select * from employee where age = 18;
-- 查询 年龄 age >= 18 的员工有哪些
select * from employee where age >= 18;
-- 查询 年龄 age 不为null 的员工有哪些
select * from employee where age is not null;
-- 查询年龄 age 不等于 30 的员工有哪些
select * from employee where age != 30;
select * from employee where age <> 30;
-- 查询 年龄在 20 - 25 之间的 员工有哪些
select * from employee where age >= 20 && age <= 25;
select * from employee where age >= 20 and age <= 25;
select * from employee where age between 20 and 25; -- 包头包尾
-- 查询年龄 = 18 并且 性别为 男 的 员工 有哪个
select * from employee where age = 18 and gender = '男';
-- 查询年龄 = 25 或者 28 或者 32 并且性别为 男 的员工有哪些;
-- 因为该语句中使用了 OR 运算符来组合多个条件时,可能存在优先级问题,需要用括号明确指定条件的优先级。
select * from employee where gender = '男' and (age = 25 or age = 28 or age = 32) ;
select * from employee where gender = '男' and (age in (25,28,32)) ;
-- 查询姓名 为3个汉字(3个字符)的员工有哪些;
select * from employee where name like '___'; -- ___ 代表三个字符
-- 查询身份证 最后一位是0 的员工有哪些; %0 : 表示前面有多是字符我不管,我只需要知道最后一个字符是0
select * from employee where idcard like '%0';
update employee set age = 18 where name = '张三';
1.介绍:
将一列数据作为一个整体,进行纵向计算
2.常见聚合函数 (不计算 字段值为null
的数据 )
函数 | 功能 |
---|---|
count | 统计数量 |
max | 最大值 |
min | 最小值 |
avg | 平均值 |
sum | 求和总数 |
3. 语法
select 聚合函数 (字段列表) from 表名;
4. 练习题
1. 语法
ELECT 字段列表 FROM 表名 [ WHERE 条件 ] GROUP BY 分组字段名 [ HAVING 分组 后过滤条件 ];
2. where与having区别 执行时机不同:
分组之前进行过滤
,不满足where条件,不参与分组;分组 之后
对结果
进行过滤
。 判断条件不同:where不能对聚合函数进行判断
,而having可以
。3. 注意事项:
字段一般
为聚合函数
和分组字段
,查询其他字段无任何意义。
4. 练习题
1. 语法😍
select 字段名 from 表名 order by 字段 排序方式(asc,desc);
2. 排序方式😉
asc
: 正序 || 升序;desc
: 倒序 || 降序;3. 注意事项:😦
不指定
排序方式ASC
;第一个字段值相同
时,才
会根据第二个字段进行排序
;4. 练习题😎
1. 语法😍
SELECT 字段列表 FROM 表名 LIMIT 起始索引, 查询记录数 ;
2. 注意事项:😦
0
开始,起始索引 = (查询页码 - 1)* 每页显示记录数
。LIMIT
。 第一页数据
,起始索引可以省略
,直接简写为limit 10
。3. 练习题😎
查询年龄为20,21,22,23岁的员工信息
select * from employee where age in (20,21,23);
查询性别为 男 ,并且年龄在 20-40 岁(含)以内的 姓名为三个字 的员工。
select * from employee where gender = "男" and (age between 20 and 40) and name like '___';
统计员工表中, 年龄小于60岁的 , 男性员工和女性员工的人数。
select gender,count(*) from employee where age < 60 group by gender;
查询所有 年龄小于等于35岁员工 的 姓名 和 年龄 ,并对查询结果按 年龄升序 排序,如果 年龄相同按 入职时间 降序排序。
select name,age,enterdate from employee where age <= 35 order by age asc,enterdate desc;
查询 性别为 男,且 年龄在20-40 岁(含)以内 的 前5个员工信息 ,对 查询的结果 按 年龄升序排序 ,年龄相同 按入职时间升序排序 。
select * from employee where gender = "男" && age >= 20 && age <= 40 order by age asc,enterdate asc limit 0,5
原创声明:本文系作者授权腾讯云开发者社区发表,未经许可,不得转载。
如有侵权,请联系 cloudcommunity@tencent.com 删除。
原创声明:本文系作者授权腾讯云开发者社区发表,未经许可,不得转载。
如有侵权,请联系 cloudcommunity@tencent.com 删除。