一、实验目的
1、熟悉数据库管理软件的使用。
2、熟练掌握数据库的创建、修改和删除语句。
3、掌握表的创建、修改和删除语句。
二、实验内容
给定如表3.6、表3.7和表3.8所示的学生信息。
表3.6 学生表(Student)
学号 |
姓名 |
性别 |
专业班级 |
出生日期 |
联系电话 |
0433 |
张艳 |
女 |
生物04 |
1986-9-13 |
|
0496 |
李越 |
男 |
电子04 |
1984-2-23 |
13812901234 |
0529 |
赵欣 |
男 |
会计05 |
1984-1-27 |
13502221234 |
0531 |
张志国 |
男 |
生物05 |
1986-9-10 |
13312561234 |
0538 |
于兰兰 |
女 |
生物05 |
1984-2-20 |
13312001234 |
0591 |
王丽丽 |
女 |
电子05 |
1984-3-20 |
13320801234 |
0592 |
王海强 |
男 |
电子05 |
1986-11-1 |
表3.7 课程表(Course)
课程号 |
课程名 |
学分数 |
学时数 |
任课教师 |
K001 |
计算机图形学 |
2.5 |
40 |
胡晶晶 |
K002 |
计算机应用基础 |
3 |
48 |
任泉 |
K006 |
数据结构 |
4 |
64 |
马跃先 |
M001 |
政治经济学 |
4 |
64 |
孔繁新 |
S001 |
高等数学 |
3 |
48 |
赵晓尘 |
表3.8 学生作业表(Score)
课程号 |
学号 |
作业1成绩 |
作业2成绩 |
作业3成绩 |
K001 |
0433 |
60 |
75 |
75 |
K001 |
0529 |
70 |
70 |
60 |
K001 |
0531 |
70 |
80 |
80 |
K001 |
0591 |
80 |
90 |
90 |
K002 |
0496 |
80 |
80 |
90 |
K002 |
0529 |
70 |
70 |
85 |
K002 |
0531 |
80 |
80 |
80 |
K002 |
0538 |
65 |
75 |
85 |
K002 |
0592 |
75 |
85 |
85 |
K006 |
0531 |
80 |
80 |
90 |
K006 |
0591 |
80 |
80 |
80 |
M001 |
0496 |
70 |
70 |
80 |
M001 |
0591 |
65 |
75 |
75 |
S001 |
0531 |
80 |
80 |
80 |
S001 |
0538 |
60 |
80 |
1、用SQL命令创建一个学生作业管理数据库Homework,数据文件的逻辑名称为Homework_Data,数据文件存放在D盘根目录下,文件名为HomeworkData.mdf,数据文件的初始存储空间大小为10MB,最大存储空间为500MB,存储空间自动增长量为10MB;日志文件的逻辑名称为Homework_Log,日志文件物理地存放在D盘根目录下,文件名为HomeworkData.ldf,初始存储空间大小为5MB,最大存储空间为500MB,存储空间自动增长量为5MB。
1. CREATE DATABASE Homework 2. ON 3. (NAME=Homework_Data, 4. FILENAME='D:\HomeworkData.mdf', 5. SIZE=10, 6. MAXSIZE=500, 7. FILEGROWTH=10) 8. LOG ON 9. (NAME=Homework_Log, 10. FILENAME='D:\HomeworkData.ldf', 11. SIZE=5, 12. MAXSIZE=500, 13. FILEGROWTH=5)
2、用SQL命令修改数据库Homework,添加一个次要数据文件,逻辑名称为Homework_Datanew,存放在D盘根目录下,文件名为Homework_Datanew.ndf。数据文件的初始大小为100MB,最大容量为200MB,文件自动增长容量为10MB。
1. ALTER DATABASE Homework 2. ADD FILE 3. (NAME=Homework_Datanew, 4. FILENAME='D:\Homework_Datanew.ndf', 5. SIZE=100, 6. MAXSIZE=200, 7. FILEGROWTH=10)
3、对表3.6,表3.7和表3.8,分别以下表的方式给出各字段的属性定义和说明。
字段名 |
数据类型 |
长度或者精度 |
默认值 |
完整性约束 |
说明 |
…… |
…… |
…… |
…… |
||
…… |
…… |
…… |
…… |
3、表3.6学生表
字段名 |
数据类型 |
长度或者精度 |
默认值 |
完整性约束 |
说明 |
sno |
char |
4 |
Primary key Not null |
学号 |
|
sname |
varchar |
20 |
Not null |
姓名 |
|
ssex |
char |
2 |
Check(‘男’,’女’) Not null |
性别 |
|
major |
Varchar |
30 |
Not null |
专业班级 |
|
birth |
date |
null |
出生日期 |
||
phone |
char |
11 |
null |
联系电话 |
表3.7课程表
字段名 |
数据类型 |
长度或者精度 |
默认值 |
完整性约束 |
说明 |
cno |
char |
4 |
Primary key Not null |
课程号 |
|
cname |
varchar |
30 |
Not null |
课程名 |
|
credit |
numeric |
(3,1) |
Not null |
学分数 |
|
xtime |
numeric |
(4,1) |
Not null |
学时数 |
|
tname |
varchar |
20 |
null |
任课教师 |
表3.8学生作业表
字段名 |
数据类型 |
长度或者精度 |
默认值 |
完整性约束 |
说明 |
cno |
char |
4 |
Primary key Foreign key Not null |
课程号 |
|
sno |
char |
4 |
Primary key Foreign key Not null |
学号 |
|
Cj1 |
numeric |
(4,1) |
null |
作业1成绩 |
|
Cj2 |
numeric |
(4,1) |
null |
作业2成绩 |
|
Cj3 |
numeric |
(4,1) |
null |
作业3成绩 |
4、使用SQL命令在学生作业管理数据库中建立学生表、课程表和学生作业表。
1. 创建学生表(Student) 2. Create table student 3. (sno char(4) not null primary key, 4. Sname varchar(20) not null, 5. Ssex char(2) not null check(ssex in('男','女')), 6. Major varchar(30) not null, 7. Birth date null, 8. Phone char(11) null)
1. 创建课程表(Course) 2. Create table course 3. (cno char(4) not null primary key, 4. Cname varchar(30) not null, 5. Credit numeric(3,1) not null, 6. Stime numeric(4,1) not null, 7. Tname varchar(20) null)
1. 创建学生作业表(Score) 2. Create table score 3. (cno char(4) not null, 4. Sno char(4) not null, 5. Cj1 numeric(4,1) null, 6. Cj2 numeric(4,1) null, 7. Cj3 numeric(4,1) null, 8. Primary key(cno,sno), 9. Foreign key(cno) references course(cno), 10. Foreign key(sno) references student(sno)) 11. 5、alter table student 12. Add address nvarchar(20)
5、在学生表中增加一个住址列,列名为address,数据类型为nvarchar(20)。
1. ALTER TABLE 学生表 2. ADD 3. Address NVARCHAR(20)
三、实验指导
1、启动SQL Server2012软件。
2、SQL Server中,程序不区别大小写,特别要注意程序中的标点符号,一定要在英文半角状态下输入,否则会出错。
3、在创建表时,使用字符串类型时应遵循以下原则:
(1)从速度方面考虑,要选择固定的列,可以使用char类型。
(2)要节省空间,使用动态的列,可以使用varchar类型。
(3)如果要搜索的内容不区分大小写且内容较多,可以使用text类型。
在创建表时,使用哪种数字类型,应遵循以下原则:
(1)选择最小的可用类型,如果值永远不超过255,则使用tinyint比int强。
(2)对于完全都是数字的,可以选择整数类型。
(3)浮点类型用于可能具有小数部分的数。例如货物单价、网上购物交付金额等。
设置表的主键约束和外键约束,以保证数据的完整性,应选择能够唯一标识一行记录的列或列的组合作为表的主键,外键首先是另一个表的主键,在该表中才能给它设置成外键。