目录
1.插入一条选课记录(' 201105122 ','1 ')
实验报告 | ||||||||
开课学院及实验室: | ||||||||
学院 |
| 年级、专业、班 |
| 姓名 | 学号 | |||
实验课程名称 | 数据库原理与应用实验 | 成绩 |
| |||||
实验项目名称 | 数据库更新实验 | 指导 教师 |
|
一、实验目的
掌握基本表的insert,update,delete操作
二、实验说明
数据库参考(先执行下列语句)
CREATE DATABASE SCDB
ON PRIMARY(NAME=SCDB,
FILENAME='d:\SCDB.mdf',
SIZE=4MB,
MAXSIZE=6MB,
FILEGROWTH=2MB)
go
use SCDB
go
CREATE TABLE Student
(Sno CHAR(9) Primary key, /*学号*/
Sname CHAR(20) NOT NULL, /*姓名*/
Ssex CHAR(2) check(Ssex in ('男','女')), /*性别*/
Sage INT default 20, /*年龄*/
Sdept CHAR(15)); /*所在系*/
go
insert into student values('201105121','李勇','男',20,'SC')
insert into student values('201105122','刘晨','女',19,'SC')
insert into student values('201105123','王敏','女',18,'MA')
insert into student values('201105124','张立','男',19,'IS')
go
CREATE TABLE Course(
Cno CHAR(3) , /*课程号*/
Cname CHAR(20) , /*课程名*/
Cpno CHAR(3), /*先修课号码*/
Ccredit int, /*学分*/
Primary key (Cno));
go
insert into Course values('1','数据库','5',4)
insert into Course values('2','数学',NULL,2)
insert into Course values('3','信息系统','1',4)
insert into Course values('6','数据处理',NULL,2)
insert into Course values('4','操作系统','6',3)
insert into Course values('7','PASCAL语言','6',4)
insert into Course values('5','数据结构','7',4)
go
CREATE TABLE SC(
Sno CHAR(9) , /*学号*/
Cno CHAR(3) , /*课程号*/
Grade int, /*成绩*/
Primary key (Sno, Cno),
CHECK(Grade BETWEEN 0 AND 100),
FOREIGN KEY(Sno) REFERENCES Student(Sno),
FOREIGN KEY(Cno) REFERENCES Course(Cno));
go
insert into SC values('201105121','1',92)
insert into SC values('201105121','2',85)
insert into SC values('201105121','3',88)
insert into SC values('201105122','2',90)
insert into SC values('201105123','3',80)
三、实验内容
在SQL Server Query Analyzer中实现表的insert,update,delete操作。
1.插入一条选课记录(' 201105122 ','1 ')
insert into SC
(Sno,Cno)
values
('201105122','1')
go
/*查看插入的数据*/
select * from SC
where Sno=201105122
go
2.将一个新学生记录
(学号:201205122;姓名:陈冬;性别:男;所在系:IS;年龄:18岁)插入到Student表中
insert into Student
(Sno,Sname,Ssex,Sdept,Sage)
values
('201205122','陈冬','男','IS',18)
go
/*查看数据*/
select * from Student
where Sno=201205122
go
3. 对每一个系,求学生的平均年龄,并把结果存入数据库。
首先新建一个表
create table avg_age
(sdept char(10),
avg_age smallint);
然后按照student表中的系别求平均年龄,再把系别和平均年龄存入新建的表中
insert
into avg_age(sdept,avg_age)
select sdept,AVG(sage)
from Student
group by Sdept;
select * from avg_age
4.将学生201105121的年龄改为22岁。
update Student /*使用update语句,更新数据库中的字段内容*/
set Sage=22
where sno=201105121
5.将所有学生的年龄增加1岁。
update Student
set Sage=Sage+1
go
6. 将信息系所有学生的年龄增加1岁。
update Student
set Sage=Sage+1
where Sdept='IS'
go
7. 将计算机科学系全体学生的成绩置零。
update SC
set Grade=0
where Sno in
(select Sno
from Student
where Sdept='sc')
go
8.删除学号为201105124的学生记录。
delete from Student
where Sno=201105124
go
9.删除2号课程的所有选课记录。
delete from SC
where Cno=2
go
10.删除计算机科学系所有学生的选课记录
delete from SC
where Sno in
(select Sno
from Student
where Sdept='sc')
go
11.删除所有的学生选课记录
delete * from SC