MySQL查询语句汇总带注释(二)

2023-12-15 10:19:14

目录

1、查询stu01表中,全部列的数据

2、查询cou01表中,课程编号、课程名称

3、查询sco01表中,学员编号、学员成绩并给每列起别名

4、查询sco01表中,学员编号、学员成绩,根据学员成绩降序排列

5、查询sco01表中,学员编号、学员成绩,根据学员成绩降序排列,在根据学员编号升序排列

6、查询sco01表中,课程编号并去重显示

7、查询stu01表中,第3条到第6条记录全部信息

8、查询stu01表中,倒数后5条记录

9、查询stu01表中,学员编号是2020005的,学员的编号、学员姓名、学员年龄

10、查询stu01表中,学员姓名是Jones的,学员的编号、学员姓名、学员地址

11、查询stu01表中,学员姓名含有o的,学员的编号、学员姓名、学员性别

12、查询stu01表中,学员姓名首字母以J开头的,学员编号、学员姓名

13、查询sco01表中,学员成绩在70~90之间的,学员的编号、学员成绩

14、查询sco01表中,学员成绩不在60~80之间的,学员的编号、学员成绩

15、查询stu01表中,学员编号是2020001、2020003、2020009的学员信息

16、查询stu01表中,除了学员编号是2020001、2020003、2020009的其他学员信息

17、查询stu01表中,学员姓名不含有o的或者地址是北京的学员信息

18、查询stu01表中,学员的总数量

19、查询sco01表中,每个学员的编号和平均成绩

20、查询stu01表中,男生和女生的人数

21、查询sco01表中,选修两门课程的学员学号

22、删除stu01表中,学员编号是2020012,2020008,2020006的学员信息

23、查询课程编号(cno)是1002的,学员的编号(sno),姓名(sname),年龄(age),地址(address)

24、查询stu01表中,2018年入学的学生名单,根据学员编号降序排列

?25、查询stu01表中,10月入学的学生名单,根据入学时间升序排列

26、查询部门编号是30号部门的,员工的详细信息

27、查询职位是CLERK的员工的编号、姓名、部门编号

28、查询奖金多于工资的员工信息

29、查询奖金多于工资60%的员工信息。

30、查询10号部门的经理(MANAGER)、20号部门的职员(CLERK)的员工信息

31、查询10号部门的经理、20号部门的职员 或者既不是经理也不是职员但是工资高于2000元的员工信息

32、查询获得奖金的员工的信息

33、查询奖金少于100或者没有获得奖金的员工的信息

34、查询姓名以A、B、S开始的员工信息

35、查询名字长度为6个字符的员工信息

36、查询名字中不包含R字符的员工信息

37、查询员工的详细信息并按姓名升序排序

38、查询员工的信息,按职位降序排列,在按工资升序排列


1、查询stu01表中,全部列的数据

SELECT * FROM stu01;

2、查询cou01表中,课程编号、课程名称

SELSECT cno,cname FROM cou01;
-- cno课程编号
-- cname课程名称

3、查询sco01表中,学员编号、学员成绩并给每列起别名

SELECT sno,score FROM sco01;
-- SELECT 学员编号 别名,学员成绩 别名 FROM sco01;
-- select sno 编号,score 成绩 from sco01;

4、查询sco01表中,学员编号、学员成绩,根据学员成绩降序排列

 SELECT sno,score FROM sco01 ORDER BY score DESC;
 -- SELECT 列名1,列名2 FROM 表名 
 -- ORDER BY 列名 DESC降序排列

5、查询sco01表中,学员编号、学员成绩,根据学员成绩降序排列,在根据学员编号升序排列

SELECT sno,score FROM sco01 ORDER BY score DESC,sno ASC;
-- ASC升序排列

6、查询sco01表中,课程编号并去重显示

SELECT DISTINCT sno FROM sco01;
-- SELECT DISTINCT 列名 FROM 表名;

7、查询stu01表中,第3条到第6条记录全部信息

SELECT * FROM stu01 LIMIT 2,4;
-- 从0开始,数到3
-- 6-3+1

8、查询stu01表中,倒数后5条记录

SELECT * FROM stu01 ORDER BY SNO DESC LIMIT 5;
-- OEDER BY 倒叙,将顺序变为倒叙,这样前五条就为后5条

9、查询stu01表中,学员编号是2020005的,学员的编号、学员姓名、学员年龄

SELECT sno,sname,age FROM stu01 WHERE sno=2020005;
-- 查询指定数据,没有就为空

10、查询stu01表中,学员姓名是Jones的,学员的编号、学员姓名、学员地址

SELECT sno,sname,address FROM stu01 WHERE sname=’Jones’;
-- 学员姓名是! SNAME=!

11、查询stu01表中,学员姓名含有o的,学员的编号、学员姓名、学员性别

SELECT sno,sname,sex FROM stu01 WHERE sname LIKE ‘%O%’;
-- 包含...LIKE '%...%'

12、查询stu01表中,学员姓名首字母以J开头的,学员编号、学员姓名

SELECT sno,sname FROM stu01 WHERE sname LIKE ‘J%’;
-- 模糊查询
-- 以...开头 LIKE '...%'
-- 以...结尾 LIKE '%...'

13、查询sco01表中,学员成绩在70~90之间的,学员的编号、学员成绩

select sno,score from sco01 where score between 70 and 90;
-- 在...之间 ? BETWEEN AND

14、查询sco01表中,学员成绩不在60~80之间的,学员的编号、学员成绩

select sno,score from sco01 where not score between 60 and 80;
-- 条件 不在60-80之间not...BETWEEN....AND

