数据库的创建与管理

实验一 数据库的创建及管理

一、实验学时

2学时

二、实验目的

(1)掌握SQL Server的安装方法。
(2)掌握SQL Server服务器工具的使用方法。
(3)灵活运用SQL Server数据库的创建方法。
(4)掌握表的创建方法。
(5)掌握修改表结构的方法。
(6)掌握添加、修改、删除表数据的方法。

三、实验要求

(1)硬件设备:奔腾II或奔腾II以上计算机,局域网。
(2)软件环境:WINDOWS 9X/NT、WINDOWS SERVER、WINDOWS XP、WINDOWS 7、SQL SERVER 2000/2005/2008中文版企业版或标准版。
(3)实验课前预习,课后及时完成实验内容。
(4)实验过程及记录按题目格式要求填写代码清单。

四、实验内容

(一)数据库的创建
1.在企业管理器中创建数据库
创建一个名称为学生课程Stu_Course数据库。数据文件的逻辑文件名为“Stu_Course_data”,磁盘文件名为“Stu_Course_data.mdf”,初始大小设为3MB,文件增长增量设为10%,文件增长方式设为自动增长,文件的增长上限设为10MB;事务日志文件的逻辑文件名为“Stu_Course_log”,磁盘文件名为“Stu_Course_log.ldf”,初始大小为1MB,文件增长增量设为1MB,文件的增长限制设为5MB。
具体创建步骤记录如下:

2.用T-SQL语言创建数据库
(1)创建数据库Stu_Course1的具体参数如下:
参数名称 参考参数
数据库名称 Stu_Course1
数据逻辑文件名称
数据物理文件名称
数据文件初始大小
数据文件大小最大值
数据文件增长增量 Stu_Course1_data
Stu_Course1_data.mdf
3MB
10MB
10%
日志逻辑文件名称
日志物理文件名称
日志文件初始大小
日志文件大小最大值
日志文件增长增量 Stu_Course1_log
Stu_Course1_log.ldf
1MB
5MB
1MB
在新建查询命令窗口中输入如下所示的创建数据库的T-SQL语句:
CREATE DATABASE Stu_Course1 ON
(
NAME = ‘Stu_Course1_data’,
FILENAME = ‘E:\Program Files (x86)\sql\MSSQL10_50.MSSQLSERVER\MSSQL\DATA\Stu_Course1_data.mdf’,
SIZE = 3MB,
MAXSIZE = 10MB,
FILEGROWTH = 10%
)
LOG ON
(
NAME = ‘Stu_Course1_log’,
FILENAME = ‘E:\Program Files (x86)\sql\MSSQL10_50.MSSQLSERVER\MSSQL\DATA\Stu_Course1_log.ldf’,
SIZE = 1MB,
MAXSIZE = 5MB,
FILEGROWTH = 1MB
)

(2)查看、验证创建的数据库
方法1:执行sp_helpdb系统存储过程查看Stu_Course数据库的信息。
命令:sp_helpdb Stu_Course

方法2:在企业管理器中查看。
具体操作方法:

3.修改数据库的属性
创建完一个数据库后,可以用企业管理器和T-SQL语句查看数据库,修改数据库属性,改变数据库大小。
(1)用企业管理器修改数据库属性
将数据库Stu_Course1数据文件的最大值改为30MB,数据增长改为5%,日志文件的初始大小改为2MB,最大值改为10MB,数据增长改为10%。
操作步骤记录如下:

(2)用T-SQL语句修改数据库的属性
用T-SQL语言可以全面管理数据库。
1)修改Stu_Course1_log日志文件的最大值。
将Stu_Course1日志文件的最大值由10MB更改为20MB,T-SQL语句:
alter database Stu_Course1
modify file
(
name = ‘Stu_Course1_log’,
maxsize = 20mb
)
2)修改Stu_Course1_log日志文件的初始值。
将Stu_Course1日志文件的初始值由2MB更改为10MB,T-SQL语句:
alter database Stu_Course1
modify file
(
name = ‘Stu_Course1_log’,
size = 10mb
)
3)将数据库Stu_Course1数据文件的初始大小改为30MB,最大值改为300MB,数据增长改为10%。
用T-SQL语句:
alter database Stu_Course1
modify file
(
name = ‘Stu_Course1_data’,
size = 30mb,
maxsize = 300mb,
filegrowth = 10%
)
4.数据库的更名及删除
(1)使用企业管理器进行Stu_Course1数据库的更名及删除
1)将Stu_Course1数据库更名为Stu_Course2。(提示:使用分离数据及附加数据,再加入时更名即可)。
操作步骤:

