实验一SQL数据定义
一、实验目的
(1)认识几种常见的数据库管理系统,熟悉它们的使用界面;
(2)熟练掌握建立数据库和表,向数据库输入数据、修改数据和删除数据的操作。
(3) 熟悉SQL数据定义语言(DDL)
二、实验内容
(1)分别在Access 和SQL SERVER2005 中建立数据库并设计各表,输入多条实际数据,并实现数据的增、删、改操作。
(2)用SQL语言进行基本表结构的定义、修改、删除,索引的建立和删除
三、实验步骤:
分别在ACCESS数据库管理系统和SQL SERVR 2005环境下利用图形操作界面(非SQL语句)实现以下操作:
1、创建用于学生管理的数据库,数据库名为XSGL,包含学生信息,课程信息和选课信息。
数据库XSGL包含下列3 个表:
(l) student:学生基本信息。
(2)course:课程信息表。
(3)sc:学生选课表。
各表的结构分别如表1、表2和表3 所示。
表1 学生信息表:student
列名
数据类型
长度
完整性约束
sno
字符(文本)型
8
主键
sname
字符(文本)型
4
不为空
ssex
字符(文本)型
1
sage
整数(数值)型
sdept
字符型
10
表2 课程信息表:course
列名
数据类型
长度
完整性约束
cno
字符(文本)型
2
主键
cname
字符(文本)型
30
credit
整数(数值)型
cpno
字符(文本)型
3
表3 学生选课表:sc
列名
数据类型
长度
完整性约束
sno
字符(文本)型
8
主属性,外键
cno
字符(文本)型
2
主属性,外键
grade
整数(数值)型
是
提示:在不使用SQL语句创建表的情况下,可通过ACCESS中的关系(菜单—工具—关系)和SQL SERVER 2005中的数据库关系图(数据库节点展开—数据库关系图)实现外键的创建。外键字段和参照字段之间的数据类型以及长度要保持一致。
2、输入表中的
记录
混凝土 养护记录下载土方回填监理旁站记录免费下载集备记录下载集备记录下载集备记录下载
分别在student表、course表和sc表中输入如下表中的记录:
sno
sname
ssex
sage
sdept
95001
李勇
男
20
CS
95002
刘晨
女
19
IS
95003
王敏
女
18
MA
95004
张立
男
19
IS
95005
刘云
女
18
CS
cno
cname
credit
pcno
1
数据库
4
5
2
数学
6
3
信息系统
3
1
4
操作系统
4
6
5
数据结构
4
7
6
数据处理
3
7
PASCAL语言
4
6
sno
cno
grade
95001
1
92
95001
2
85
95001
3
88
95002
2
90
95002
3
80
95003
2
85
95004
1
58
95004
2
85
观察输入时有无提示错误,如果有如何修改,体会参照完整性的作用,弄清楚先输入那些表中记录,为什么?
3、对表中的记录进行浏览、修改、删除操作。
4、利用“分离数据库”和 “附加数据库”操作对SQL Server中创建的数据库做备份和还原操作。
在SQL SERVER 2005中新建查询,建立到服务器的连接
用SQL语言CREATE TABLE语句创建实验一中学生表student、课程表course和选课表sc及其相应约束,
具体约束如下:
表1 学生信息表:student
列名
数据类型
长度
完整性约束
sno
字符(文本)型
8
主键
sname
字符(文本)型
4
不为空
ssex
字符(文本)型
2
默认值为’男’
取值为’男’或’女’
sage
整数(数值)型
是
sdept
字符型
10
否
表2 课程信息表:course
列名
数据类型
长度
完整性约束
cno
字符(文本)型
2
主键
cname
字符(文本)型
30
credit
整数(数值)型
cpno
字符(文本)型
3
表3 学生选课表:sc
列名
数据类型
长度
完整性约束
sno
字符(文本)型
10
主属性,外键
cno
字符(文本)型
30
主属性,外键
grade
整数(数值)型
是
取值在0-100之间
7、向创建的表中输入数据,测试所创建的完整性约束是否起作用
8、用SQL语言ALTER语句修改表结构;
STUDENT表中增加一个字段入学时间scome,
删除STUDENT表中sdept字段;
删除创建的SC表中CNO字段和COURSE表CNO字段之间的外键约束;
重建3)中删除的约束
9、重新定义一个简单表,然后用SQL语言DROP语句删除该表结构;
10、用SQL语言CREATE INDEX语句定义表STUDENT的SNAME字段的降序唯一索引;
11、用SQL语言DROP语句删除索引;
实验一语句清单:
--sql 查询实验一代码
create table student1
(sno char(8) primary key,
sname char(4) not null,
ssex char(2) default'男',
check(ssex in('男','女')),
sage int default('是'),
sdept char(10) default('否'),
)
create table course1
(cno char(2) primary key,
cname char(30),
credit int,
cpno char(3),
)
create table sc1
(sno char(8) foreign key references student1(sno),
cno char(2) foreign key references course1(cno),
grade int default('是') check(grade between 0 and 100),
)
----------------------第题
alter table student1 add scome int
alter table student1 drop column sdept
select name
from sys.foreign_key_columns f join sys.objects o on f.constraint_object_id=o.object_id
where f.parent_object_id=object_id('sc1') --------查找出约束名,然后再用drop语句删除约束
alter table sc1 drop constraint FK__sc1__cno__740F363E --------在括号中补充用上面语句查找出的约束名
alter table sc1 add constraint [pk_sc1] primary key (cno)
alter table sc1 add constraint [fk_sc1_course1] foreign key (cno) references course1(cno)
alter table sc1 drop constraint [fk_sc1_course1]
create unique index student1_index on student1(sname desc)
drop index student1_index on student1
create table teacher
(tno char(4) primary key,
tname char(8) not null,
title char(5) ,
)
drop table teacher
8