15、查询stu01表中,学员编号是2020001、2020003、2020009的学员信息

SELECT * FROM stu01 WHERE sno in(2020001、2020003、2020009);
-- in

16、查询stu01表中,除了学员编号是2020001、2020003、2020009的其他学员信息

select * from stu01 where not sno in(2020001,2020003,2020009);
-- 除了这些信息=没有这些信息
-- IN可以包括全部信息

17、查询stu01表中,学员姓名不含有o的或者地址是北京的学员信息

select * from stu01 where not sname like '%o%' or address='北京';
-- WHERE 列名 FROM 模糊条件’%O%‘

18、查询stu01表中,学员的总数量

SELECT count(*) FROM stu01;
-- count(*)统计表中所有数据的列数

19、查询sco01表中,每个学员的编号和平均成绩

select sno,avg(score)
from sco01
group by sno;
-- avg求平均值

20、查询stu01表中,男生和女生的人数

select sex,count(sex)
from stu01
where sex is not null
group by sex;
-- 查询
-- count(列名),统计该列中不为空的列值个数
-- 人数不是空值,分组查询

21、查询sco01表中,选修两门课程的学员学号

select sno
from sco01
group by sno
having count(*)=2; 
-- GROUP BY 分组查询
-- HAVING 语句

22、删除stu01表中,学员编号是2020012,2020008,2020006的学员信息

DELETE FROM stu01 WHERE sno in(2020012,2020008,2020006);
-- DELETE FROM 表名 WHERE 条件用in包括可以代表所有的

23、查询课程编号(cno)是1002的,学员的编号(sno),姓名(sname),年龄(age),地址(address)

SELECT sno,sname,age,address FROM stu01 WHERE cno=1002;
-- SELECT 列名 FROM 表名 WHERE 列名条件

24、查询stu01表中,2018年入学的学生名单,根据学员编号降序排列

SELECT * FROM stu01 WHERE YEAR(etime)=’2018’ ORDER BY sno DESC;
-- SELECT * FROM 表名 WHERE 年(入学时间)=? ORDER BY 降序
select * from stu01 where etime like '2018%' order by sno desc;

?25、查询stu01表中,10月入学的学生名单,根据入学时间升序排列

SELECT * FROM stu01 WHERE MONTH(etime)=’10’ ORDER BY etime asc;
-- MONTH(TIME)入学时间月份

26、查询部门编号是30号部门的,员工的详细信息

SELECT * FROM EMP WHERE DEPTNO=30;
-- SELECT 查询
-- 部门编号 deptno
-- 员工的详细信息*

27、查询职位是CLERK的员工的编号、姓名、部门编号

SELECT EMPNO,ENAME,DEPTNO FROM EMP WHERE JOB='CLERK';
-- EMPNO员工编号
-- ename姓名
-- DEPTNO 部门编号
-- 条件查询

28、查询奖金多于工资的员工信息

SELECT * FROM EMP WHERE COMM>SAL;
-- SELECT * FROM 表名 WHERE 奖金大于工资

29、查询奖金多于工资60%的员工信息。

SELECT * FROM EMP WHERE COMM>SAL*0.6;
-- 多余工资60% 为大于sal*0.6

30、查询10号部门的经理(MANAGER)、20号部门的职员(CLERK)的员工信息

SELECT * FROM EMP WHERE (DEPTNO=10 AND JOB='MANAGER') OR (DEPTNO=20 AND JOB='CLERK');
-- *员工信息
-- deptno部门  MANAGER 经理 ? JOB职位 ? CLERK 职员

31、查询10号部门的经理、20号部门的职员 或者既不是经理也不是职员但是工资高于2000元的员工信息

SELECT * FROM EMP WHERE (DEPTNO=10 AND JOB='MANAGER') OR (DEPTNO=20 AND JOB='CLECK')OR (JOB<>'MANAGER' AND JOB<>'CLECK' AND SAL>2000);
-- *员工信息
-- deptno部门  MANAGER 经理 ? JOB职位 ? CLERK 职员
-- <>不等于

32、查询获得奖金的员工的信息

SELECT * FROM EMP WHERE COMM IS NOT NULL AND COMM<>0;
-- IS NOT NULL 奖金不为空
-- COMM<>0,奖金不等于0

33、查询奖金少于100或者没有获得奖金的员工的信息

SELECT * FROM EMP WHERE COMM<100 OR COMM IS NULL;
-- IS NULL 为空值

34、查询姓名以A、B、S开始的员工信息

SELECT * FROM EMP WHERE ENAME LIKE 'A%' OR ENAME LIKE 'B%' OR ENAME LIKE 'S%';
-- 模糊查询  LIKE '...%'以...开头

35、查询名字长度为6个字符的员工信息

SELECT * FROM EMP WHERE LENGTH(ENAME=6);
-- 员工信息*
-- 长度 LENGTH 

36、查询名字中不包含R字符的员工信息

SELECT * FROM EMP WHERE NOT ENAME LIKE '%R%';
-- 员工信息*
-- 模糊查询 LIKE 
-- 不包含..字符 ? ?  NOT LIKE '%...%'

37、查询员工的详细信息并按姓名升序排序

SELECT * FROM EMP ORDER BY ENAME ASC;
-- 分组查询
-- * 员工查询
-- ORDER BY 聚合函数
-- ASC升序 ? DESC 降序

38、查询员工的信息,按职位降序排列,在按工资升序排列

SELECT * FROM EMP ORDER BY JOB DESC,SAL ASC;
-- ORDER BY 列名 DESC 降序,列名 ASC 升序

文章来源:https://blog.csdn.net/m0_69622317/article/details/132745672
本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。