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

admin2021-10-12  32

问题 已知学生一课程数据库中包含以下三个表:学生表S(Sno,Sname,Ssex,Sage,Sdept)、课程表C(Cno,Cname,Ccredit)和学生选课表SC(Sno,Cno,Grade)。其中Sno表示学号,Sname表示姓名,Ssex表示性别,sage表示年龄,Sdept表示所在系;Cno表示课程号,Cname表示课程名,Ccredit表示学分;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 Sname,Sno,Ssex FROM S WHERE Sname LIKE‘刘-’

答案D

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

最新回复(0)