上机练习3
1、 将一个新学生记录(学号:0100;姓名:陈冬;性别:男;所在系:信息系;年龄:20岁)插入到Student表中;
ALTER TABLE Student
ADD Sage DECIMAL(18,0);
UPDATE Student
SET Sage=YEAR(getdate())-DATENAME(yyyy,Sbirth);
INSERT INTO Student(Sno,Sname,Sgender, Sdept,Sage)
VALUES('0100','陈冬','男','信息系','20') ;
2、 重复执行上述1操作,观察执行结果并分析原因;
消息2627,级别14,状态1,第4 行
违反了PRIMARY KEY 约束'PK_Student'。不能在对象'dbo.Student' 中插入重复键。
语句已终止。
无法执行,因为Sno是主码,主码必须是唯一的,而之前的操作已经插入了主码为0100的学生的信息。
3、 新增一条选课记录(学号:0100;课程号:1);
INSERT INTO Score(Sno,Cno)
VALUES('0100','0001');
4、 统计每个系学生的平均年龄,并把结果存入数据库;
建新表
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;
5、 将信息系所有学生的年龄减小1岁;
UPDATE Student
SET Sage=Sage-1
WHERE Sdept='信息系';
UPDATE Student
SET Sage=Sage-1
WHERE Sno IN
(SELECT Sno
FROM Student
WHERE Sdept='信息系'
);
6、 将选修了课程号为2的学生的成绩减去2分;
UPDATE Score
SET Cscore=Cscore-2
WHERE Cno='0002';
7、 将信息系全体学生的成绩清零;
UPDATE Score
SET Cscore=0
WHERE Sno IN
(SELECT Sno
FROM Student
WHERE Sdept='信息系');
8、 删除学号为0100的学生记录;
DELETE
FROM Student
WHERE Sno='0100';
9、 删除2号课程的所有选课记录;
DELETE
FROM Score
WHERE Cno='0002';
10、 删除所有的学生选课记录;
DELETE
FROM Score;
11、 删除信息系所有学生的选课记录。
DELETE F
ROM Score
WHERE Sno IN
(SELECT Sno
FROM Student
WHERE Sdept='信息系');