首页 > 数据库 >牛客网-SQL专项训练16

牛客网-SQL专项训练16

时间:2022-09-18 16:22:46浏览次数:116  
标签:字符 16 sno 1909 牛客 SQL date d2 d1

①在book表中,将工具书类型(tool)的书的书架序号都减少2,下列语句正确的是(C)

 解析:

题目要求的批量更改,insert 是更改数据,排除B,update与set搭配使用,排除选项D,where条件后边除了null 和 not null 使用is,其他情况都用 =。

已知某校数据库中包含如下的表数据:

学生表student(sno,sname,birthday,gender)

课程表course(cid,cname)

成绩表grade(sno,cid,mark)

查询至少有一门课程与sno=1909的学生选择的课程相同的学生的学号和姓名,下列SQL语句中正确的是(B)

 解析:

题要求是查询除了sno=1909以外的学生,先在子查询中对sno为1909的学生选课信息进行查询,然后在父查询中对除了sno为1909之外的学生和姓名进行筛选。

A选项并没有排除sno=1909的学生,C选项查的是选课与1909不同的学生,D选项既要sno=1990又要与1909选课不一致。

③查询显示雇员的姓名和姓名中是否含有字母A的信息,满足如下条件
如果字符A在姓名的首位,则显示'字符A在首位'
如果字符A在姓名的末位,则显示'字符A在末位'
如果字符A在姓名中不存在,则显示'没有字符A'
其他情况显示'字符A在中间'
操作语句是:

解析:

1.charindex()返回字符串中指定字符的起始位置,没有指定字符返回0

2.数据库中字符串开头位置是1

3.len()获取字符串的长度

④下列关于视图的相关概念描述不正确的是(B)

 解析:视图是虚拟表,是一个依赖于别的表上的寄生表,其本身不存储数据,对视图的操作最终都会转化为对基本表的操作。所以说视图不能是从其他视图导出的。

⑤已知某田径运动员某月训练表如下

表drill:

 试查找与前一天的日期相比,千米数更高的所有日期的id和kilometer,下列SQL语句不正确的是(CD)

 解析:

关于日期函数,datediff(日期1,日期2),得到的结果是日期一与日期二相差的天数,若日期1大于日期2,结果为正,否则结果为负。本题中关键词为前一天,即d2.date应大于d1.date所得结果应为正值。故D选项结果为负,说明d2.date < d1.date与题意不符。

DATE_ADD(date,INTERVAL expr type) :date 是一个 DATETIME 或DATE值,用来指定起始时间。 expr 是一个表达式,用来指定从起始日期添加的时间间隔值。 

故是查找与前一个时间相比,C选项应该为

SELECT d2.id,d2.kilometer
FROM drill d1 JOIN drill d2
ON( DATE_ADD(d1.date,INTERVAL 1 day)= d2.date) /*从d1.date加一天到d2*/
WHERE d1.kilometer<d2.kilometer;

 

标签:字符,16,sno,1909,牛客,SQL,date,d2,d1
From: https://www.cnblogs.com/liu-myu/p/16704810.html

相关文章