数据库的建立和维护
- 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
- 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
- 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.