数据库实验报告.docx
《数据库实验报告.docx》由会员分享,可在线阅读,更多相关《数据库实验报告.docx(35页珍藏版)》请在冰豆网上搜索。
数据库实验报告
实验三:
创建数据表和修改数据表
实验内容:
用SQL语句创建数据表和修改数据表
实验步骤:
首先创建一个数据库,命名为stu。
在查询中写下SQL语句
新建成功后的效果图
利用alter语句修改表
altertablestudent1addsexchar(4)
向表中添加新的字段(列)性别
效果图效果图如下,注意最右边多了一列性别项
删除表中的math字段
altertablestudent1dropcolumnmath
效果图(注意表中没有math列了)
实验四:
使用语句添加,删除和修改记录
【实验目的】
(1)掌握使用INSERT语句添加记录。
(2)掌握使用UPDATE语句修改记录。
(3)掌握使用DELETE语句删除记录。
实验步骤:
数据库和数据表在实验三的基础上进行
Insert插入查询
insertintostudent1
values('2001','s1',85,89,'女')
重复插入多个记录之后
Update修改数据
updatestudent1
setchinese=chinese-10把每个人的chinese成绩减去10分
结果图可以看出,明显chinese分数比前面的图中都少了10分
updatestudent1
setenglish=100
wheresno=2009
把sno=2009的english成绩改为满分
Delete删除数据操作
deletefromstudent1
wheresno=2006
删除记录中sno=2006的记录
实验五:
创建视图
【实验目的】
(1)理解视图的概念。
(2)掌握使用企业管理器创建视图。
(3)掌握使用Transact-SQL语句创建视图。
用createview语句创建视图
createviewis_student
asselect*
fromstudent1
wheresno>2005
创建的视图表
实验六:
查询和汇总数据库的数据
【实验目的】
(1)掌握SELECT语句的基本语法和用法。
(2)学会用聚合函数计算统计检索结果。
(3)掌握使用GROUPBY子句进行分组统计。
(4)掌握使用HAVING子句对分组结果进行筛选。
实验步骤
Select语句查询,查询性别都是男的所有信息
select*
fromstudent1
wheresex='男'
使用聚合函数查询
selectcount(*)
fromstudent1查询学生总数
selectavg(chinese)
fromstudent1查询所有学生chinese的平均成绩,结果为82分
selectmax(english)
fromstudent1查询英语成绩最高的分数
使用GROUPBY子句进行分组统计。
selectsno
fromstudent1
orderbysnodesc
selectCno,Count(Sno)
fromSC
groupbyCno
使用HAVING子句对分组结果进行筛选
selectSno
fromSC
GroupbySno
havingcount(*)>2
实验7 在查询中使用Transact-SQL函数
【实验目的】
1了解Transact-SQL函数。
2掌握常用的Transact-SQL函数。
3在查询中灵活应用Transact-SQL函数。
【实验内容和步骤】
select*
fromstudent1
wheresnolike'%008'
select*
fromstudent1
wheresnamelike'%s%'
结果如图所示
select*
fromstudent1
wheresnamelike'%2%'
如图
select*
fromstudent1
whereenglishlike'%8%'如图所示
实验8 创建和使用索引
【实验目的】
(1)了解索引的作用。
(2)学会使用企业管理器创建索引。
(4)学会使用SQL语句创建索引。
(4)学会创建唯一、聚集、非聚集、复合索引。
【实验内容和步骤】
建立索引
Createindexst
onstudent1(sno)
创建一个唯一、非聚集索引
唯一所以
Createuniqueindexst
onstudent1(sno)
删除索引
dropindexst
实验9 创建并使用约束及实现数据完整性
【实验目的】
(1)认识数据完整性的重要性。
(2)熟悉SQLServer提供的4种数据完整性机制。
(3)掌握使用企业管理器创建约束。
(4)学会创建和使用CHECK约束实现数据完整性。
一、使用企业管理方式建立约束
点击表达式右边的编辑框
输入公式即可如对性别的限制表达式为
([Ssex]='男'OR[Ssex]='女')
可通过选择添加和删除来进行添加约束和删除约束
二、使用语句创建约束
约束条件前面建表是已经完成
点击鼠标右键选择新建约束
代码如下
usestudents
createtableStudent
(
Snochar(10)primarykey,
Snamechar(8)unique,
Ssexchar
(2)check(Ssex='男'orSsex='女'),
Sagesmallint,
Sdeptchar(20)
)
实验10 创建和使用存储过程
【实验目的】
(1)理解存储过程的概念、作用。
(2)掌握使用企业管理器和SQL语句创建存储过程。
(3)学会执行存储过程。
(4)掌握用户自定义存储过程操作数据。
【实验内容和步骤】
使用企业管理器和SQL语句创建存储过程。
createprocedureone
as
begin
select*fromstudent1wheresex='男'
end
一、使用企业管理器创建存储过程
点击右键选择新建存储过程
通过编辑即可
二、使用语句创建存储过程
1、创建loving的存储过程
CREATEPROCEDUREloving
AS
BEGIN
SELECT*fromstudentwheressex='女'
END
2、用exec创建loving的存储过
Execloving
3、创建lovin1的存储过程
CREATEPROCEDUREloving1
as
BEGIN
SELECT*fromstudent
end
4、CREATEPROCEDUREpr1_sc_ins
@Param1char(10),@Param2char
(2),@Param3real
AS
BEGIN
insertintosc(sno,cno,Greade)values(@Param1,@Param2,@Param3)
END
5、CREATEPROCEDUREs_gerade
@snamechar(8),@sgraderealoutput
AS
SELECT@sgrade=greadefromscjoinstudentonstudent.sno=sc.sno
wheresname=@sname
6、DECLARE@sgradereal
EXECs_gerade
@sname='敖爽',
@sgrade=@sgradeOUTPUT
7、查看存储过程
EXECsp_helptextloving
EXECsp_dependsloving
EXECsp_helploving
执行存储过程
实验11 创建触发器
【实验目的】
(1)认识和理解触发器的概念、类型、功能。
(2)掌握使用企业管理器创建触发器。
(3)掌握使用SQL语句创建触发器。
【实验内容和步骤】
一、用企业管理方式创建触发器
1、单击右键选择新建触发器
2、在对应地方加上语句即可创建触发器
二、使用语句创建触发器
1、创建DML触发器
CREATETRIGGERtr1
ONsc
FORINSERT,UPDATE,DELETE
AS
PRINT'inserted表:
'
Select*frominserted
PRINT'deleted表:
'
Select*fromdeleted
2、先插入学号为003的1号课程成绩为89,在更新成绩
insertintoscvalues('003','1',89)
updatescsetgreade=78wheresno='003'
3、创建一个获取更新信息的触发器
CREATETRIGGERtr_s1
ONstudent
FORINSERT,UPDATE
AS
Begin
DECLARE@bhvarchar(6)
SELECT@bh=inserted.snoFROMinserted
Select@bh
End
执行语句
insertinto
student(sno)values('006')
4、限定范围
CREATETRIGGERsc_insupd
ONsc
FORINSERT,UPDATE
AS
DECLARE@cjint
SELECT@cj=inserted.gradefrominserted
IF(@cj<0or@cj>100)
BEGIN
RAISERROR('成绩的取值必须在到之间',16,1)
ROLLBACKTRANSACTION
END
insertintoscvalues('006','2',109)
5、为删除创建触发器
CREATETRIGGERtr_del_s
ONstudent
FORDELETE
as
BEGIN
DECLARE@bhchar(5)
Select@bh=deleted.snofromdeleted
Deletescwheresno=@bh
END
执行命令
deletefromstudent
wheresno='006'
6、DDL触发器
CREATETRIGGERsafety
ONDATABASE
FORCREATE_TABLE
AS
PRINT'CREATETABLEIssued.'
SELECTEVENTDATA().value('(/EVENT_INSTANCE/TSQLCommand/CommandText)[1]','nvarchar(max)')
RAISERROR('Newtablescannotbecreatedinthisdatabase.',16,1)
执行命令
createtables(snochar(9))
实验13 SQLServer身份验证
【实验目的】
(1)理解SQLServer2005身份验证模式。
(2)掌握配置SQLServer身份验证模式的方法。
(3)学会创建和管理登录账户。
【实验内容和步骤】
SQLServer身份验证模式
输入自己安装时候设置的用户名和密码后,单击连接即可连接到数据库
效果图
Window身份模式
单击左上角pc。
。
。
。
单击右键,点属性
点击安全性
1、新建登录名
单击右键选新建登录名
单击安全性,新建用户名
一下步骤就很简单了省
通过添加计科添加角色
、用语句添加
CREATEROLER1
CREATEROLER2
CREATEROLER3
28、权限修改
grantselectonstudenttoR1
grantdeleteonstudenttoR2
grantinsertonstudenttoR3
withgrantoption
29、收回权限
revokedeleteonstudentfromR2