SQL数据库系统实验报告含代码截图Word文档下载推荐.docx
《SQL数据库系统实验报告含代码截图Word文档下载推荐.docx》由会员分享,可在线阅读,更多相关《SQL数据库系统实验报告含代码截图Word文档下载推荐.docx(44页珍藏版)》请在冰点文库上搜索。
如图所示:
4、数据分离出来之后可以附加进去
。
即右击数据库——附加——点击添加按钮,
找到数据库文件.mdf所存放的路径,然后点击确定,即可以将我们刚所创建的文件添加回去。
五.实验总结
通过本次实验,我熟悉了SQLServer中SQLServerManagementStudio的环境,了解了SQLServer数据库的逻辑结构和物理结构,掌握使用向导创建和删除数据库的方法。
加深了对数据库的认识和理解。
实验二使用SQL语句创建和删除数据库
一.实验目的:
1.了解SQLServer2005数据库的逻辑结构和物理结构。
2.掌握使用SQL语句创建、删除和修改数据库。
二.实验要求
1.熟练使用查询分析器进行数据库的创建、删除和修改操作。
2.完成实验报告。
三.实验内容
使用SQL语句创建数据库userdb1。
1.创建数据库userdb1的SQL语句,
createdatabaseuserdb1
on
(name=userdb1_data,
filename='
g:
\xygl\userdb1.mdf'
size=5,
maxsize=10,
filegrowth=1)
logon
(name=userdb1_log,
\xygl\userdb1.ldf'
size=2,
maxsize=5,
执行上述语句建立数据库userdb1
2.根据步骤1的sql语句,写出创建实验1中数据库EDUC的sql语句,并建立数据库EDUC.
createdatabaseEDUC
(name=EDUC_data,
E:
\sql_data\EDUC.mdf'
size=10,
maxsize=50,
filegrowth=5%)
(name=EDUC_log,
\sql_data\EDUC.ldf'
3.用SQL语句删除步骤1建立的数据库userdb1。
dropdatabaseuserdb1
或者直接语句usemasterdropdatabaseuserdb1
4、在查询分析器中还可以实现对数据库的修改操作,
AlterDATABASE数据库名
{ADDFILE<
文件选项>
新增数据文件
|ADDLOGFILE<
新增数据日志文件
|REMOVEFILE逻辑文件名删除指定文件
|ADDFILEGROUP文件组名新增文件组
|REMOVEFILEGROUP文件组名删除文件组
|MODIFYFILE<
修改文件属性
|MODIFYNAME=新数据库名数据名更改
(1)、将文件名EDUC改为EDUC1
ALTERDATABASEEDUC
MODIFYNAME=EDUC1;
(2)、增加一个日志文件,文件名为EDUC_LOG,初始大小为10mb,最大为20MB,增加为1MB
ALTERDATABASEEDUC1
ADDLOGFILE
(NAME=EDUC_LOG,
FILENAME='
E:
\sql_data\EDUC_LOG.LDF'
SIZE=10MB,
MAXSIZE=20MB,
FILEGROWTH=1MB
通过本次实验,我进一步了解了数据库的逻辑结构和物理结构。
初步掌握使用SQL语句创建、删除和修改数据库。
对相关语句的应用也更加得心应手。
实验三使用SQL语句创建和删除表
1.了解表的结构特点。
2.了解SQLServer的基本数据类型。
3.学会使用T-SQL语句创建表。
1.完成SQL语句创建、修改、删除基本表。
在数据库EDUC中,创建如下几个表:
表3.1class表(班级信息表)
字段名称
类型
允许空值
主键
说明
ClsNO
Char(6)
NOTNULL
是
班号
ClsName
Varchar(16)
班名
Director
Varchar(10)
NULL
辅导员
Specialty
Varchar(30)
专业
表3.2student表(学生信息表)
Sno
Char(8)
学号
Sname
姓名
SCsex
Char
(2)
性别:
男、女
班级的编号,(外键)参照表Class
Saddr
Varchar(20)
住址
Sage
numeric(3,0)
年龄,大于10,但小于30岁
Height
Decimal(4,2)
身高
表3.3course表(课程信息表)
Cno
Char(4)
主键
Cname
课程的名称
Cpno
char(4)
先修课程的课程号(外键),参照cno
Ccredit
Tinyint
学分
表3.4sc表(学生选课成绩表)
学号,参照Student,与Cno组成主键
CNO
课程号,参照Course
grade
Numeric(4,1)
成绩
1.打开查询窗口,输入创建基本表的sql语句,点击“执行”按钮,完成表的创建。
创建class表如下:
CREATETABLEclass
(ClsNOCHAR(6)PRIMARYKEYNOTNULL,
ClsNameVARCHAR(16)NOTNULL,
DirectorVARCHAR(10)NULL,
SpecialtyVARCHAR(30)NULL
);
2.用上述方法创建其他表。
创建student表如下:
CREATETABLEstudent
(SnoCHAR(8)PRIMARYKEYNOTNULL,
SnameVARCHAR(10)NOTNULL,
SCsexCHAR
(2)check(scsex='
男'
orscsex='
女'
),
CLsNOCHAR(6)NULL,
SaddrVARCHAR(20),
SageNUMERIC(3,0)check(10<
Sageandsage<
30),
HeightDECIMAL(4,2)
FOREIGNKEY(CLsNO)REFERENCESclass(CLsNO)
创建course表如下:
CREATETABLEcourse
(CnoCHAR(4)PRIMARYKEYNOTNULL,
CnameVARCHAR(16)NOTNULL,
CpnoCHAR(4)NULL,
CcreditTINYINT,
foreignkey(Cpno)referencescno
创建SC表如下:
CREATETABLEsc
(PRIMARYKEY(sno,cno),
snochar(8)notnull,
cnochar(4)notnull,
foreignkey(Sno)referencesstudent(sno),
foreignkey(CNO)referencescourse(cno),
gradeNUMERIC(4,1)NULL
3.按照student的要求创建表student1,修改基本表student1
向student1表增加“入学时间”列s_entrance,其数据类型为日期型。
ALTERTABLEstudent1
ADDS_ENTRANCEDATETIME;
4.按照student的要求创建表student2,并将年龄的数据类型由字符型改为整数。
Altertablestudent2altercolumnsageint;
(报错:
因为sage上有check约束,删除check约束后再修改类型)
Altertablestudent2
dropCK__student2__Sage__689D8392;
5.将student2表中sage改回smallint型。
Altertablestudent2altercolumnsagesmallint;
6.删除sage后再增加新列和新的完整性约束
Altertablestudent2dropcolumnsage;
altertablestudent2addsagecharcheck(10<
sageand30>
sage);
7.按照student的要求创建Student1,然后删除Ssex完整性约束。
CREATETABLEstudent2
altertablestudent2
dropCK__student2__SCsex__76EBA2E9;
8.删除基本表student1。
droptablestudent1;
9.将以上创建表的SQL语句以.SQL文件的形式保存在磁盘上。
10、将在sudent1中新加入的列名s_entrance修改为Sentrance
exec
sp_rename
'
student1.S_entrance'
'
sentrance'
altertablestudent1
adds_entrancechar;
execsp_rename'
;
11、将student2表名改为student1
student2'
student1'
通过这次实验,我了解了SQLServer的常用数据类型,学会创建数据库的表。
掌握了SQL创建基本表的方法、SQL修改基本表的方法,以及SQL删除基本表的方法。
实验四数据更新操作
一.实验目的
1.熟悉使用UPDATE/INSERT/DELETE语句进行表操作;
2.能将这些更新操作应用于实际操作中去;
1.完成下面的实验内容,并提交实验报告;
2.在实验报告中附上相应的代码;
(1)向表(Class)中插入数据
CS01
计算机一班
张宁
计算机应用
CS02
计算机二班
王宁
MT04
数学四班
陈晨
数学
PH08
物理八班
葛格
物理
GL01
地理一班
张四
应用地理
插入数据之后使用命令:
Select*fromClass;
检查插入数据的正确性
(2)向表(Student)中插入数据
Ssex
20090101
王军
男
下关40#
20
1.76
20090102
李杰
江边路96#
22
1.72
20090306
王彤
女
中央路94#
19
1.65
19940107
吴杪
莲化小区74#
18
1.60
Select*fromStudent;
(3)向表(Course)中插入数据
Credit
0001
高等数学
Null
6
0003
计算机基础
3
0007
4
Select*fromCourse;
(4)向表(SC)中插入数据
SNO
Grade
90
86
87
76
93
85
(5)对于student表,将所有班级号为‘CS01’的,并且年龄小于20岁的学生的班级号改为‘CS02’。
(6)对于student表,删掉所有年龄不小于20岁,并且专业号为‘CS02’的学生的记录。
对于student表,插入一条新记录,它的具体信息为,学号:
********、姓名:
张三、性别:
男、年龄:
19、班级编号:
‘CS01’。
(7)对于student表,将年龄最小的学生的家庭地址去掉。
(8)对于student表,将平均年龄最小的一个班级编号改为‘GL01’
四、实验步骤:
1.向class表插入数据如下:
insert
intoclass(clsno,clsname,director,specialty)
values('
cs01'
计算机一班'
,'
张宁'
计算机应用'
cs02'
计算机二班'
王宁'
mt04'
数学四班'
陈晨'
数学'
ph08'
物理八班'
葛格'
物理'
gl01'
地理一班'
张四'
应用地理'
2.向Student表插入数据如下:
intostudent(sno,sname,scsex,clsno,saddr,sage,height)
20090101'
王军'
下关40#'
20'
1.76'
intostudent(sno,sname,scsex,clsno,saddr,sage,height)
20090102'
李杰'
江边路96#'
22'
1.72'
20090306'
王彤'
中央路94#'
19'
1.65'
19940107'
吴杪'
莲化小区74#'
18'
1.60'
3.向course表插入数据如下:
intocourse(cno,cname,cpno,ccredit)
0001'
高等数学'
null'
6'
0003'
计算机基础'
3'
0007'
4'
4.向表SC中插入数据
intosc(sno,cno,grade)
90'
86'
87'
76'
93'
85'
5.对于student表,将所有班级号为‘CS01’的,并且年龄不大于20岁的学生的班级号改为‘CS02’
updatestudent
setclsno='
whereclsno='
andsage<
20;
6.对于student表,删掉所有年龄不小于20岁,并且专业号为‘CS02’的学生的记录。
如果建表的时候没写级联删除,就在删除前先添加级联删除语句
delete
fromstudent
andsage>
=20;
20071101'
张三'
null,'
null);
7.对于student表,将年龄最小的学生的家庭地址去掉。
setsaddr='
wheresagein
(selectmin(sage)
fromstudent)
8.对于student表,将平均年龄最小的一个班级编号改为‘GL01’
wheresage<
=
(selectmin(avg(sage))
fromstudent
groupbystudent.clsno);
9、对于student表,将学号为19940107的学生的姓名该成“吴用”;
setsname='
吴用'
wheresno='