MySQL查询语句汇总带注释(二)
2023-12-15 10:19:14
目录
4、查询sco01表中,学员编号、学员成绩,根据学员成绩降序排列
5、查询sco01表中,学员编号、学员成绩,根据学员成绩降序排列,在根据学员编号升序排列
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的或者地址是北京的学员信息
22、删除stu01表中,学员编号是2020012,2020008,2020006的学员信息
23、查询课程编号(cno)是1002的,学员的编号(sno),姓名(sname),年龄(age),地址(address)
24、查询stu01表中,2018年入学的学生名单,根据学员编号降序排列
?25、查询stu01表中,10月入学的学生名单,根据入学时间升序排列
30、查询10号部门的经理(MANAGER)、20号部门的职员(CLERK)的员工信息
31、查询10号部门的经理、20号部门的职员 或者既不是经理也不是职员但是工资高于2000元的员工信息
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
本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。 如若内容造成侵权/违法违规/事实不符,请联系我的编程经验分享网邮箱:veading@qq.com进行投诉反馈,一经查实,立即删除!
本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。 如若内容造成侵权/违法违规/事实不符,请联系我的编程经验分享网邮箱:veading@qq.com进行投诉反馈,一经查实,立即删除!