目录
一、实验目的
二、实验内容
三、实验原理
四、实验步骤
五、实验方法
七、实验报告要求:
八、实验过程:
1.创建数据库:
2.创建新建表
3.修改和删除
4.设置表与表之间的关联
5. 使用Transact-SQL的相关命令重复上面1至4的的操作
实验报告 |
||||||||
开课学院及实验室: |
||||||||
学 院 |
年级、专业、班 |
姓名 |
学号 |
|||||
实验课程名称 |
数据库原理与应用实验 |
成绩 |
||||||
实验项目名称 |
数据库定义实验 |
指 导 教 师 |
本实验目的是使学生掌握数据库设计的基本技术,通过学习SQL、Transact-SQL、Microsoft SQL server 管理器与查询分析器的使用方法,加深对Microsoft SQL server软件使用的与理解。熟练掌握创建和管理数据库,定义表与维护表、创建和管理索引等操作的方法。具体目标如下:
掌握Microsoft SQL server的启动与使用
掌握使用管理工具创建数据库、删除数据库
掌握用SQL语句创建数据库 、修改数据库 、删除数据库
掌握使用管理工具创建表、删除表、修改与查看表结构
掌握用SQL语句创建表 、修改表 、删除表
1、创建数据库和查看数据库属性
2. 删除数据库
3、新建表并定义表的完整性约束和索引;
4、查看和修改表结构
5. 删除表
Creat database database_name
Drop database database_name[,…n]
Creat Table <表名>(〈列名〉〈类型〉|as 〈表达式〉[〈字段约束〉][, ..]
Alter database databasename
{add file
|add log file
|remove file logical_file_name [with delete]
|modify file
|modify name=new_databasename
|add filegroup filegroup_name
|remove filegroup filegroup_name
|modify filegroup filegroup_name
{filegroup_property|name=new_filegroup_name}}
1.检查Microsoft SQL Server服务器已启动;
2. 启动管理工具软件;
3. 建立选修课数据库及相关表;
4.根据表的相关信息对表进行修改;
5. 输入相关数据;
6. 建立表的相关约束与关联
1.创建数据库
(1)在SQL Server配置管理器中启动运行SQL server,并打开Menagement Studio在数据库的目录树中新建一个数据库,并将其命名,并把数据库的保存位置改到要求的位置,具体操作如下图:
(2)在常规(General)页框中,要求用户输入数据库名称。
(3)点击数据库文件(Data Files)部分,该页框用来输入数据库文件的逻辑名称、存储位置、初始容量大小和所属文件组名称。
(4)设置事务日志文件信息。
(5)单击“确定”按钮,则开始创建新的数据库并在新建数据库的属性对话框中输入数据库名
2.创建新建表
请按下面的要求新建表,这是前一阶段设计的对象与联系,现将其转换为关系数据库中用表来表示:
学生(学号、姓名、性别、生日、系编号)
教师(教师编号,姓名,职称,性别,系编号)
课程(课程号、课程名,学分,先修课)
教室(教室编号,多媒体,座位)
系别(系编号,系名,办公楼,电话,所属学院)
表间的联系也用表来表示:
讲授(教师号,课程号)
选修(学号,课程号,成绩)
授课地(课程号,教室号)
属于(教师号,系名)
拥有(系名,学号)
(1)在表的文件夹里选择新建表,具体操作与建数据库相似:
(2)进入了一个表的设计,建立一个表的各列
(3)设置一个表的主键
(4)修改表的属性:
(5)建立表的索引
(6)设置表的约束条件
3.对上面所建的表进行修改与删除
(1)将课程表结构修改为:
课程(课程号、课程名,类别,学分,学年,学期,课程简介,先修课)
(2)删除表:
拥有(系名,学号)
属于(教师号,系名)
4.设置表与表之间的关联
使用SQL server中数据库中的关系图,可以方便地对多个表进行关联。
操作流程:
新建数据库关系图->进入关系图设置向导->建立关系图->对表间进行关联。
六、分别用在Microsoft SQL server查询分析器的使用Transact-SQL的的相关命令重复上面1至4的的操作,并记录所用的相关命令。
1.写出操作过程和结果
2.输入数据时对数据类型与约束的限制
3.分别用SQL表示建库与建表、修改表结构等操作
4.体会与提高
学生表:
教师表:
课程表:
教室表:
系别表:
讲授表:
选修表:
授课地:
属于:
拥有:
将课程表结构修改为:
课程(课程号、课程名,类别,学分,学年,学期,课程简介,先修课)
删除表:
拥有(系名,学号)
属于(教师号,系名)
使用SQL server中数据库中的关系图,可以方便地对多个表进行关联。
创建数据库:
CREATE DATABASE test2
ON
( NAME = 'test2', FILENAME = 'C:\Program Files (x86)\Microsoft SQL Server\MSSQL11.MSSQLSERVER\MSSQL\DATA\test2.mdf' , SIZE = 5120KB , FILEGROWTH = 1024KB )
LOG ON
( NAME = 'test2_log', FILENAME = 'C:\Program Files (x86)\Microsoft SQL Server\MSSQL11.MSSQLSERVER\MSSQL\DATA\test2_log.ldf' , SIZE = 1024KB , FILEGROWTH = 10%)
创建新建表:
学生表:
USE test2
GO
create table students
(sno nchar(9) not null primary key clustered check (sno like '20072000[0-9][0-9]'), --学号,主键约束
sname nchar(9) not null, --姓名,非空约束
sex nchar(3) null, --性别
birthdate date null, --年龄
xno nchar(8) null --系编号
)
教师表:
USE test2
create table teacher
(tno nchar(9) not null primary key clustered check (tno like '1234567[0-9][0-9]'), --教师编号,主键约束
tname nchar(9) not null, --姓名,非空约束
zhicheng nchar(8) not null, --职称,非空约束
sex nchar(3) null, --性别
xno nchar(8) null --系编号
)
课程表:
USE test2
create table class
(cno nchar(9) not null primary key , --课程号,主键约束
cname nchar(9) not null, --课程名,非空约束
score nchar(3) not null, --学分,非空约束
before nchar(8) null --先修课
)
教室表:
USE test2
create table classroom
(crno nchar(9) not null primary key , --教室编号,主键约束
duomeiti nchar(9) null, --多媒体
zuowei nchar(3) not null, --座位,非空约束
)
系别表:
USE test2
create table xi
(xno nchar(9) not null primary key , --系编号
xname nchar(9) null, --系名
lou nchar(3) not null, --办公楼
tel nchar(9) not null, --电话
xueyuan nchar(9) null --所属学院
)
讲授表:
USE test2
create table jiangshou
(tno nchar(9) not null,
cno nchar(9) not null,
Primary key (tno,cno),
foreign key(tno) references teacher(tno),
foreign key(cno) references class(cno)
)
选修表:
USE test2
create table xuanxiu
(sno nchar(9) not null,
cno nchar(9) not null,
grade float not null,
primary key(sno,cno),
foreign key(sno) references students(sno),
foreign key(cno) references class(cno)
)
)
授课地表:
USE test2
create table skd
(cno nchar(9) not null,
crno nchar(9) null,
Primary key (cno),
foreign key(cno) references class(cno) )
属于表:
USE test2
create table shuyu
(tno nchar(9) not null,
xname nchar(9) null,
Primary key (tno),
foreign key(tno) references teacher(tno)
)
拥有表:
USE test2
create table yongyou
(xname nchar(9) not null,
sno nchar(9) not null
)
将课程表结构修改为:课程(课程号、课程名,类别,学分,学年,学期,课程简介,先修课)。对比之前的表结构:课程(课程号、课程名,学分,先修课)
需要几个新增字段:
USE test2
alter table class
add leibie nchar(9) null
alter table class
add xyear int
alter table class
add xqi int
alter table class
add jianjie text
删除表:
拥有(系名,学号)
属于(教师号,系名)
因为不能删除有外键约束的表,所以需要先讲属于表的主键和外键删除
USE test2
alter table shuyu
DROP constraint FK__shuyu__tno__412EB0B6
alter table shuyu
drop constraint PK__shuyu__DC10824FA6FDEBB3
然后删除这两个表:
use test2
drop table shuyu/yongyou
设置两个表之间的关系:
在使用SQL语句命令创建表时就已经设置了外键,添加数据库关系图可以看到已经有关联了