-
查询入职时间在1982-7-9之后,并且不从事
salesman
工作的员工姓名、入职时间、职位。select 员工姓名, 入职时间, 职位 from emps where 入职时间 > '1982-07-09' and 职位 != 'salesman';
-
查询员工姓名的第三个字母是a的员工姓名。
select 员工姓名 from emps where substring(员工姓名, 3, 1) = 'a';
-
查询除了10、20号部门以外的员工姓名、部门编号。
select 员工姓名, 部门编号 from emps where 部门编号 not in (10, 20);
-
查询部门号为30号员工的信息,先按工资降序排序,再按姓名升序排序。
select * from emps where 部门编号 = 30 order by 工资 desc, 员工姓名 asc;
-
查询没有上级的员工(经理号为空)的员工姓名。
select 员工姓名 from emps where 经理号 is null;
-
查询工资大于等于4500并且部门为10或者20的员工的姓名、工资、部门编号。
select 员工姓名, 工资, 部门编号 from emps where (工资 >= 4500) and (部门编号 in (10, 20));
对于myshools
数据库中的查询语句,也将大写字母改为小写:
-
每年级的学生人数各是多少
select 年级, count(*) as 学生人数 from 学生表 group by 年级;
-
查询每门课程的平均分
select 课程名, avg(分数) as 平均分 from 成绩表 group by 课程名;
-
查询每门课程的平均分,并按照分数由低到高的顺序排列显示
select 课程名, avg(分数) as 平均分 from 成绩表 group by 课程名 order by 平均分 asc;
-
统计每个年级男女同学的人数
select 年级, 性别, count(*) as 人数 from 学生表 group by 年级, 性别;
-
获得总人数超过15人的年级
select 年级 from 学生表 group by 年级 having count(*) > 15;
-
查询每个年级的总学时数,并按照升序排列
select 年级, sum(学时) as 总学时数 from 课程表 group by 年级 order by 总学时数 asc;
-
查询每个参加考试的学员的平均分
select 学号, avg(分数) as 平均分 from 成绩表 group by 学号;
-
查询每门课程的平均分,并按照降序排列
select 课程名, avg(分数) as 平均分 from 成绩表 group by 课程名 order by 平均分 desc;
-
查询每个学生参加的所有考试的总分,并按照降序排列
select 学号, sum(分数) as 总分 from 成绩表 group by 学号 order by 总分 desc;