掌握各种查询的使用方法
掌握数据操纵的使用方法
创建的学生作业管理数据库以及其中的学生表、课程表和学生作业表见前面文章
1.使用查询语句完成以下任务(每一个查询都要给出SQL语句,并且列出查询结果)。
(1)查询与“张志国”同一班级的学生信息(使用连接查询和子查询方式)。
(2)查询比“计算机应用基础”学时多的课程信息(使用连接查询和子查询方式)。
(3)查询选修课程号为K002的学生的学号、姓名(使用连接查询、普通子查询、相关子查询)。
(4)查询没有选修K001和M001课程的学号、课程号和三次成绩(使用子查询)。
2.使用数据操纵完成以下任务(每一个任务都要给出SQL语句,并且列出查询结果)。
(1)在学生表中添加一条学生记录,其中,学号为0593,姓名为张乐,性别为男,专业班级为电子05。
(2)将所有课程的学分数变为原来的两倍。
(3)删除张乐的信息。
使用查询语句完成以下任务(每一个查询都要给出SQL语句,并且列出查询结果)
调用数据库查看数据表
use STU_Information
go
select * from Stu
select * from StuWork
select * from Course
Stu表:
StuWork表:
Course表:
--(1)查询与“张志国”同一班级的学生信息(使用连接查询和子查询方式)。
--连接查询
select Stu1.* from Stu as Stu1,Stu as Stu2
where Stu2.SN='张志国' and Stu2.ProClass=Stu1.ProClass
--子查询
select * from Stu
where ProClass =(select ProClass from Stu
where SN='张志国')
--(2)查询比“计算机应用基础”学时多的课程信息(使用连接查询和子查询方式)。
--连接查询
select Course1.* from Course as Course1,Course as Course2
where Course2.CN='计算机应用基础' and Course1.CHour>Course2.CHour
--子查询
select * from Course
where CHour >(select CHour from Course
where CN='计算机应用基础')
--(3)查询选修课程号为K002的学生的学号、姓名(使用连接查询、普通子查询、相关子查询)。
--连接查询
select Stu.SNo,Stu.SN from Stu,StuWork
where Stu.SNo=StuWork.SNo and StuWork.CNo='K002'
--普通子查询
select distinct Stu.SNo,Stu.SN from Stu,StuWork
where Stu.SNo in (select Stu.SNo from StuWork
where Stu.SNo=StuWork.SNo and StuWork.CNo='K002'
)
--相关子查询
select distinct Stu.SNo,Stu.SN from Stu,StuWork
where Stu.SNo in(select StuWork.SNo from StuWork
where StuWork.CNo='K002')
--exists 关键字的相关子查询
select distinct Stu.SNo,Stu.SN from Stu,StuWork
where exists (select * from StuWork
where Stu.SNo=StuWork.SNo and StuWork.CNo='K002')
--(4)查询没有选修K001和M001课程的学号、课程号和三次成绩(使用子查询)。
--子查询
select distinct SNo,CNo,WScore1,WScore2,WScore3
from StuWork
where SNo not in (select SNo from StuWork where CNo='K001'or CNo='M001')
--2.使用数据操纵完成以下任务(每一个任务都要给出SQL语句,并且列出查询结果)。
--(1)在学生表中添加一条学生记录,其中,学号为0593,姓名为张乐,性别为男,专业班级为电子05。
--修改Stu表中Birthday属性可以为空
alter table Stu
alter column Birthday datetime null
--添加语句
insert into Stu(SNo,SN,Sex,ProClass) values('0593','张乐','男','电子05')
select * from Stu
--(2)将所有课程的学分数变为原来的两倍。
--select CN,Credit from Course
update Course set Credit = Credit*2
update Course set Credit = Credit/2
--(3)删除张乐的信息。
delete from Stu where SN='张乐'
select * from Stu
--(1)查询与“张志国”同一班级的学生信息(使用连接查询和子查询方式)。
--连接查询
select Stu1.* from Stu as Stu1,Stu as Stu2
where Stu2.SN='张志国' and Stu2.ProClass=Stu1.ProClass
--子查询
select * from Stu
where ProClass =(select ProClass from Stu
where SN='张志国')
--(2)查询比“计算机应用基础”学时多的课程信息(使用连接查询和子查询方式)。
--连接查询
select Course1.* from Course as Course1,Course as Course2
where Course2.CN='计算机应用基础' and Course1.CHour>Course2.CHour
--子查询
select * from Course
where CHour >(select CHour from Course
where CN='计算机应用基础')
--(3)查询选修课程号为K002的学生的学号、姓名(使用连接查询、普通子查询、相关子查询)。
--连接查询
select Stu.SNo,Stu.SN from Stu,StuWork
where Stu.SNo=StuWork.SNo and StuWork.CNo='K002'
--普通子查询
select distinct Stu.SNo,Stu.SN from Stu,StuWork
where Stu.SNo in (select Stu.SNo from StuWork
where Stu.SNo=StuWork.SNo and StuWork.CNo='K002')
--相关子查询
select distinct Stu.SNo,Stu.SN from Stu,StuWork
where Stu.SNo in(select StuWork.SNo from StuWork
where StuWork.CNo='K002')
--exists 关键字的相关子查询
select distinct Stu.SNo,Stu.SN from Stu,StuWork
where exists (select * from StuWork
where Stu.SNo=StuWork.SNo and StuWork.CNo='K002')
--(4)查询没有选修K001和M001课程的学号、课程号和三次成绩(使用子查询)。
--子查询
select distinct SNo,CNo,WScore1,WScore2,WScore3
from StuWork
where SNo not in (select SNo from StuWork where CNo='K001'or CNo='M001')
--2.使用数据操纵完成以下任务(每一个任务都要给出SQL语句,并且列出查询结果)。
--(1)在学生表中添加一条学生记录,其中,学号为0593,姓名为张乐,性别为男,专业班级为电子05。
--修改Stu表中Birthday属性可以为空
alter table Stu
alter column Birthday datetime null
--添加语句
insert into Stu(SNo,SN,Sex,ProClass) values('0593','张乐','男','电子05')
select * from Stu
--(2)将所有课程的学分数变为原来的两倍。
--select CN,Credit from Course
update Course set Credit = Credit*2
--(3)删除张乐的信息。
delete from Stu where SN='张乐'
select * from Stu
-----------------------------------------------------------------------------------------------------------------------------
创建的学生作业管理数据库以及其中的学生表、课程表和学生作业表见前面文章