1、将通信工程专业学生按其平均成绩降序排列。
select 姓名,学号, avg(成绩) as 平均成绩,专业名 from xs_kc join xs using(学号)
where 专业名 = '通信工程'
group by 学号
order by avg(成绩) desc;
+--------+--------+----------+----------+
| 姓名 | 学号 | 平均成绩 | 专业名 |
+--------+--------+----------+----------+
| 马琳琳 | 081204 | 79.5000 | 通信工程 |
| 王林 | 081202 | 78.0000 | 通信工程 |
| 王敏 | 081201 | 76.0000 | 通信工程 |
| 严红 | 081203 | 75.2500 | 通信工程 |
+--------+--------+----------+----------+
2、用oder by和limit字句查找Employees表中年纪最大的员工的工号,姓名,出生日期,年龄。
select 编号 as 工号,姓名,出生日期,year(now())-year(出生日期) as 年龄 from employees
order by 出生日期
limit 1;
+--------+------+------------+------+
| 工号 | 姓名 | 出生日期 | 年龄 |
+--------+------+------------+------+
| 020018 | 李丽 | 1960-07-30 | 61 |
+--------+------+------------+------+
1 row in set (0.00 sec)
3、将员工信息按出生日期从小到大排列,只显示前5位。
select * from employees order by 出生日期 desc limit 5;
+--------+--------+------+------------+------+----------+-----------------+----------+--------+
| 编号 | 姓名 | 学历 | 出生日期 | 性别 | 工作时间 | 住址 | 电话 | 部门号 |
+--------+--------+------+------------+------+----------+-----------------+----------+--------+
| 020010 | 王向容 | 硕士 | 1982-12-09 | 1 | 2 | 四牌楼 10-0-108 | 53792361 | 1 |
| 108991 | 钟敏 | 硕士 | 1979-08-10 | 0 | 4 | 中山路10-3-105 | 83346454 | 3 |
| 308759 | 叶凡 | 本科 | 1978-11-18 | 1 | 2 | 北京西路3-7-52 | 83364644 | 4 |
| 010008 | 伍容华 | 本科 | 1976-03-28 | 1 | 3 | 北京东路100-2 | 83321231 | 1 |
| 111006 | 张石兵 | 本科 | 1974-10-01 | 1 | 1 | 解放军34-1-203 | 33358777 | 5 |
+--------+--------+------+------------+------+----------+-----------------+----------+--------+
5 rows in set (0.00 sec)
4、一行一行地浏览xs_kc表中满足要求的内容,要求第一行为成绩大于等于90分的第一行数据,
再读取下一行,最后关闭该表。
mysql> use xscj;
Database changed
mysql> handler xs_kc open;
Query OK, 0 rows affected (0.00 sec)
mysql> handler xs_kc read first where 成绩 >= 90;
+--------+--------+------+------+
| 学号 | 课程号 | 成绩 | 学分 |
+--------+--------+------+------+
| 081102 | 101 | 91 | 5 |
+--------+--------+------+------+
1 row in set (0.00 sec)
mysql> handler xs_kc read next;
+--------+--------+------+------+
| 学号 | 课程号 | 成绩 | 学分 |
+--------+--------+------+------+
| 081102 | 301 | 80 | 4 |
+--------+--------+------+------+
1 row in set (0.00 sec)
mysql> handler xs_kc close;
Query OK, 0 rows affected (0.00 sec)
5、将xscj数据库中xs表信息和yggl数据库中员工信息合在一起显示,显示内容为编号,姓名,出生日期,还增加一列“来自”,凡是xs表的人员“来自”列的内容为“学生”,凡是yggl表的人员“来自”列的内容为“员工”
mysql> alter table xscj.xs add 来自 varchar(10) ;
Query OK, 12 rows affected (0.02 sec)
Records: 12 Duplicates: 0 Warnings: 0
mysql> alter table ygg1.employees add 来自 varchar(10) ;
Query OK, 13 rows affected (0.02 sec)
Records: 13 Duplicates: 0 Warnings: 0
select 编号,姓名,出生日期,
case
when 来自 is null then '员工'
end as 来自
from ygg1.employees
union
select 学号,姓名,出生日期,
case
when 来自 is null then '学生'
end as 来自
from xscj.xs ;
+--------+--------+------------+------+
| 编号 | 姓名 | 出生日期 | 来自 |
+--------+--------+------------+------+
| 000001 | 王林 | 1966-01-23 | 员工 |
| 010008 | 伍容华 | 1976-03-28 | 员工 |
| 020010 | 王向容 | 1982-12-09 | 员工 |
| 020018 | 李丽 | 1960-07-30 | 员工 |
| 102201 | 刘明 | 1972-10-18 | 员工 |
| 102208 | 朱俊 | 1965-09-28 | 员工 |
| 102345 | 朱慧名 | 1973-12-03 | 员工 |
| 108991 | 钟敏 | 1979-08-10 | 员工 |
| 111006 | 张石兵 | 1974-10-01 | 员工 |
| 210678 | 林涛 | 1972-10-18 | 员工 |
| 302566 | 李玉珉 | 1968-09-20 | 员工 |
| 308759 | 叶凡 | 1978-11-18 | 员工 |
| 504209 | 陈林琳 | 1969-09-03 | 员工 |
| 081101 | 王林 | 1994-02-10 | 学生 |
| 081102 | 程明 | 1995-02-01 | 学生 |
| 081103 | 王燕 | 1993-10-06 | 学生 |
| 081104 | 韦平平 | 1994-08-26 | 学生 |
| 081201 | 王敏 | 1993-06-10 | 学生 |
| 081202 | 王林 | 1993-01-29 | 学生 |
| 081203 | 严红 | 1993-08-11 | 学生 |
| 081204 | 马琳琳 | 1993-01-29 | 学生 |
| 081301 | 李计 | 1993-09-20 | 学生 |
| 081302 | 李红庆 | 1993-05-01 | 学生 |
| 081303 | 孙祥欣 | 1993-03-09 | 学生 |
| 081304 | 孙研 | 1994-10-09 | 学生 |
+--------+--------+------------+------+
25 rows in set (0.00 sec)