SQL查询语句练习

基于数据表基于第一次分享的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
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值