1、(单选)有表 song(id,song_name,album,play_count,fav_count)分别表示歌曲的主键id、歌曲名、专辑名、播放次数和收藏次数,以下与order by相关的sql错误的是:
解析:??C、order?by?与?where?的先后顺序不对,先写where子句再写order?by子句。
2、(单选)以下关于distinct的描述,正确的是:
解析:??A、分组是group?by,distinct是列出唯一的不同值
3、(多选)有表 song(id,song_name,album,play_count,fav_count)分别表示歌曲的主键id、歌曲名、专辑名、播放次数和收藏次数。要求查询超过两首歌的专辑与其歌曲数,并且按专辑名排序;有同学给出如下sql语句:
select id,count(*) from song order by album group by album having
count(*)>2 ;
这个sql错误的地方是:
解析:??A、order?by子句不能在group?by的前面。??B、题干要求查询专辑,所以album需要select出来。
4、(单选)结合《SQL语言进阶篇》课程中介绍的歌单表play_list,下面这个sql实现了何种功能:
select userid from play_list group by userid having max(trackcount) > 10;
5、(单选)delimiter在MySQL中的作用是:
6、(单选)下列关于触发器的说法,正确的是:
解析:??B、对于update,5.5版本只能在before和after?update的时候各自建一个触发器。??C、触发器不能更新自身表的数据。??D、可以的,只要有权限。
7、(单选)一个班级有N个学生,每个学生有M门课程的成绩,假设成绩表结构为(学生ID,课程,成绩),要查询出总成绩最高的前K名学生,不需要用到的SQL关键字有:
解析:??A、总成绩,需要sum;根据学生分组,需要group?by;最高的,需要order?by
select?学生id,sum(成绩)?from?table?group?by?学生id?order?by?sum(成绩)?desc?limit?K
8、(单选)下面这个语句有什么问题?
SELECT
* FROM Orders WHERE OrderID = (SELECT OrderID FROM OrderItems WHERE ItemQty
> 50)
9、(单选)有表tab(name varchar(20), id int, sal int)分别表示员工姓名、员工号、薪水,如何查找出薪水第二高的员工的薪水?
解析:??C、可能是第一高的,因为第一高可能有2个人是一样的。
10、(多选)能被select * from tbl where col like '%b%e%' 查询出来的条件有: