数据库的建立和维护

  1. 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
  2. 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
  3. 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。

实验二: 数据库的建立和维护

实验目的

熟练掌握建立数据库和表,向数据库输入数据、修改数据和删除数据的操作。

实验内容

建立数据库并设计各表,输入多条实际数据,并实现数据的增、删、改操作。

实验步骤:

创建用于学生管理数据库,数据库名为XSGL,包含学生的基本信息,课程信息和选课信息。数据库XSGL包含下列3个表:

(l)student:学生基本信息。

(2)course:课程信息表。

(3)sc:学生选课表。

各表的结构分别如表1、表2和表3所示。

一. 数据库的建立:

1.命令方式建立:

(a)在SQL SERVER2005中,在新建查询中使用T-SQL语句建立数据库XSGL:CREATE DATABASE XSGL

ON(NAME='XSGL_DATA',

FILENAME='D:\XSGL.MDF',

SIZE=10MB,

MAXSIZE=50MB,

FILEGROWTH=5%)

LOG ON

(NAME='XSGL_Log',

FILENAME='D:\XSGL_Log.ldf',

SIZE=2MB,

MAXSIZE=5MB,

FILEGROWTH=1MB)

2.在新建查询中使用T-SQL语句建立数据库XSGL2:

CREATE DATABASE XSGL2

3.T-SQL语句删除数据库XSGL2:

drop DATABASE XSGL2

二. 表的建立:

1.命令方式建立:

在SQL SERVER2005 中的”新建查询”编辑窗口中用下列SQL语句建立三个表student,course,sc:

create table student

(sno char(10)not null primary key,

sname varchar(10)not null,

ssex char(2)not null check(ssex ='男'or ssex ='女'),

sage int,

sdept char(2)not null

);

go

create table course

(cno char(3)not null primary key,

cname varchar(30)not null,

credit int check(credit >=0 and credit <= 10),

pcno char(3)references course(cno)

);

go

create table sc

(sno char(10)not null,

cno char(3)not null,

grade int check(grade >=0 and grade <= 100),

primary key(sno, cno),

foreign key(sno)references student(sno),

foreign key(cno)references course(cno)

);

2. 删除表sc,再建立表sc

create table sc

(sno char(10)not null,

cno char(3)not null,

grade int check(grade >=0 and grade <= 100),

primary key(sno, cno),

foreign key(sno)references student(sno),

foreign key(cno)references course(cno)

);

3.添加一身份证号字段,设置其惟一性.(注: 操作前应删除表中的所有记录)

Alter table student add id char(18)unique(id)

4. 设置学号字段只能输入数字:

alter table student add constraint CK_Sno_Format check(sno like

'[0-9][0-9][0-9][0-9][0-9]')

5. 设置身份证号的输入格式:

alter table student add constraint CK_ID_Format check((id like '[0-9][0-9][0-9][0-9][0-9][0-9][1-2][0-9][0-9][0-9][0-1][0-9][0-3][0-9][0-9][0-9][0-9]_')OR(id like

'[0-9][0-9][0-9][0-9][0-9][0-9][0-9][0-9][0-1][0-9][0-3][0-9][0-9][0-9][0-9]'))

6. 设置18位身份证号的第7位到第10位为合法的年份(1900-2050)

alter table student add constraint CK_ID_Format2 check(not len(id)=18 or((convert(smallint,substring(id,7,4))>=1900)

and(convert(smallint,substring(id,7,4))<=2050)))

6.设置男生的年龄必须大于22, 女生的年龄必须大于20.

Alter table student add constraint CK_age check(ssex='男'and sage>=22 or ssex='女'and sage>=20 )

7.设置男生的年龄必须大于22, 女生的年龄必须大于20.

相关文档
最新文档