admin 管理员组文章数量: 1087135
2023年12月22日发(作者:compare用法及搭配)
实验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 _kch
4. 实验方法
在“企业管理器”和“SQL查询分析器”均完成以上的任务。并检查所做的操作表现。
————代码部分
create database stu_db
on
(
)
log on
(
)
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
name='stu_log',
filename='I:数据库实验--罗颖stu_',
size=3mb,
filegrowth=1mb,
maxsize=20mb
name='stu_db',
filename='I:数据库实验--罗颖stu_',
size=3mb,
filegrowth=1mb,
maxsize=20mb
--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),
age1 int
)
go
--3. 索引的建立与删除(理解以下语句的含义并上机实践):
--a) create unique index stu_xh on student(xh)
create unique index stu_xh on Student3(xh)
--b)
--c)
drop index _kch
drop index _kch
create index xh_kch on cjdj(xh asc,kch desc)
create index xh_kch on cjdj(xh asc,kch desc)
5. 收获体会
这是第一次的数据库的实验,让我收获很多,开始的时候只是用了用户图形界面将符合要求的数据库创建出来。然后,我又用了代码将各个表又重新敲了一遍,分别有Studnet1、Student
2、Student3、cjdj、kc五张表,以及基本表的修改和索引的建立与删除,这个过程确实要比图形用户界面写出来的要麻烦一点,但是,对于一些概念的理解是更深层次的,例如上课讲过的主键外键,理解也就更深了一步,以及对于一些索引的创建,理解的也更加好了。总体来讲这次的实验是成功的!
版权声明:本文标题:实验1数据库及数据库表的建立 内容由网友自发贡献,该文观点仅代表作者本人, 转载请联系作者并注明出处:http://roclinux.cn/b/1703240268a443639.html, 本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌抄袭侵权/违法违规的内容,一经查实,本站将立刻删除。
发表评论