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五张表,以及基本表的修改和索引的建立与删除,这个过程确实要比图形用户界面写出来的要麻烦一点,但是,对于一些概念的理解是更深层次的,例如上课讲过的主键外键,理解也就更深了一步,以及对于一些索引的创建,理解的也更加好了。总体来讲这次的实验是成功的!


本文标签: 建立 数据库 实验 要求 创建