2)数据库删除。
操作步骤:

(2)使用T-SQL语句进行数据库的更名及删除
1)将数据库Stu_Course更名为Stu_Course2。
T-SQL命令为(提示:存储过程sp_renamedb或用alter database命令):
exec sp_renamedb @dbname=‘Stu_Course’,
@newname = ‘Stu_Course2’

2)删除数据库Stu_Course2。
DROP DATABASE Stu_Course2

(二)表数据的操作
1.在数据库Stu_Course中创建表
(1)使用企业管理器创建Student表
Student表结构及其约束为:
表1-1 Student表结构和约束
列名 数据类型 宽度 允许空值 缺省值 主键 说明
Sno char 9 否 是 学号
Sname char 20 是 姓名
Ssex char 2 是 性别
Sage smallint 是 年龄
Sdept char 20 是 所在系
操作步骤如下:

(2)使用T-SQL语句创建表
1)创建Course表
Course表结构及其约束为:
表1-2 Course表结构和约束
列名 数据类型 宽度 允许空值 缺省值 主键 外键 说明
Cno char 4 否 是 课程号
Cname char 40 是 课程名
Cpno char 4 是 是 先行课
Ccredit smallint 是 学分
创建Course表T-SQL语句如下:
create table Course
(
Cno char(4) not null primary key,
Cname char(40),
Cpno char(4),
Ccredit smallint,
foreign key(Cpno) references Course(Cno)
)
2)创建表SC表
SC表结构及其约束为:
表1-3 SC表结构和约束
列名 数据类型 宽度 允许空值 缺省值 主键 外键 说明
Sno char 9 否 是 是 学号
Cno char 4 否 是 是 课程号
Grade smallint 是 成绩
其中成绩为百分制。
创建SC表T-SQL语句如下:
create table SC
(
Sno char(9) not null,
Cno char(4) not null,
Crade smallint,
primary key(Sno,Cno),
foreign key(Sno) references Student(Sno),
foreign key(Cno) references Course(Cno)
)
2.管理表
(1)添加和删除列
给Course表增加一列,字段名为Ctype(课程类型),类型为char,长度为10,允许为空值。
1)使用企业管理器进行。
操作步骤如下:

插入该列后,在企业管理器中删除该列的操作步骤。

2)使用T-SQL语句进行。
添加Ctype字段的T-SQL语句。
alter table Course
add Ctype char(10) null
删除Ctype字段的T-SQL语句。
alter table Course
drop column ctype
(2)表的重命名及删除
1)使用企业管理器重命名及删除表。
重命名操作步骤:
(如将Course表重命名为Course1表)

删除Course1表的操作步骤:

2)使用T-SQL语句实现
在查询命令窗口中,将已保存的Course.sql打开,运行重建Course表。
重命名Course表为Course1表的T-SQL语句。(提示:用存储过程sp_rename)
exec sp_rename ‘Course’,‘Course1’

删除Course1表的T-SQL语句。
drop table SC
drop table Course1

3.对表添加、修改、删除数据
(1)插入数据简单操作
1)使用企业管理器向Student表中插入数据。
表1-4 Student表
Sno Sname Ssex Sage Sdept
200215121 李勇 男 20 CS
200215122 刘晨 女 19 CS
200215123 王敏 女 18 MA
200215125 张立 男 19 IS
200215126 张红 女 19 CS
操作步骤:

其它数据可自行添加。
2)使用T-SQL语句向Course表中插入数据。
表1-5 Course表
Cno Cname Cpno Ccredit
1 数据库 5 4
2 数学 2
3 信息系统 1 4
4 操作系统 6 3
5 数据结构 7 4
6 数据处理 2
7 PASCAL语言 6 4
在查询命令窗口中,将已保存的Course.sql打开,运行重建Course表。
T-SQL命令为:
insert into Course (Cno,Cname,Ccredit)
values(‘6’,‘数据处理’,‘2’)
insert into Course (Cno,Cname,Ccredit)
values(‘2’,‘数学’,‘2’)
insert into Course
values(‘4’,‘操作系统’,‘6’,‘3’)
insert into Course
values(‘7’,‘PASCAL语言’,‘6’,‘4’)
insert into Course
values(‘5’,‘数据结构’,‘7’,‘4’)
insert into Course
values(‘1’,‘数据库’,‘5’,‘4’)
insert into Course
values(‘3’,‘信息系统’,‘1’,‘4’)

