金陵科技学院实验报告
三、创建表
1、使用SQL Server Management Studio工具在MyDB数据库中创建Student和Class表。 Student表的结构为:
字段名 SNO SName Sex ClsNO StuAddr Birthday Height 类型 Char(8) Varchar(10) Char(2) Char(6) Varchar(20) SmallDate Numeric(4,2) 中文名 学号 姓名 性别 班级 住址 出生年月 身高 总学分 中文名 班号 班名 辅导员 专业 备注 主键 男、女 班级的编号,参照表Class 描述性说明 以米为单位表示学生的身高。 备注 主键 对班级的描述信息 班级的辅导员 TotalCredit Tinyint Class表的结构为: 字段名 ClsNO ClsName Director Specialty 类型 Char(6) Varchar(16) Varchar(10) Varchar(30) 2、使用T-SQL语言在MyDB数据库中创建再Course和Grade表,为以后的实验做准备。
Course表的结构为: 字段名 CNO CName PCNO Credit Grade表的结构为: 字段名 SNO CNO Scorce Credit 类型 Char(8) Char(4) 中文名 学号 课程号 备注 学号,参照Student,与CNO组成主键 课程号,参照Course 类型 Char(4) Varchar(16) char(4) Tinyint 中文名 课程号 课程名 先修课程 学分 备注 主键 课程的名称 先修课程的课程号 Numeric (4,1) 成绩 Tinyint 学分 四、自定义数据类型
(1)使用SQL Server Management Studio工具创建用户自定义数据类型:studentNo,char(8) (2)系统存储过程sp_addtype 创建用户自定义数据类型: courseNo,char(4) (3)修改MyDB数据库中的各表,学号和课程号应用自定义的数据类型。 五、修改表结构
(1)使用Alter修改Student表结构,使其增加一列Department(系别)Char(12)。 (2)使用SQL Server Management Studio工具删除刚刚增加的Department。 六、插入数据
使用SQL Server Management Studio工具或insert into语句,分别向下列表格插入数据。
2
金陵科技学院实验报告
(1)向表(Student)中插入数据 SNO 19920101 19920102 19920306 19940106 SName Sex 王军 李杰 王彤 吴杪 男 男 女 女 ClsNO StuAddr CS01 CS01 MT04 PH08 下关40# 江边路96# 中央路94# Birthday 1976.12.21 1974.5.24 1977.3.18 Height 1.76 1.72 1.65 1.60 TotalCredit 10 9 9 4 莲化小区74# 1979.4.8 插入数据之后使用命令:Select * from Student;检查插入数据的正确性 (2)向表(Class)中插入数据 ClsNO CS01 MT04 PH08 ClsName 计算机一班 数学四班 物理八班 Director 王宁 陈晨 葛格 Specialty 计算机应用 数学 物理 插入数据之后使用命令:Select * from Class; 检查插入数据的正确性 (3)向表(Course )中插入数据 CNO 0001 0003 0007 CName 数学 计算机基础 物理 PCNO Null 0001 0001 Credit 6 3 4 插入数据之后使用命令:Select * from Course; 检查插入数据的正确性 (4)向表(Grade )中插入数据 SNO 19920101 19920101 19920102 19920102 19920306 19920306 19940106 CNO 0001 0007 0001 0003 0001 0003 0007 Score 90 86 87 76 87 93 85 Credit 6 4 6 3 6 3 4 插入数据之后使用命令:Select * from Grade; 检查插入数据的正确性 七、删除表中的数据
(1)使用SQL Server Management Studio工具删除课程号为0001的选课记录。 (2)使用T-SQL语言删除Grade表中学号为19920101的数据 八、删除表格
(1)使用SQLSQL Server Management Studio工具删除Class表。 (2)使用Drop Table命令删除Grade表。
*注意在删除之前,请将数据文件拷贝一个副本,已备以后实验使用。
五、问题解答及实验结果
1.创建表
CREATE TABLE [dbo].[student](
3
金陵科技学院实验报告
[SNO] [char](8) COLLATE Chinese_PRC_CI_AS NOT NULL,
[SName] [varchar](10) COLLATE Chinese_PRC_CI_AS NOT NULL,
[Sex] [char](2) COLLATE Chinese_PRC_CI_AS NOT NULL CONSTRAINT
[DF_student_Sex] DEFAULT ('男''or''女'),
[ClsNO] [char](6) COLLATE Chinese_PRC_CI_AS NOT NULL,
[StuAddr] [varchar](20) COLLATE Chinese_PRC_CI_AS NOT NULL, [Birthday] [smalldatetime] NOT NULL, [Height] [numeric](4, 2) NOT NULL, [TotalCredit] [tinyint] NOT NULL,
CONSTRAINT [PK__student__07020F21] PRIMARY KEY CLUSTERED
CREATE TABLE [dbo].[Grade](
[SNO] [char](8) COLLATE Chinese_PRC_CI_AS NOT NULL, [CNO] [char](4) COLLATE Chinese_PRC_CI_AS NOT NULL, [Scorce] [numeric](4, 1) NOT NULL, [Credit] [tinyint] NOT NULL,
CONSTRAINT [PK_Grade] PRIMARY KEY CLUSTERED
CREATE TABLE [dbo].[Course](
[CNO] [char](4) COLLATE Chinese_PRC_CI_AS NOT NULL,
[CName] [varchar](16) COLLATE Chinese_PRC_CI_AS NOT NULL, [PCNO] [char](4) COLLATE Chinese_PRC_CI_AS NOT NULL, [Credit] [tinyint] NOT NULL,
CONSTRAINT [PK_Course] PRIMARY KEY CLUSTERED
2.插入数据
insert into Class values('CS01','计算机一班','王宁','计算机应用') insert into Class values('MT04','数学四班','陈晨','数学') insert into Class values('PH08','物理八班','葛格','物理')
insert into Student values('19920101','王军','男','CS01','下关#','1976.12.21',1.76,10)
insert into Student values('19920102','李杰','男','CS01','江边路#','1974.5.24',1.72,9)
insert into Student values('19920306','王彤','女','MT04','中央路#','1977.3.18',1.65,9)
insert into Student values('19940106','吴杪','女','PH08','莲化小区#','1979.4.8',1.60,4)
insert into Course values('0001','数学','',6)
insert into Course values('0003','计算机基础','',3) insert into Course values('0007','物理','',4)
insert into Grade values('19920101','0001',90,6) insert into Grade values('19920101','0007',86,4) insert into Grade values('19920102','0001',87,6)
4
金陵科技学院实验报告
insert into Grade values('19920102','0003',76,3) insert into Grade values('19920306','0001',87,6) insert into Grade values('19920306','0003',93,3) insert into Grade values('19940106','0007',85,4)
3.查询表
Select * from Student; Select * from Class; select * from Course; select * from Grade;
4.自定义数据类型
sp_addtype courseNo,'char(4)','NOT NULL';
5.修改表结构
alter table Student add Department Char(12);
6.删除表中数据
delete from Grade where SNO='19920101';
7.删除表格
drop table Grade;
六、实验体会和收获
通过这次实验,我学习到了Sql Server数据库的基本操作,学会了使用SQL命令添加数据内容,自定义数据结构,修改和删除表格等。在新建查询的过程中要注意先选择对应数据库,才能将数据添加到对应的表格里。
5
实验项目名称: 关系、索引和视图 实验学时: 2 同组学生姓名: 实验地点: 1316 实验日期: 2016.04.07 实验成绩: 批改教师: 王预 批改时间: 2016.04.10
一、实验目的和要求
1、理解关系图的含义及用途,掌握关系图的创建方法;
2、理解视图的基本概念、种类及利用视图修改数据时的限制,掌握视图的创建方法; 3、理解索引的基本概念及其优缺点,掌握创建索引的方法。
二、实验设备、环境
设备:奔腾Ⅳ或奔腾Ⅳ以上计算机;
环境:WINDOWS 2000 SERVER或WINDOWS 2003 SERVER、SQL Server 2005中文版。
三、实验步骤
1、根据题目要求熟悉SQL Server2005的各种管理工具; 2、分析题意,重点分析题目要求并给出解决方法;
3、按题目要求完成实际操作任务,并将相关文档资料保存在以自己学号命名的文件夹中; 4、提交完成的实验结果。
四、实验内容
1、创建关系图
根据实际情况,为MyDB数据库创建关系图。其中包括:Student、Course、Grade、Class四张表格,选择表中相应的属性建立表间的关联。 2、视图的创建、查询、修改和删除。
(1)创建一个名为V_Student的视图,以显示学生的学号、姓名、性别和出生年月等基本信息。 (2)创建一个名为V_grade的视图,以显示选修“0001”号课程的学生成绩信息,如学号、姓名、课程名称、成绩和学分等。
(3)分别利用视图V_Student和V_grade作查询和更新操作。
(4)修改V_Student视图的定义,为其增加一个条件,使得该视图只显示“CS01”班学生的基本信息。 (5)删除名为V_Student的视图。 3、索引的创建、查看和删除。
(1)为Student表创建一个基于总学分和学号的索引idex_total_xh,其中总学分按降序排列,当总学分相同时,按学号升序排列,填充因子为80%。
(2)学生表创建一个基于班级和姓名的索引idex_clas_name,其中按班号按升序、学生姓名按降序排列,填充因子为70%。
(3)利用索引管理器查看索引。
(4)删除索引idex_total_xh。再利用索引管理器查看索引。