实验1 数据库及数据库表的建立
1.实验目的
本实验的目的是使学生熟悉SQL Server的企业管理器的用法,初步了解SQL Server 查询分析器的使用方法,熟悉SQL SERVER的常用数据类型,加深对SQL定义语言的理解。熟练掌握数据库的创建以及基本表的创建与修改。
2.实验时数2学时
3.实验内容
首先创建一个库stu_db,在此数据库中创建以下基本表:
1.基本表的建立:
a)建立一个“学生”表Student,它由学号xh、姓名xm、性别xb、年龄nl、
所在系xi五个属性组成,其中学号属性不能为空,并且其值是唯一的。
b)建立一个“学生”表Student,它由学号xh、姓名xm、性别xb、年龄nl、
所在系xi五个属性组成,其中学号属性不能为空,并创建检查约束(nl>0)。
c)建立一个“学生”表Student,它由学号xh、姓名xm、性别xb、年龄nl、
所在系xi五个属性组成,要求学号为主键,xb有默认的值为‘男’
d)建立“课程kc”包括课程号kch,课程名称kcmc,先修课程xxkc,学分
xf,要求建立主键
e)建立“成绩登记表cjdj”包括学号xh,程号kch,成绩,要求建立主键及
与student及kc表联接的外键
2.基本表的修改:
a)在cjdj表中增加一列“任课教师rkjs”
b)删除cjdj表中rkjs一列
c)将student表的xm一列允许空值的属性更改成不允许为空,将列xm的长
度由char(8)改为char(10)
d)增加cjdj表的列cj增加一个约束要求cj>0 and cj<=100
e)建立一个临时表,再将其删除
3.索引的建立与删除(理解以下语句的含义并上机实践):
a)create unique index stu_xh on student(xh)
b)create index xh_kch on cj(xh asc,kch desc)
c)drop index student.xh_kch
4.实验方法
在“企业管理器”和“SQL查询分析器”均完成以上的任务。并检查所做的操作表现。————代码部分
create database stu_db
(
name='stu_db',
filename='I:\数据库实验--罗颖\stu_db.mdf',
size=3mb,
filegrowth=1mb,
maxsize=20mb
)
log on
(
name='stu_log',
filename='I:\数据库实验--罗颖\stu_db.ldf',
size=3mb,
filegrowth=1mb,
maxsize=20mb
)
go
use stu_db
go
--a建立一个“学生”表Student1,它由学号xh、姓名xm、性别xb、年龄nl、所在系xi五个属性组成,
--其中学号属性不能为空,并且其值是唯一的。
create table Student1
(
xh char(8)not null unique,
xm char(20),
xb char(2),
nl int,
xi char(20)
)
go
--b建立一个“学生”表Student2,它由学号xh、姓名xm、性别xb、年龄nl、所在系xi五个属性组成,
--其中学号属性不能为空,并创建检查约束(nl>0)。
create table Student2
(
xh char(8)not null,
xm char(20),
xb char(2),
nl int check(nl>0),
xi char(20)
)
go
--c建立一个“学生”表Student3,它由学号xh、姓名xm、性别xb、年龄nl、所在系xi五个属性组成,
--要求学号为主键,xb有默认的值为‘男’
create table Student3
(
xh char(8)primary key,
xm char(20),
xb char(2)default'男',
nl int,
xi char(20)
)
go
--d建立“课程kc”包括课程号kch,
--课程名称kcmc,先修课程xxkc,学分xf,要求建立主键
create table kc
(
kch char(8)primary key,
kcmc char(20),
xxkc char(2),
xf int
)
go
--e建立“成绩登记表cjdj”包括学号xh,程号kch,成绩,要求建立主键及与student及kc表联接的外键
create table cjdj
(
xh char(8),
kch char(8),
cj int,
primary key(xh,kch),
foreign key(xh)references Student3(xh),
foreign key(kch)references kc(kch),
)
go
--2.基本表的修改:
--a)在cjdj表中增加一列“任课教师rkjs”
alter table cjdj
add rkjs char(20)
--b)删除cjdj表中rkjs一列
alter table cjdj
drop column rkjs
--c) 将student表的xm一列允许空值的属性更改成不允许为空,将列xm的长度由char(8)改为char(10)
alter table Student3
alter column xm char(10)not null
--d) 增加cjdj表的列cj增加一个约束要求cj>0 and cj<=100
alter table cjdj
add constraint cj_1 check(cj>0 and cj<=100)
--e) 建立一个临时表,再将其删除
create table #linshi
(
name1 char(20),
drop删除表
age1 int
)
go
--3.索引的建立与删除(理解以下语句的含义并上机实践):
--a) create unique index stu_xh on student(xh)
create unique index stu_xh on Student3(xh)
--b) create index xh_kch on cjdj(xh asc,kch desc)
create index xh_kch on cjdj(xh asc,kch desc)
--c) drop index student.xh_kch
drop index cjdj.xh_kch
5. 收获体会
这是第一次的数据库的实验,让我收获很多,开始的时候只是用了用户图形界面将符合要求的数据库创建出来。然后,我又用了代码将各个表又重新敲了一遍,分别有Studnet1、Student 2、Student3、cjdj、kc五张表,以及基本表的修改和索引的建立与删除,这个过程确实要比图形用户界面写出来的要麻烦一点,但是,对于一些概念的理解是更深层次的,例如上课讲过的主键外键,理解也就更深了一步,以及对于一些索引的创建,理解的也更加好了。总体来讲这次的实验是成功的!
版权声明:本站内容均来自互联网,仅供演示用,请勿用于商业和其他非法用途。如果侵犯了您的权益请与我们联系QQ:729038198,我们将在24小时内删除。
发表评论