其它数据可自行添加。
3)使用T-SQL语句向SC表中插入数据。
表1-6 SC表
Sno Cno Grade
200215121 1 92
200215121 2 85
200215121 3 88
200215122 2 90
200215122 3 80
T-SQL命令为:(保存为insert_SC.sql已备后用)。其它数据可自行添加。
insert into SC values(‘200215121’,‘1’,92)
insert into SC values (‘200215121’,‘2’,85)
insert into SC values (‘200215121’,‘3’,88)
insert into SC values (‘200215122’,‘2’,90)
insert into SC values (‘200215122’,‘3’,80)
(完成以上操作后,请将Stu_Course数据库备份,得到Stu_Course.bak备份文件,保存起来以备后面实验用)
(2)修改数据简单操作。
1)在企业管理器中,将Student表中的学号为“200215125”的同学的姓名改为“李双”。
操作步骤:

2)使用T-SQL语句,将Course表中的课程号为“2”的学分改为4。
T-SQL语句为:
update Course
set Ccredit =4
where Cno = ‘2’

3)使用T-SQL语句,将SC表中的选修了“2”课程的同学的成绩80%。
T-SQL语句为:
update SC
set Grade=Grade
0.8
where Cno = ‘2’

(3)删除数据简单操作(请注意约束的限制)
1)假设学号为“200215123”的同学已离开学校,则需要删除该记录,请在企业管理器中将Student表中将该记录删除。
操作步骤:

2)删除选修了“信息系统”的学生的记录。
T-SQL语句:
delete
from SC
where Cno in
(
select Cno
from Course
where Cname=‘信息系统’
)

3)使用T-SQL语句,删除所有的学生选课记录。
T-SQL语句:
delete
from SC

4.复制表中的数据创建新表
(1)将Student表中的数据复制到一个新表Student1中。
T-SQL语句:
select *into Student1 from Student

(2)新建库XUE,将Stu_Course库中的Student表中的数据复制到XUE库中,名称仍为Student。
T-SQL语句:
create database XUE
select *
into XUE.dbo.Student
from Stu_Course1.dbo.Student

(3)复制Stu_Course库中SC表与XUE库中的Student表的部分内容,以创建一新表Student2,其内容包括学生的学号、姓名、课程名、成绩。
T-SQL语句:
select XUE.dbo.Student.Sno 学号,XUE.dbo.Student.Sname 姓名,
Stu_Course1.dbo.Course.Cname 课程名,Stu_Course1.dbo.SC.Grade 成绩
into Stu_Course1.dbo.Student2
from Stu_Course1.dbo.SC,Stu_Course1.dbo.Course,XUE.dbo.Student
where Stu_Course1.dbo.SC.Sno=XUE.dbo.Student.Sno and
Stu_Course1.dbo.SC.Cno=Stu_Course1.dbo.Course.Cno
附录1 SQL标识符说明
SQL标识符是由用户定义的SQL Server可识别的有特定意义的字符序列。
用户定义SQL标识符时必须遵循以下规则:
(1) 标识符的长度为1~128个字符。在SQL Server 7.0之前的版本则限制在30个字符内。
(2) 可以使用的字符包括字母、数字、#、$、@和下划线“”。
(3) 标识符的第一个字符必须是字母、下划线“
”、@和#。当标识符以@和#开始时具有特殊的含义。
(4) 一般标识符不能包含空格,也不能使用SQL的关键字。
(5) 中文版的SQL Server可以使用汉字作为标识符。
(6) 如果不能遵守上述规则中的一条,那么标识符便看成是一个分隔标识符放在双引号("")或中括号([])里面,而且此时QUOTED_IDENTIFIER被设置为ON才可以。
SQL标识符通常用来表示服务器名、数据库名、表名、常量、变量和其他数据库对象名,比如视图、函数和存储过程等。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值