记录的查询语法
select <字段...>from <库名>.<表名>
where <条件>
group by <分组条件>
having <过滤条件>
order by <排序字段> {ASC | DESC}
limit <显示条数>;
create table user(
id int primary key auto_increment,
name varchar(15) not null,
gender enum('male','female')default 'male',
age int not null default 18,
salary int not null,
dep varchar(15)
);
INSERT INTO user (name, gender, age, salary, dep) VALUES
('张三', 'male', 30, 5000, 'IT部门'),
('李四', 'female', 28, 5500, '财务部'),
('王五', 'male', 35, 6000, '市场部'),
('赵六', 'female', 32, 4800, '人力资源部'),
('钱七', 'male', 29, 4500, '研发部'),
('孙八', 'male', 26, 5200, 'IT部门'),
('周九', 'female', 24, 5300, '财务部'),
('吴十', 'male', 31, 5500, '市场部'),
('郑十一', 'female', 29, 5000, '人力资源部'),
('王十二', 'male', 27, 5100, '研发部'),
('冯十三', 'female', 25, 5400, 'IT部门'),
('陈十四', 'male', 33, 5600, '财务部'),
('楚十五', 'female', 30, 5700, '市场部');
【1】去重(distinct)#
select distinct dep from user;
+
| dep |
+
| IT部门 |
| 财务部 |
| 市场部 |
| 人力资源部 |
| 研发部 |
+
【2】四则运算#
select name,salary*12 from user;
+
| name | salary*12 |
+
| 张三 | 60000 |
| 李四 | 66000 |
| 王五 | 72000 |
| 赵六 | 57600 |
| 钱七 | 54000 |
| 孙八 | 62400 |
| 周九 | 63600 |
| 吴十 | 66000 |
| 郑十一 | 60000 |
| 王十二 | 61200 |
| 冯十三 | 64800 |
| 陈十四 | 67200 |
| 楚十五 | 68400 |
+
select name,salary*12 as year_salary from user;
+
| name | year_salary |
+
| 张三 | 60000 |
| 李四 | 66000 |
| 王五 | 72000 |
| 赵六 | 57600 |
| 钱七 | 54000 |
| 孙八 | 62400 |
| 周九 | 63600 |
| 吴十 | 66000 |
| 郑十一 | 60000 |
| 王十二 | 61200 |
| 冯十三 | 64800 |
| 陈十四 | 67200 |
| 楚十五 | 68400 |
+
【3】设置显示格式concat#
select concat('姓名:>>>',name,'年龄:>>>',age,'薪资:>>>',salary) from user;
select concat('姓名:>>>',name,'年龄:>>>',age)as 'name age',concat('薪资:>>>',salary) as 'salary' from user;
select concat_ws('-',name,age,salary) as 'name-age-salary' from user;
【4】where#
select * from user where id between 3 and 6;
+
| id | name | gender | age | salary | dep |
+
| 3 | 王五 | male | 35 | 6000 | 市场部 |
| 4 | 赵六 | female | 32 | 4800 | 人力资源部 |
| 5 | 钱七 | male | 29 | 4500 | 研发部 |
| 6 | 孙八 | male | 26 | 5200 | IT部门 |
+
select * from user where salary in(3000,5000,6000);
+
| id | name | gender | age | salary | dep |
+
| 1 | 张三 | male | 30 | 5000 | IT部门 |
| 3 | 王五 | male | 35 | 6000 | 市场部 |
| 9 | 郑十一 | female | 29 | 5000 | 人力资源部 |
+
select name,salary from user where name like'%三%';
+
| name | salary |
+
| 张三 | 5000 |
| 冯十三 | 5400 |
+
select name,salary from user where char_length(name) = 3;
select name,salary from user where name like '___';
+
| name | salary |
+
| 郑十一 | 5000 |
| 王十二 | 5100 |
| 冯十三 | 5400 |
| 陈十四 | 5600 |
| 楚十五 | 5700 |
+
select name,dep from user where dep_desc is null ;
+
| name | dep |
+
| 李四 | 财务部 |
| 王五 | 市场部 |
| 赵六 | 人力资源部 |
| 钱七 | 研发部 |
| 周九 | 财务部 |
| 吴十 | 市场部 |
| 郑十一 | 人力资源部 |
| 王十二 | 研发部 |
| 陈十四 | 财务部 |
| 楚十五 | 市场部 |
+
【5】group by#
select dep,max(salary) from user group by dep;
+
| dep | max(salary) |
+
| IT部门 | 5400 |
| 人力资源部 | 5000 |
| 市场部 | 6000 |
| 研发部 | 5100 |
| 财务部 | 5600 |
+
select dep , min(salary) from user group by dep;
+
| dep | min(salary) |
+
| IT部门 | 5000 |
| 人力资源部 | 4800 |
| 市场部 | 5500 |
| 研发部 | 4500 |
| 财务部 | 5300 |
+
select dep, avg(salary) from user group by dep;
+
| dep | avg(salary) |
+
| IT部门 | 5200.0000 |
| 人力资源部 | 4900.0000 |
| 市场部 | 5733.3333 |
| 研发部 | 4800.0000 |
| 财务部 | 5466.6667 |
+
select dep, sum(salary) from user group by dep;
+
| dep | sum(salary) |
+
| IT部门 | 15600 |
| 人力资源部 | 9800 |
| 市场部 | 17200 |
| 研发部 | 9600 |
| 财务部 | 16400 |
+
select dep, count(id) from user group by dep;
+
| dep | count(dep) |
+
| IT部门 | 3 |
| 人力资源部 | 2 |
| 市场部 | 3 |
| 研发部 | 2 |
| 财务部 | 3 |
+
select dep,group_concat(name) from user group by dep;
+
| dep | group_concat(name) |
+
| IT部门 | 张三,孙八,冯十三 |
| 人力资源部 | 赵六,郑十一 |
| 市场部 | 王五,吴十,楚十五 |
| 研发部 | 钱七,王十二 |
| 财务部 | 李四,周九,陈十四 |
+
【6】having#
select dep,group_concat(name),count(id)from user group by dep having count(id)<3;
+
| dep | group_concat(name) | count(id) |
+
| 人力资源部 | 赵六,郑十一 | 2 |
| 研发部 | 钱七,王十二 | 2 |
+
select dep, count(id) from user where age > 20 group by dep having count(id)>2;
+
| dep | count(id) |
+
| IT部门 | 3 |
| 市场部 | 3 |
| 财务部 | 3 |
+
【7】order by#
- order by是排序,默认是升序 desc是降序,升序是asc
select * from user order by salary desc;
+
| id | name | gender | age | salary | dep | dep_desc |
+
| 3 | 王五 | male | 35 | 6000 | 市场部 | NULL |
| 13 | 楚十五 | female | 30 | 5700 | 市场部 | NULL |
| 12 | 陈十四 | male | 33 | 5600 | 财务部 | NULL |
| 2 | 李四 | female | 28 | 5500 | 财务部 | NULL |
| 8 | 吴十 | male | 31 | 5500 | 市场部 | NULL |
| 11 | 冯十三 | female | 25 | 5400 | IT部门 | 牛逼 |
| 7 | 周九 | female | 24 | 5300 | 财务部 | NULL |
| 6 | 孙八 | male | 26 | 5200 | IT部门 | 牛逼 |
| 10 | 王十二 | male | 27 | 5100 | 研发部 | NULL |
| 1 | 张三 | male | 30 | 5000 | IT部门 | 牛逼 |
| 9 | 郑十一 | female | 29 | 5000 | 人力资源部 | NULL |
| 4 | 赵六 | female | 32 | 4800 | 人力资源部 | NULL |
| 5 | 钱七 | male | 29 | 4500 | 研发部 | NULL |
+
- 可以指定第二个排序条件,比如说如果工资相同,再指定一个以id排序
select * from user order by salary desc, id desc;
+
| id | name | gender | age | salary | dep | dep_desc |
+
| 3 | 王五 | male | 35 | 6000 | 市场部 | NULL |
| 13 | 楚十五 | female | 30 | 5700 | 市场部 | NULL |
| 12 | 陈十四 | male | 33 | 5600 | 财务部 | NULL |
| 8 | 吴十 | male | 31 | 5500 | 市场部 | NULL |
| 2 | 李四 | female | 28 | 5500 | 财务部 | NULL |
| 11 | 冯十三 | female | 25 | 5400 | IT部门 | 牛逼 |
| 7 | 周九 | female | 24 | 5300 | 财务部 | NULL |
| 6 | 孙八 | male | 26 | 5200 | IT部门 | 牛逼 |
| 10 | 王十二 | male | 27 | 5100 | 研发部 | NULL |
| 9 | 郑十一 | female | 29 | 5000 | 人力资源部 | NULL |
| 1 | 张三 | male | 30 | 5000 | IT部门 | 牛逼 |
| 4 | 赵六 | female | 32 | 4800 | 人力资源部 | NULL |
| 5 | 钱七 | male | 29 | 4500 | 研发部 | NULL |
+
【8】limit#
select * from user order by salary limit 5;
+
| id | name | gender | age | salary | dep | dep_desc |
+
| 5 | 钱七 | male | 29 | 4500 | 研发部 | NULL |
| 4 | 赵六 | female | 32 | 4800 | 人力资源部 | NULL |
| 1 | 张三 | male | 30 | 5000 | IT部门 | 牛逼 |
| 9 | 郑十一 | female | 29 | 5000 | 人力资源部 | NULL |
| 10 | 王十二 | male | 27 | 5100 | 研发部 | NULL |
+
【推荐】国内首个AI IDE,深度理解中文开发场景,立即下载体验Trae
【推荐】编程新体验,更懂你的AI,立即体验豆包MarsCode编程助手
【推荐】抖音旗下AI助手豆包,你的智能百科全书,全免费不限次数
【推荐】轻量又高性能的 SSH 工具 IShell:AI 加持,快人一步
· 被坑几百块钱后,我竟然真的恢复了删除的微信聊天记录!
· 没有Manus邀请码?试试免邀请码的MGX或者开源的OpenManus吧
· 【自荐】一款简洁、开源的在线白板工具 Drawnix
· 园子的第一款AI主题卫衣上架——"HELLO! HOW CAN I ASSIST YOU TODAY
· Docker 太简单,K8s 太复杂?w7panel 让容器管理更轻松!