已知学生一课程数据库中包含以下三个表:学生表S(Sno,Sname,Ssex,Sage,Sdept)、课程表C(Cno,Cname,Ccredit)和学生选课表SC(Sno,Cno,Grade)。其中Sno表示学号,Sname表示姓名,Ssex表示性别,S

admin2021-09-29  23

问题 已知学生一课程数据库中包含以下三个表:学生表S(Sno,Sname,Ssex,Sage,Sdept)、课程表C(Cno,Cname,Ccredit)和学生选课表SC(Sno,Cno,Grade)。其中Sno表示学号,Sname表示姓名,Ssex表示性别,Sage表示年龄,Sdept表示所在系;Cno表示课程号,Cname表示课程名,Ceredit表示学分;Grade表示成绩。下列与查询有关的SQL语句使用错误的是(          )。

选项 A、查询全体学生的详细记录:SELECT*FROM S
B、查询所有年龄在20岁以下的学生姓名及其年龄:SELECT Sname,Sage FROM S WHERE Sage<20
C、查询所有有成绩的学生学号和课程号:SELECT Sno,Cno FROM SC WHERE Grade IS NOT  NULL
D、查询所有姓刘的学生的姓名、学号和性别:SELECT Shame,Sno,Ssex FROM S WHERE  SnameLIKE‘刘’

答案D

解析 将表中的所有属性列都选出来有两种方法,一种方法是在SELECT关键字后列出所有列名;如果列的显示顺序与其在基表中的顺序相同,另一种方法是简单地将<目标列表达式>指定为*,A项正确。在SQL语句中,查询满足指定条件的元组可以通过WHERE子句实现,其中小于表示为<,B项正确。涉及空值的查询使用IS NULL或IS N0T NULL,注意“IS”不能用等号(=)代替,C项正确。谓词LIKE可以用来进行字符串的匹配,其一般语法格式为:[NOT]LIKE‘<匹配串>’.匹配串可以是一个完整的字符串,也可以含有通配符%和。其中,%(百分号)代表任意长度(长度可以为0)的字符串,(下横线)代表任意单个字符。姓刘的学生其姓名不一定只有两位,正确的SQL语句LIKE后应使用‘刘%’,D项错误。
转载请注明原文地址:https://kaotiyun.com/show/T6Fv777K
0

最新回复(0)