文章目录
-
-
- 集合查询
- 例3.64 查询计算机科学系的学生及年龄不大于19岁的学生。
- 例3.65 查询选修了课程1或者选修了课程2的学生。
- 例3.66 查询计算机科学系的学生与年龄不大于19岁的学生 的交集。
- 例3.67 查询既选修了课程1又选修了课程2的学生。
- 例3.68 查询计算机科学系的学生与年龄不大于19岁的学生的差集。
- 派生表
- 数据更新
- 例3.72 对每一个系,求学生的平均年龄,并把结果存入数据库
- 例3.73 将学生201215121的年龄改为22岁
- 例3.74 将所有学生的年龄增加1岁
- 例3.75 将计算机科学系全体学生的成绩置零。
- 例3.76 删除学号为201215128的学生记录。
- 例3.77 删除所有的学生选课记录。
- 例3.78 删除计算机科学系所有学生的选课记录。
- 例3.79 向SC表中插入一个元组,学生号是”201215126”,课程号是”1”,成绩为空。
- 例3.80 将Student表中学生号为”201215100”的学生所属的系改为空值。
- 例3.81 从Student表中找出漏填了数据的学生信息.
- 例3.82 找出选修1号课程的不及格的学生。
- 例3.83 选出选修1号课程的不及格的学生以及缺考的学生。
- 视图
- 例3.84 建立信息系学生的视图。
- 例3.85 建立信息系学生的视图,并要求进行修改和插入操作时仍需保证该视图只有信息系的学生 。
- 例3.86 建立计科选修了1号课程的学生的视图(包括学号、姓名、成绩)。
- 例3.87 建立信息系选修了1号课程且成绩在90分以上的学生的视图。
- 例3.88 定义一个反映学生出生年份的视图。
- 例3.89 将学生的学号及平均成绩定义为一个视图
- 例3.90 将Student表中所有女生记录定义为一个视图。
- 删除视图
-
集合查询
select返回的是一个集合,交 并 差 union intersect except
例3.64 查询计算机科学系的学生及年龄不大于19岁的学生。
SELECT *
FROM Student
WHERE Sdept='CS'
UNION SELECT *
FROM Student
WHERE Sage<=19;
例3.65 查询选修了课程1或者选修了课程2的学生。
SELECT Sno
FROM SC
WHERE Cno='1'
UNION SELECT Sno
FROM SC
WHERE Cno='2';
例3.66 查询计算机科学系的学生与年龄不大于19岁的学生 的交集。
SELECT *
FROM Student
WHERE Sdept='CS'
INTERSECT SELECT *
FROM Student
WHERE Sage<=19;
SELECT *
FROM Student
WHERE Sdept='CS' AND
Sage<=19;
例3.67 查询既选修了课程1又选修了课程2的学生。
SELECT Sno
FROM SC
WHERE Cno='1'
INTERSECT SELECT Sno
FROM SC
WHERE Cno='2';
SELECT Sno
FROM SC
WHERE Cno='1' AND Sno IN
(SELECT Sno
FROM SC
WHERE Cno='2');
例3.68 查询计算机科学系的学生与年龄不大于19岁的学生的差集。
SELECT *
FROM Student
WHERE Sdept='CS'
EXCEPT SELECT *
FROM Student
WHERE Sage<=19;
SELECT *
FROM Student
WHERE Sdept='CS' AND Sage>19;
派生表
子查询不仅可以在WHERE子句中,在FROM里也可以,这个时候叫做 临时派生表。
数据更新
INSERT插入 UPDATE修改数据 DELETE删除
INSERT
INTO <表名> [(<属性列1> [,<属性列2>… )]
子查询;
UPDATE <表名>
SET <列名>=<表达式>[,<列名>=<表达式>]…
[WHERE <条件>];
DELETE FROM <表名>
[WHERE <条件>];
例3.72 对每一个系,求学生的平均年龄,并把结果存入数据库
CREATE TABLE Dept_age
(Sdept CHAR(15),
Avg_age SMALLINT);
INSERT INTO
Dept_age(Sdept,Avg_age)
SELECT Sdept,AVG(Sage)
FROM Student
GROUP BY Sdept;
例3.73 将学生201215121的年龄改为22岁
例3.74 将所有学生的年龄增加1岁
UPDATE Student
SET Sage=22
WHERE Sno='201215121';
UPDATE Student
SET Sage=Sage+1;