实 验 一 基本表的定义、删除与修改
一.实验目的:
熟练掌握基本表的定义、删除与修改,为后继学习作准备。
二.实验属性(验证性)
1.了解并掌握SQL查询分析器及企业管理器的使用; 2.掌握基本表的定义、删除与修改。
三. 实验原理
SQL语言应用。
四.实验步骤:
1 定义基本表
例1.1 建立表1.1所示的学生表Students,每个属性名的意义为Sno-学号、Sname-姓名、Ssex-性别、Sage-年龄、Sdept-所在系。这里要求Sno和Sname不能为空值,且取值唯一。Sno为主码。
例1.2 建立表1.2所示的课程表Courses,其属性名意义分别为Cno-课程号, Cname-课程名, Pre_Cno-先修课程号, Credits-学分。Cno为主码。
例1.3 建立表1.3所示的成绩表Reports。其中的属性名意义分别为Sno-学号,Cno-课程号和Grade-考试成绩。Sno和Cno为主码。 例1.1
create database Students use Students
create table Students (
Sno char(9) primary key, Sname varchar(20) not null, Ssex char(2), Sage int,
Sdept varchar(20), )
例1.2
create table Courses (
Cno char(4) primary key, Cname varchar(40), Pre_Cno char(4), Credits smallint, )
1
例1.3
create table Reports (
Sno char(9), Cno char(4), Grade smallint,
primary key(Sno,Cno), )
2 修改基本表
例2.1 向基本表Students中增加“入学时间”属性列,其属性名为RegisterDate,数据类型为DATETIME型。
例2.2 将Sage(年龄)的数据类型改为SMALLINT型。 例2.3 删除Sname(姓名)必须取唯一值的约束。
例2.1
alter table Students add RegisterDate datetime; 例2.2
alter table Students alter column Sage smallint; 例2.3
alter table Students alter column Sname varchar(20);
3 删除基本表
例3.1 删除Students表。
说明:此表删除后,请立即用例3.1将其建立起来,以便后面的例子使用。
例3.1
drop table Students RESTRICT;
其中restrict有条件的删除,默认
drop table Students cascade; 无条件的删除
4 向表中添加元组
例4.1 将一个学生元组(S01,王建平,男,21,计算机)添加到基本表Students中。
说明: ⑴ 请将其余5个学生的元组也添加到基本表Students中。⑵ 向Courses表插入元组(‘C01’,’英语’,’’,4):
例4.2 将学习成绩的元组(‘S01’, ’C01’)添加到基本表Reports中。 说明:用这个命令将其余7个选课元组也添加到基本表Reports中.
2
例4.1
insert into Students values('S01','王建平','男','21','计算机'); (1)
insert into Students values('S02','刘华','女','19','自动化'); insert into Students values('S03','范林军','女','18','计算机'); insert into Students values('S04','李伟','男','19','数学'); insert into Students values('S05','黄河','男','18','数学'); insert into Students values('S06','长江','男','20','数学'); (2)
insert into Courses (Cno,Cname,Credits) values ('C01','英语','4'); insert into Courses values ('C02','数据结构','C05','2'); insert into Courses values ('C03','数据库','C02','2'); insert into Courses values ('C04','DB_设计','C03','3');
insert into Courses (Cno,Cname,Credits) values ('C05','C++','3'); insert into Courses values ('C06','网络原理','C07','3'); insert into Courses values ('C07','操作系统','C05','3'); 例4.2
insert into Reports (Sno,Cno) values ('S01','C01'); insert into Reports (Sno,Cno) values ('S01','C03'); insert into Reports (Sno,Cno) values ('S02','C01'); insert into Reports (Sno,Cno) values ('S02','C02'); insert into Reports (Sno,Cno) values ('S02','C03'); insert into Reports (Sno,Cno) values ('S03','C01'); insert into Reports (Sno,Cno) values ('S03','C02'); insert into Reports (Sno,Cno) values ('S04','C03');
3