前言
近来感觉SQL语句有些生疏,于是,便有了这次的回忆
采用的是SQLServer 2008
最常见的三张表
Student(sno, name, sex, age, dept )
Course(cno, name, pno, teacher, credit)
SC(sno, cno, grade)
常见SQL语句
1.插入一名学生的信息’200215126’, ‘张辉’, ‘男’, 20, ‘IS’
insert into student(sno, name, sex, age, dept )
values( '200215126', '张辉', '男', 20, 'IS' )
2.更新学号为200215121的学生的年龄为20,学院为计算机院
update student
set age=20,dept='CS'
where sno='200215121'
3.检索不学C2课的学生姓名与年龄
(思路:学生表里总体的姓名和年龄 “减去” 学C2的学生姓名和年龄 等于不学的)
集合的操作,见SQL语句对结果集操作
(select name ,age from student)
Except
(select name ,age from student,sc where student.sno=sc.sno and sc.cno='2')
4.检索学习全部课程的学生学号
(思路:选课表中全部的学号和课程号 “除以” 课表中全部的课程号)
-
除法的操作,见SQL语句实现关系代数中的“除法”
select distinct sno from sc sc1
where not exists
(
select cno from course
where not exists
(
select * from sc sc2
where sc2.sno=sc1.sno and sc2.cno=course.cno
)
)
5.检索所学课程包含学生95002所学课程的学生学号
(思路:选课表中全部的学号和课程号“除以”选课表中95002学生所学的课程号)
select distinct sno from sc sc1
where not