暂无图片
暂无图片
暂无图片
暂无图片
暂无图片

SQL查询语句练习

代码的边城 2021-04-28
1260

基于数据表基于第一次分享的SQL语句练习     点击跳转第一次练习

SnumSnameSsexSageSphoneDname
S001王明1986824571数学系
S002李勇2389454321物理系
S003刘燕21
计算机系
S004王萍23
电子系
S005王佳2413098765892计算机系
S006赵婷20
物理系
学生表S
SnumCnumScore
S001C183
S001C289
S001C3NULL
S001C485
S001C569
S002C378
S002C475
S003C185
S004C2NULL
S005C192
S005C376
选课表SC
CnumCnameCfreq
C1数据库系统原理4
C2C程序设计4
C3计算机体系结构3
C4自动控制原理2
C5数据结构4
课程表C


下面是题目的分享:

1. 简单查询操作。

1)求数学系学生的学号和姓名。

2)求选修了课程的学生学号。

3)求选修课程号为‘C1’的学生号和成绩,并要求对查询结果按成绩的降序排列,如果成绩相同按学号的升序排列。

4)求选修课程号为‘C1’且成绩在80~90之间的学生学号和成绩,成绩乘以0.8输出。

5)求数学系或计算机系姓王的学生的信息。

6)求缺少了成绩的学生的学号和课程号。

7)查询有选课记录的所有学生的学号,用DISTINCT限制结果中学号不重复。

2. 连接查询操作。

1)查询每个学生的情况以及他所选修的课程。

2)求学生的学号、姓名、选修的课程及成绩。

3)求选修课程号为‘C1’且成绩在90以上的学生学号、姓名和成绩。

解题步骤如下,为个人代码,均成功测试过,仅供参考

    --(1)
    SELECT Snum,Sname FROM 学生 WHERE Dname = '数学系'


    --(2)
    SELECT Snum FROM 学生 WHERE Snum IN (SELECT Snum FROM 选课)


    --(3)
    SELECT Snum,Score FROM 选课 WHERE Cnum = 'C1' ORDER BY Score DESC, Snum;


    --(4)
    SELECT Snum,Score*0.8 as Score FROM 选课 WHERE Cnum = 'C1' AND Score Between 80 AND 90;


    --(5)
    SELECT Snum,Sname,Ssex,Sage,Sphone,Dname FROM 学生
    WHERE Sname Like '王%' AND Dname IN ('数学系','计算机系')


    --(6)
    SELECT Snum,Cnum FROM 选课 WHERE Score IS NULL


    --(7)
    SELECT DISTINCT Snum FROM 选课


    --(1)
    SELECT 学生.Snum,学生.Sname,学生.Ssex,学生.Sage,学生.Sphone,学生.Dname,课程.Cname
    FROM 学生 LEFT JOIN 选课 on 学生.Snum = 选课.Snum LEFT JOIN 课程 ON 课程.Cnum = 选课.Cnum


    --(2)
    SELECT 学生.Snum,学生.Sname,课程.Cname,选课.Score
    FROM 学生 join 选课 on 学生.Snum = 选课.Snum join 课程 ON 课程.Cnum = 选课.Cnum


    --(3)
    SELECT 学生.Snum,学生.Sname,选课.Score
    FROM 学生 join 选课 on 学生.Snum = 选课.Snum
    WHERE 选课.Cnum = 'C1' AND 选课.Score>= 90

    文章转载自代码的边城,如果涉嫌侵权,请发送邮件至:contact@modb.pro进行举报,并提供相关证据,一经查实,墨天轮将立刻删除相关内容。

    评论