SQL-Server实验
答案
上海师范大学 计算机系
SQL-Server实验讲义
目 录
第一部分 企业管理器的使用 ......................................................................................................... 3
试验一 注册服务器 ............................................................................... 错误!未定义书签。 试验二 创建数据库 ............................................................................... 错误!未定义书签。 试验三 创建表 ....................................................................................... 错误!未定义书签。 实验四 数据输入 ................................................................................... 错误!未定义书签。 实验五 登录到数据库服务器 ............................................................... 错误!未定义书签。 第二部分 SQL语言 ........................................................................................................................ 3 第二部分 SQL语言 ........................................................................................................................ 3
试验一 数据库创建 ................................................................................................................. 3 试验二 创建表 ......................................................................................................................... 3 试验三 创建数据完整性 ......................................................................................................... 5 试验四 数据完整性试验 ......................................................................................................... 6 试验五 索引 ........................................................................................................................... 10 试验六 更新数据 ................................................................................................................... 11 试验七 Sql 查询语句 ........................................................................................................... 12 试验八 视图 ........................................................................................................................... 15 试验九 安全性控制实验 ....................................................................................................... 16 试验十 存储过程 ................................................................................................................... 17 试验十二 触发器 ................................................................................................................... 21 试验十二 恢复技术 ............................................................................................................... 25 试验十三 事务 ....................................................................................................................... 26 试验十四 锁 ........................................................................................................................... 27
2
SQL-Server实验讲义
第一部分 企业管理器的使用
第二部分 SQL语言
试验一 数据库创建
目的:1掌握利用SQL语言进行数据库的创建、维护。
2 sp_helpdb 命令
要求:1 创建数据库 2 修改数据库 3 删除数据库
一 建立school 数据库
1 使用查询分析器创建数据库 school Create DataBase school
2 使用 SP_helpdb 查询数据库 School 的信息
3 使用SQL-Server 的企业管理器查看数据库 school 的信息。 4 记录:
1)school 数据库文件所在的文件夹。 2)school 数据库的文件名
二 删除School数据库
1 使用查询分析器删除数据库 school DROP DATABASE school
2 使用SQL-Server 的企业管理器删除数据库 school 。
三 create Database 深入研究
1 建立school数据库,要求数据库存储在c:\\data文件夹下,初始大小为5MB ,增量为 1MB。 CREATE DATABASE school ON( Name = ‘school_dat’,
Filename = 'c:\\sqldata\\school.mdf', SIZE = 5,
FILEGROWTH = 1 )
2使用SQL-Server 的企业管理器,将数据库的每次增量改为20%。
试验二 创建表
目的:1 掌握利用SQL语言创建表的方法。
2 sp_help 命令
要求:1 创建表 2 修改表结构 3 删除表
一 写出使用 Create Table 语句创建表 student , sc,course 的SQL语句。
学生表、课程表、选课表属于数据库 School ,其各自得数据结构如下: 学生 Student (Sno,Sname,Ssex,Sage,Sdept)
序号 列名 含义 数据类型 长度 1 Sno 6 学号 字符型(char) 2 Sname 8 姓名 字符型(varchar) 3
SQL-Server实验讲义
3 4 5 Ssex Sage sdept 性别 年龄 系科 字符型(char) 整数 (smallint) 字符型(varchar) 2 15
课程表 course(Cno,Cname,Cpno,Ccredit)
序号 列名 含义 1 Cno 课程号 2 cname 课程名 3 Cpno 先修课 4 Ccredit 学分 学生选课 SC(Sno,Cno,Grade)
序号 列名 含义 1 Sno 学号 2 Cno 课程名 3 Grade 成绩
数据类型 字符型(char) 字符型(varchar) 字符型(char) 短整数 (tinyint) 长度 4 20 4 数据类型 字符型(char) 字符型(char) 小数(decimal) 长度 4 6 12,1 二 把创建表的sql 语句的脚本存储到文件 school.sql 。
create table Student ( Sno char(6) , Sname char(10) , Ssex char(2) , Sage smallint , Sdept char(10) , )
create table course( Cno char(4) , Cname char(16) , Cpno char(4) , Ccredit int, )
create table SC( Sno char(6), Cno char(4) , Grade int )
三 使用 SP_HELP 查看表 student 的表结构 利用企业管理器查看表 sc 的表结构 四 利用 sql 语句表结构修改
1 在student 表中添加列:
家庭地址 address 长度为 60 varchar 型 入学日期 inDate 日期型
ALTER TABLE student ADD address varchar(60) ALTER TABLE student ADD inDate datetime
完成后用sp_help 查看是否成功。
2 将家庭地址 address 长度为 50
4
SQL-Server实验讲义
ALTER TABLE student ALTER COLUMN varchar(50)
完成后用sp_help 查看是否成功。
3 删除 student 表的 inDate 列
ALTER TABLE student DROP COLUMN inDate
五 删除表
1 删除表 sc
2 删除表 student 3 删除表 course
试验三 创建数据完整性
目的:1掌握创建数据完整性约束的命令。
2 掌握完整性约束的修改、删除。
要求:1 能建立完整性约束 2 修改完整性约束 3 删除完整性约束
一 写出带有完整性约束的 Create Table 命令建立表student、course、sc 。要求:
1 Student表的主码:sno student 的约束:
? 姓名不可为空,且唯一
? 性别 不能为空且取值范围为{男,女} ? 年龄大于16岁
? sdept 默认为 ?JSJ? 系
2Course表的主码:cno course 的约束:
? Ccredit 取值范围{ 0 ,1,2,3,4,5 }
? 课程表的每一行的 Cno 与 cpno 不可相同
3 Sc表的主码:sno,cno 。主码名为 PK_SC
Sc的外码:
? 外码:SC 表的sno 参照表 student 的 sno ? 外码:sc 表的Cno 参照表 course 的 cno
4 把上述创建表的sql 语句的脚本存储到文件 createSchool.sql 。 create table Student ( Sno char(6) ,
Sname char(10) not null unique ,
Ssex char(2) check (ssex='男' or ssex='女') , Sage smallint check(sage>16) ,
Sdept char(10) not null default 'JSJ' ,
primary key (sno) )
create table course( Cno char(4) , Cname char(16) ,
5