sqlserver查询语句,用案例说话
(1)用SQL语句表示下列操作,在学生库中实现数据查询。
①求数学系学生的学号和姓名。
②求选修了课程的学生学号。
③求选修001号课程的学生学号和成绩,并要求对查询结果按成绩降序排列,如果成绩相同则按学号升序排列。
④求选修课程001且成绩在80~90分之间的学生学号和成绩,并将成绩乘以系数0.8输出。
⑤求数学系或计算机系姓张的学生的信息。
⑥查看选修了课程、但没有成绩学生的学号、姓名、课程号和所在是系部。
⑦查询学生的学号、姓名、课程名和成绩。
⑧分别实现学生和系的交叉连接、内连接、外连接。
1、select SNo,SName from student where SDept = (
select DNo from Department where DName = '数学系'
)
2、select SNo from SCource where CNo is not null;
3、select SNo,Grade from SCource where CNo=1 order by SNo,Grade DESC;
4、select SNo,Grade*0.8 from SCource where CNo=1
5、select * from Student where SDept in (
select DNo from Department where DName = '数学系' or DName = '计算机系'
) and SName like '张%'
6.select SCource.SNo,SName,CNo,SDept from Student,SCource where Student.SNo in (
select Student.SNo from SCource where CNo is not null and Grade is null
)
7、select SCource.SNo,SName,CName,SCource.Grade from Student,SCource,Cource
8、select Student.*,Department.* from Department cross join Student;
select Student.*,Department.* from student inner join Department on Student.SDept = Department.DNo;
select Student.*,Department.* from Student left outer join Department on Student.SDept = Department.DNo;
(2)在SQL Server查询分析器中使用IN、比较符、ANY或ALL和EXISTS操作符进行嵌套查询操作。具体内容如下:
用SQL语句表示,在学生选课库中实现其数据嵌套查询操作。
①求选修了高等数学的学生学号和姓名。
②求001课程的成绩高于张力的学生学号和成绩。
③求其他系中年龄小于计算机系年龄最大者的学生。
④求其他系中比计算机系学生年龄都小的学生。
⑤求选修了001课程的学生姓名。
⑥求没有选修001课程的学生姓名。
⑦查询选修了全部课程的学生的姓名。
select SNo,SName from Student where SNo in(
select SNo from SCource where CNo in(
select CNo from Cource where CName = '高等数学'
)
)
select SCource.SNo,Grade from SCource,Student where SCource.CNo = 1 and SCource.Grade > (
select Grade from SCource where SNo = (
select SNo from Student where SName = '张力'
)
)
select SName,SAge,SDept from Student where SDept<>(
select DNo from Department where DName = '计算机工程系'
) and SAge < any (
select SAge from Student where SDept=(
select DNo from Department where DName = '计算机工程系'
)
)
select SName,SAge,SDept from Student where SDept<>(
select DNo from Department where DName = '计算机工程系'
) and SAge < all (
select SAge from Student where SDept=(
select DNo from Department where DName = '计算机工程系'
)
)
select SName from Student,SCource where Student.SNo = SCource.SNo and CNo='1'
select SName from Student where not exists (
select * from SCource where SNo=Student.SNo and CNo='1'
)
select SName from Student where not exists(
select * from Cource where not exists(
select * from SCource where SNo=Student.SNo and CNo = Cource.CNo
)
)