简单的SQL查询练习。

/* 
	3. 在StudentInfo数据库中,用DDL进行下列查询操作
*/
/*--单表查询-- */
--1)查询全体学生的学号、姓名、性别、出生日期及所在系。
USE StudentInfo;
SELECT * FROM Student;

2)查询全体学生的选课情况,其成绩列值都加5,并为各列设置中文的别名。
SELECT Sno '学号',Cno '课程号',Grade+5 '成绩'
FROM SC;

3)显示所有选课学生的学号,并去掉重复行。
SELECT DISTINCT Sno FROM Student;

4)查询学生选课成绩在80~90分之间的学生的学号、课程号、成绩。
SELECT * FROM SC WHERE Grade between 80 and 90;

5)查找姓名以S开头的所有学生的学号、姓名。
SELECT Sno,Sname FROM Student 
WHERE Sname like 's%';

6)查询有考试成绩(即成绩不为空值)的学生的学号、课程号。
SELECT Sno,Cno FROM SC 
WHERE Grade is not null;

7)查询计算机系(计科0701)年龄在18岁以上的学生的学号、姓名。
SELECT Sno,Sname FROM Student 
WHERE Sage>18 and Sdept='CS0701';

--8)求选修课程超过2门课的学生学号、平均成绩和选课门数,并按平均成绩降序排列
SELECT Sno,AVG(Grade) AvgGrade,COUNT(cno) '选课门数'
FROM SC
GROUP BY Sno HAVING COUNT(*)>=2
ORDER BY AvgGrade desc;

/*--查询及更新-- */

--9)查询每个学生的学号、姓名、选修的课程名、成绩。(连接查询)
SELECT Student.Sno,Sname,Cname,Grade FROM Student,Course,SC 
WHERE Student.Sno=SC.Sno and Course.Cno=SC.Cno;

--10)查询与Sue在同一个系学习的所有学生的学号和姓名。(嵌套查询)
SELECT Sno,Sname FROM Student 
WHERE Sdept in(
	SELECT Sdept FROM Student 
    WHERE Sname='Sue'
	);

--11)查询选修了课程名为English的课程并且成绩大于80分的学生学号、姓名。(可改为嵌套查询)
SELECT Student.Sno,Sname FROM Student,Course,SC 
WHERE Student.Sno=SC.Sno and Course.Cno=SC.Cno and Cname='English' and Grade>80;

/* 12)向Student表中添加一个学生记录,学生学号为20010115,姓名为Stefen ,性别为男,
年龄为25岁,所在系为艺术系Art。*/
INSERT INTO Student
VALUES('20010115','Stefen','男',25,'艺术系Art');

--13)向SC表中添加一个学生的选课记录,学生学号为20010115,所选的课程号为C2。
INSERT INTO SC(Sno,Cno)
VALUES('20010115','C2');

--14)将姓名为Sue的学生所在系改为计算机系。
UPDATE Student SET Sdept='计算机系' 
WHERE Sdept in(
	SELECT Sdept FROM Student 
    WHERE Sname='Sue'
	);
	
--15)将选了课程名为Database课程的学生成绩加10。
UPDATE SC SET Grade=Grade+10
WHERE Cno in(
	SELECT Cno FROM Course 
    WHERE Cname='Database'
	);

--16)删除所有成绩为空值的选修记录。
DELETE FROM SC 
WHERE Grade is null;

--17)删除计算机系选修成绩不及格的学生的选修记录。
DELETE FROM SC 
WHERE Cno in(
	SELECT SC.Cno FROM Student,SC 
	WHERE Sdept='计算机' AND Grade<60 AND Student.Sno=SC.Sno
	);

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值