实验2 数据库及数据库表的建立
实验目的
本实验的目的是使学生熟悉SQL Server 2008的企业管理器的用法,初步了解SQL Server查询分析器的使用方法,熟悉SQL SERVER的常用数据类型、完整性约束,索引的定义与维护。加深对SQL数据定义语言理解,掌握数据库的创建以及基本表的创建与修改。
实验时数 2学时
三、实验内容
1.首先创建一个学生数据库stu_db
Create database stu_db; use stu_db;
2.基本表的建立:
- 1.建立一个学生表S1,它由学号sno、姓名sname、性别ssex、年龄sage、所在系sdept五个属性组成,其中学号属性不能为空,并且其值是唯一的。
use stu_db create table S1 ( sno char(10) unique not null, sname varchar(8), ssex char(2), sage int, sdept varchar(30) )
- 2.建立一个“学生表S2,它由学号sno、姓名sname、性别ssex、年龄sage、所在系sdept五个属性组成,其中学号属性不能为空,并创建检查约束(sage>0)。
create table S2 ( sno char(10) not null, sname varchar(8), ssex char(2), sage int check(sage>0), sdept varchar(30), )
- 3.建立一个学生表S,它由学号sno、姓名sname、性别ssex、年龄sage、所在系sdept五个属性组成,要求学号为主键,ssex有默认的值为 ‘男’。
create table S ( sno char(10) primary key, sname varchar(8), ssex char(2) default '男', sage int, sdept varchar (30), check (sage>0), )
- 4.建立“课程表C”,包括课程号cno,课程名称cname,先修课程cpno,学分credit,要求建立主键
create table C ( cno char(4) primary key, cname varchar(30), cpno varchar(30), credit int )
- 5.建立“成绩表SC”包括学号sno,课程号cno,成绩grade,要求建立主键及与S及C表联接的外键。
create table SC ( sno char(10), cno char(4), grade int, primary key(sno,cno), foreign key(cno) references C(cno), foreign key(sno) references S(sno), )
3、 基本表的修改:
- 1.在sc表中增加一列“任课教师rkjs”。
alter table SC add rkjs varchar(10)
- 2.删除sc表中rkjs一列。
alter table SC drop column rkjs
- 3.将s1表的sname一列允许空值的属性更改成不允许为空,将列sname的长度由char(8)改为char(10)。
alter table S1 alter column sname char(10) not null
- 4.增加SC表的列grade增加一个约束要求cj>0 and cj<=100。
alter table SC add check(grage>0 and grage <=100)
- 5.建立一个临时表:#temp(sno char(10),sname char(8));再将其删除。(提示:临时表名称为:#表名,其余和创建普通表一样)。
create table #temp ( sno char(10), sname char(8) )
4、索引的建立与删除
- a) create unique index stu_sno on s1(sno)
- b) create index sno_cno on SC(sno asc,cno desc)
- c) drop index SC.sno_cno
四、实验方法
用图形用户界面方式和SQL查询分析器完成以上的任务。并检查所做的操作表现。
五、收获体会
通过这次实验,我熟悉了SQL server的企业管理器的用法,学会了基本表的建立、删除、和修改,还对索引和视图有了一定的了解,加深了对数据库的理解。