数据库实验报告(实验五)
数据库原理_实验五指导书
数据库原理
实验指导书
实验五SQL Server 2000中数据库安全性设置
1. 实验的目的
1)熟悉通过SQL对数据进行安全性控制。
2)完成作业的上机练习。
2. 实验内容
要求:在SQLSERVER2000中利用SQL语句完成以下操作。
1)通过SQL对登入账号,用户的创建修改与删除。
2)通过SQL对角色管理,以及角色中添加用户。
3)对角色和用户数据的授权和权力回收
3. 实验步骤
1)复制生成xscj数据库的代码并运行。
2)创建登入账号和用户名s1,s2,t1,t2,l1,l2密码与账号相同默认登入访问xscj数据库。
3)创建角色student,teacher,leader。
4)为角色student授权student表、course表和SC表的select 权力,拒绝修改和删除这三个表的权力
5)为角色teacher授权student表、course表和SC表的select 权力,以及对SC表的修改,插入更新的权力, 拒绝修改student表和course表的权力
6)为角色leader授权student表、course表和SC表的select 权力,以及对student表、course 表修改,插入更新的权力,拒绝修改和删除表SC的权力
7)将s1,s2加入student角色
8)将t1,t2加入teacher角色
9)将l1,l2加入leader角色
10)分别以s1,t1,l1登入服务器验证对student表、course表和SC表相应权限的验证。
存储过程和触发器(数据库实验5)
数据库基础与实践实验报告实验五存储过程和触发器班级:惠普测试142学号:**********姓名:***日期:2016-11-141 实验目的:1)掌握SQL进行存储过程创建和调用的方法;2)掌握SQL进行触发器定义的方法,理解触发器的工作原理;3)掌握触发器禁用和重新启用的方法。
2 实验平台:操作系统:Windows xp。
实验环境:SQL Server 2000以上版本。
3 实验内容与步骤利用实验一创建的sch_id数据库完成下列实验内容。
1.创建存储过程JSXX_PROC,调用该存储过程时可显示各任课教师姓名及其所教课程名称。
存储过程定义代码:CREATE PROCEDURE JSXX_PROCASSELECT tn 教师姓名,cn 所教课程FROM T,TC,C WHERE T.tno=TC.tno AND o=o存储过程执行语句与执行结果截图:EXECUTE JSXX_PROC2.创建存储过程XM_PROC,该存储过程可根据输入参数(学生姓名)查询并显示该学生的学号、所学课程名称和成绩;如果没有该姓名学生,则提示“无该姓名的同学”。
存储过程定义代码:CREATE PROCEDURE XM_PROC @sname VARCHAR(100)ASBEGINIF EXISTS(SELECT NULL FROM S WHERE sn=@sname)SELECT S.sno 学号,cn 课程,score 成绩FROM S,SC,C WHERE o=o AND SC.sno=S.sno ANDS.sn=@snameELSEPRINT'无该姓名的同学。
'END运行截图:3.创建存储过程XBNL_PROC,该存储过程可根据输入参数(专业名词,默认值为计算机专业),统计并显示该专业各年龄段男、女生人数。
如果没有该专业,则显示“无此专业”。
存储过程定义代码:CREATE PROCEDURE XBNL_PROC@departName VARCHAR(30)='计算机',@begin INT,@end INTASDECLARE @numOfBoys INTDECLARE @numOfGirls INTDECLARE @d# VARCHAR(3)DECLARE @result VARCHAR(50)BEGINSELECT @d# = dno FROM D WHERE dn=@departNameIF @d# IS NOT NULLBEGINSELECT @numOfBoys =COUNT(sno)FROM S WHERE age BETWEEN @begin AND @end AND dno=@d# AND sex='男'SELECT@numOfGirls =COUNT(sno)FROM S WHERE age BETWEEN@begin AND@end AND dno=@d# AND sex='女'SET @result = @departName+'专业年龄在'+CAST(@begin AS VARCHAR(3))+'-'+CAST(@end AS VARCHAR(3))+'之间的男生有'+CAST(@numOfBoys AS VARCHAR(3))+'人,'+'女生有'+CAST(@numOfGirls AS VARCHAR(3))+'人'ENDELSESET @result='无此专业。
数据库实验5 多表查询及视图
实验五:多表查询及视图一、实验目的1.掌握SELECT语句的基本语法和查询条件表示方法;2.掌握数据表的连接查询、嵌套查询、集合查询的使用方法。
3.掌握创建及管理视图的方法;二、实验学时2学时三、实验要求1.了解SELECT语句的基本语法格式和执行方法;2.掌握连接查询、嵌套查询和集合查询的语法规则;3.掌握使用界面方式和命令方式创建及管理视图;4.完成实验报告;四、实验内容1.以实验3数据库为基础,请使用T-SQL 语句实现进行以下操作:1)查询选修了‘数学’或者‘大学英语’的学生学号、姓名、所在院系、选修课程号及成绩;2)查询与‘张力’(假设姓名唯一)年龄不同的所有学生的信息;3)按照“学号,姓名,所在院系,已修学分”的顺序列出学生学分的获得情况。
其中已修学分为考试已经及格的课程学分之和;4)查找选修了至少一门和张力选修课程一样的学生的学号、姓名及课程号;5)查询只被一名学生选修的课程的课程号、课程名;6)使用嵌套查询出选修了“数据结构”课程的学生学号和姓名;7)使用嵌套查询查询其它系中年龄小于CS系的某个学生的学生姓名、年龄和院系;8)使用ANY、ALL 查询,列出其他院系中比WM系所有学生年龄小的学生的姓名;9)使用集合查询查询选修1号课程同时选修2号课程的同学的学号与姓名;2.以实验数据库为基础数据,利用对象资源管理器创建以下视图:1)创建所有学生学号、姓名及年龄的信息视图v_stu_info2)创建CS系学生基本信息视图v_stu_cs3)创建选修课成绩在80分以上的学生的信息视图v_stu_80,包括学生基本情况及成绩。
3. 以实验数据库为基础数据,请使用T-SQL语句完成以下内容,并将SQL语句写在实验报告册中:1) 创建v_CS视图,包括CS系各学生的学号、姓名及年龄,要求进行修改和插入操作时仍需保证该视图只有CS系的学生;2) 创建v_CS_age20视图,包括CS系学生年龄在20岁以上的基本信息;并保证对视图文本的修改都要符合年龄大于20这个条件。
实验五实验报告
实验五实验报告实验五实验报告引言:实验五是一项关于物理实验的研究,通过实验数据的收集和分析,我们旨在探究某一特定物理现象或验证某一物理理论。
本次实验的主题是XXXXX(根据实际情况填写),以下将详细介绍实验的目的、实验装置和步骤、实验结果以及对结果的分析和讨论。
一、实验目的本次实验的目的是XXXXX(根据实际情况填写)。
通过实验的进行,我们希望探究XXXXX的规律,并验证相应的物理理论。
同时,通过实验数据的收集和分析,我们还可以对实验装置和测量方法的准确性进行评估。
二、实验装置和步骤本次实验所使用的装置主要包括XXXXX(列举实验装置的名称)。
在实验过程中,我们按照以下步骤进行操作:1. 步骤一:XXXXX(具体操作内容)2. 步骤二:XXXXX(具体操作内容)3. 步骤三:XXXXX(具体操作内容)4. 步骤四:XXXXX(具体操作内容)5. 步骤五:XXXXX(具体操作内容)三、实验结果在实验过程中,我们记录了一系列实验数据,并进行了相关的数据处理。
以下是实验结果的总结:1. 结果一:XXXXX(具体实验结果)2. 结果二:XXXXX(具体实验结果)3. 结果三:XXXXX(具体实验结果)四、结果分析和讨论基于实验结果,我们进行了进一步的分析和讨论。
以下是对实验结果的分析和讨论:1. 分析一:XXXXX(对结果进行详细分析)2. 分析二:XXXXX(对结果进行详细分析)3. 分析三:XXXXX(对结果进行详细分析)通过对实验结果的分析,我们可以得出如下结论:XXXXX(根据实验结果和分析得出结论)。
五、实验误差和改进在实验过程中,我们还需要对实验误差进行评估,并提出相应的改进方法。
以下是对实验误差和改进的讨论:1. 误差评估:XXXXX(对实验误差进行评估)2. 改进方法:XXXXX(提出改进方法)通过对实验误差的评估和改进方法的提出,我们可以进一步提高实验的准确性和可靠性。
结论:通过本次实验,我们成功地实现了实验目的,并得出了相应的结论。
数据库课程实验报告_实验五_学生、选课、成绩简易管理系统
实验五编程实施学生、选课、成绩简易管理系统一.目的与要求1.通过编程扩展“学生选课系统”的功能。
2.进一步掌握调试程序的基本步骤和方法。
二.实验内容1.使学生、教师和课程表具有增加、修改、删除和查询数据的功能。
2.学生根据开设的课程进行选课.3.教师根据学生所选课程进行成绩登录。
4.各类统计分析,比如平均成绩。
系统说明:学生:可以进行选课、退课、查分、查看学生自己的信息、修改自己的密码。
教师:可以查询已选学生、登分、查看教师自己的信息、修改自己的密码。
管理员:可以增加和删除课程、学生、教师等信息,可以查看和修改学生、教师密码,可以注册和注消学生、教师,有所有学生的功能,能够查询教师信息。
部分窗口如下:部分代码如下:如查分代码如下:通过datawindow中通过学号可以查看自己成绩。
dw_1.reset()dw_1.settransobject(SQLCA)dw_1.retrieve(user)dw_1.object.datawindow.readonly="yes"三.上机体会。
进一步掌握了开发管理系统的基本方法;掌握了使用PowerBuilder开发环境提供的工具建立应用程序的步骤和方法;掌握应用PowerBuilder提供的调试程序进行应用程序的调试。
实验六SQL Server 2000高级技术的使用一.目的与要求1.练习存储过程的建立和使用。
2.学会触发器的使用。
二.实验内容1.存储过程的建立和使用。
(1)创建存储过程,使其具有如下功能:根据所提供的学号参数,返回该学生的学习情况信息。
(2)查看和修改存储过程;(3)使用存储过程;(4)删除存储过程。
2.触发器的建立和使用(1)创建两个触发器,分别具有如下功能:a.将删除的学生选课信息转移到存档学生选课表中;b.在修改学生成绩时,要求修改后的成绩一定要比原来的成绩高;(2)查看和修改触发器;(3)使用触发器;(4)删除触发器;3.为实验五设计存储过程和触发器,通过调试验证其正确性。
数据库实验5答案
实验五:数据库综合查询一、实验目的1.掌握SELECT语句的基本语法和查询条件表示方法;2.掌握查询条件种类和表示方法;3.掌握连接查询的表示及使用;4.掌握嵌套查询的表示及使用;5.了解集合查询的表示及使用。
二、实验环境已安装SQL Server企业版的计算机(120台);具有局域网环境,有固定IP;三、实验学时2学时四、实验要求1.了解SELECT语句的基本语法格式和执行方法;2.了解连接查询的表示及使用;3.了解嵌套查询的表示及使用;4.了解集合查询的表示及使用;5.完成实验报告;五、实验内容及步骤1.利用Transact-SQL嵌套语句实现下列数据查询操作。
1) 查询选修了计算机体系结构的学生的基本信息。
select*from studentwhere Sno in(select Sno from coursewhere Cno in(select Cno from sc where Cname='计算机体系结构'))2) 查询年龄比李勇小的学生的学号和成绩。
select a.sno,grade from student a,coursewhere a.sno=course.sno and sage<(select sage from student where sname='李勇')3) 查询其他系中比系编号为‘D1’的学生中年龄最小者要大的学生的信息。
select*from student where dnum<>'D1'AND SAGE>(select min(sage)from student where dnum='D1')4) 查询其他系中比系编号为‘D3’的学生年龄都大的学生的姓名。
select*from student where dnum<>'D3'AND SAGE>all(selectsage from student where dnum='D3')5) 查询‘C1’课程的成绩高于70的学生姓名。
数据库实验报告
数据库实验报告《数据库系统概论》实验指导书2012-8-30⽬录实验⼀数据库服务器的连接及数据库的建⽴ (1)实验⼆简单SQL查询及数据库多表查询 (12)实验三视图、索引、存储过程和触发器的使⽤ .. 22实验四 E-R模型与关系模型的转换 (30)实验五维护数据的完整性(选做)错误!未定义书签。
实验六事务管理(课后选做)错误!未定义书签。
实验七数据库的备份与恢复(课后选做)错误!未定义书签。
实验⼀数据库服务器的连接及数据库的建⽴⼀、实验⽬的:了解连接数据库服务器的⾝份验证模式,熟悉样例数据库。
掌握DBMS中利⽤界⾯进⾏建库建表操作。
⼆、实验准备:数据模型由三个要素组成:数据结构、数据操作和完整性约束。
1、数据结构数据结构⽤于描述系统的静态特性,是所研究的对象类型的集合。
数据模型按其数据结构分为层次模型、⽹状模型和关系模型。
2、数据操作数据操作⽤于描述系统的动态特性,是指对数据库中各种对象的实例允许执⾏的操作的集合,包括操作及有关的操作集合。
3、数据的约束条件数据的约束条件是⼀组完整性规则的集合。
完整性规则是给定的数据及其联系所具有的制约和存储规则,⽤以限定符合数据库状态以及状态的变化,以保证数据的正确、有效和相容。
数据库系统的三级模式结构数据库系统的三级模式结构是指数据库系统是由外模式、模式和内模式三级组成。
1、外模式。
外模式也称⼦模式或⽤户模式,它是数据库⽤户(包括应⽤程序员和最终⽤户)看见和使⽤的局部数据的逻辑结构和特征的描述,是数据库⽤户的数据视图,是与某⼀应⽤有关的数据的逻辑表⽰。
⼀个数据库可以有多个外模式。
2、模式。
模式也称逻辑模式,是数据库中全体数据的逻辑结构和特征的描述,是所有⽤户的公⽤数据视图。
⼀个数据库只有⼀个模式。
3、内模式。
内模式也称存储模式,它是数据物理和存储结构的描述,是数据在数据库内部的表⽰⽅式。
⼀个数据库只有⼀个内模式。
DBMS的功能1、数据定义数据定义包括定义构成数据库结构的外模式、模式和内模式,定义各个外模式与模式之间的映射,定义模式与内模式之间的映射,定义有关的约束条件(例如,为保证数据库中数据具有正确语义⽽定义的完整性规则,为保证数据库安全⽽定义的⽤户⼝令和存取权限等)。
实验五:数据完整性实验
实验五:数据完整性实验一、实验目的:掌握使用SQL中的PRIMARY KEY、CHECK、FOREIGN KEY……REFERENCES、NOT NULL、UNIQUE等关键字是现实体完整性、参照完整性及用户定义完整性约束定义。
二、实验步骤:(一)验证分析部分1、利用SQL查询分析器用PRIMARY KEY子句保证实体完整性。
在查询分析器窗体下键入如下命令:CREATE TABLE Student(sno CHAR(5) NOT NULL UNIQUE,sname CHAR(8),ssex CHAR(1),sage INT,sdept CHAR(20),CONSTRAINT PK_Student PRIMARY KEY(sno));UPDATE Student SET sno=’ ‘ WHERE sdept=’CS’;UPDATE Student SET sno=’200215121 ‘WHERE sname=’王敏’;运行并观察结果。
2、利用SQL查询分析器用FOREIGN KEY……REFERENCES子句保证实体完整性。
在查询分析器窗体下键入如下命令:(1)先删除原来SC表中关于Sno 的外键,再将SC的Sno外键修改为:alter TABLE SC add CONSTRAINT FK_Sno FOREIGN KEY (sno)REFERENCES Student(sno)ON update CASCADE;然后执行以下语句Update Student SET sno=’200215128 ‘ WHERE sno=’200215121’;(2) 先删除原来SC表中关于Sno 的外键,再将SC的Sno外键修改为:alter TABLE SC add CONSTRAINT FK_Sno FOREIGN KEY (sno)REFERENCES Student(sno)ON delete CASCADE;然后执行以下语句delete from student WHERE sno=’200215122’;运行并观察结果。
实验五 数据库完整性与安全性实验
实验五数据库完整性与安全性实验1、实验目的1.通过对完整性规则的定义实现,熟悉了解kingbase中完整性保证的规则和实现方法,加深对数据完整性的理解。
2.通过对安全性相关内容的定义,熟悉了解kingbase中安全性的内容和实现方法,加深对数据库安全性的理解2、实验环境操作系统:Microsoft Windows 7旗舰版(32位)。
数据库版本:MySQL 6.23、实验内容3.1完整性实验:(1)分别定义学生数据库中各基表的主键、外键,实现实体完整性约束和参照完整性约束;在create table 时已经定义了各个基表的主键。
因此,首先对每个基表删除主键,再添加主键。
实现实体完整性约束。
如下图。
删除主键:添加主键:sc表中的cno和sno分别是course表和student表的外关键字。
下图为给sc表添加student和course的外键,实现参照完整性约束。
alter table sc add constraint fk_student foreign key(sno) references student(sno);alter table sc add constraint fk_course foreign key(cno) references course(cno);主键和外键均添加成功,输入show create table 命令来查看各基表信息。
(2)分别向学生表、课程表插入具有相同学号和相同课程编号的学生数据和课程数据,验证其实体完整性约束;向课程表中插入课程号为C01的课程。
向学生表中插入学号为30201的学生。
由上面两个实验来看,分别对student和course表插入具有相同学号和相同课程号的学生信息和课程信息,都显示sql语句错误信息为:Duplicate entry *** for key ‘PRIMARY’。
验证了实体完整性约束。
(3)向学生选课表中插入一条数据,课程编号是课程表中没有的,验证参照完整性约束;插入成绩信息是学号为31428(student中存在),课程号为C07(course中不存在)的学生成绩信息。
数据库实验五DML的数据更新
《数据库系统概论》实验报告实验五:DML的数据更新姓名日期实验内容与完成情况:一、实验内容:1.启动数据库服务软件SQL Server 2008的查询分析器,用INSERT语句对表进行插入操作,语法格式如下:Insert Into <表名> [(<属性列1>[,<属性列2>]…)]Values (<常量1>[,<常量2>]…)|子查询;2.用UPDATE语句对表中已有的记录进行修改,语法格式如下:Update <表名> Set <列名>=<表达式>[,<列名>=<表达式>][,…n] [Where <条件>];3.用DELETE语句对表中已有的记录进行删除,语法格式如下:Delete From <表名> [Where <条件>];4、复制数据库表用T-SQL复制一个数据库表以及复制数据库表的一部分。
select…. into…from…二、实验任务1.打开数据库SQL Server 2008的查询分析器,用INSERT语句对表插入记录查询分析器窗体下完成以下题目,分别运行,观察结果(1)将一个新学生记录(学号:201615118;姓名:陈冬;性别:男;所在系:IS;年龄:18)插入到Student表中。
insertinto Student(Sno,Sname,Ssex,Sdept,Sage)values('201615118','陈冬','男','IS',18);(2)插入一条选课记录(‘201615118’,‘1’)insertinto Sc(Sno,Cno)values('201615118','1');(3)对每个系求学生的平均年龄,并把结果存入表Deptage create table Deptage(Sdept char(15),Avgage SMALLINT);insertinto Deptage(Sdept,Avgage)select Sdept,AVG(Sage)from Studentgroup by Sdept;(1)将学生201615118的年龄改为22岁。
数据库实验五 表连接查询
实验五表连接查询1.查找每一个供应商供应的商品的名称,要求显示供应商名称和商品名称。
select Sname,Cnamefrom supplier,commodity,supplyingwhere supplier.Sid=supplying.Sid and commodity.Cid=supplying.Cid2.使用连接查询查找与姓名为‘李云’的采购员签订采购单的供应商的名称。
select distinct(sname)from stock,Employee,supplierwhere stock.Eid=Employee.Eid and stock.Sid=supplier.Sid and Ename like'李云'3.使用关键字IN完成查询,要求查找与姓名为‘李云’的采购员签订采购单的供应商的名称。
select Snamefrom supplierwhere Sid in(select Sidfrom stockwhere Eid in(select Eidfrom Employeewhere Ename='李云'))4.使用左外连接完成如下查询:要求查找所有采购员签订的采购合同的详细信息。
select *from Employee left outer join stock on Employee.Eid=stock.Eid5.使用左外连接完成如下查询:查找所有客户购买的商品详细信息,要求显示客户名称,商品名称,销售数量,商品单价,没有购买商品的客户也要显示。
select CUname,Cname,SDnumber,SDpricefrom customer left outer join sale on customer.CUid=sale.CUidleft outer join saleDetail on sale.SAid=saleDetail.SAidleft outer join commodity on saleDetail.cid=commodity.cid6.请使用内连接完成如下查询:查找每一个供应商供应的商品的种类,要求显示供应商名称,供应的商品的种类。
数据库实验五:视图的应用
数据库实验五:视图的应用一、实验目的与要求:1.实验目的(1)理解视图的概念;(2)掌握视图的使用方法。
(3)理解视图和基本表的异同之处。
2.实验要求(1)参照实验五中完成的查询,按如下要求设计和建立视图:1)基于单个表按投影操作定义视图。
2)基于单个表按选择操作定义视图。
3)基于单个表按选择和投影操作定义视图。
4)基于多个表根据连接操作定义视图。
5)基于多个表根据嵌套操作定义视图。
6)定义含有虚字段的视图。
(2)分别在定义的视图设计一些查询(包括基于视图和基本表的连接或嵌套查询)。
(3)在定义的视图上进行插入、更新和删除操作,分情况讨论哪些操作可以成功完成,哪些操作不能完成,并分析原因。
(4)在实验报告中要给出具体的视图定义要求和操作要求,并针对各种情况做出具体的分析和讨论。
二、实验内容1、实验原理(1)视图是用SQL SELECT查询定义的,创建视图命令格式如下:CREATE VIEW <视图名> AS <SELECT-查询块>(2)删除视图的命令格式如下:DROP VIEW <视图名>2、实验步骤与结果(1)调出SQL Server2005软件的用户界面,进入SQL SERVER MANAGEMENT STUDIO。
(2)输入自己编好的程序。
(3)检查已输入的程序正确与否。
(4)运行程序,并分析运行结果是否合理和正确。
在运行时要注意当输入不同的数据时所得到的结果是否正确。
(5)输出程序清单和运行结果。
(1)参照实验五中完成的查询,按如下要求设计和建立视图:1)基于单个表按投影操作定义视图。
create view v asselect教师编号,姓名from教师create view v_order asselect*from教师where职称='教授'3)基于单个表按选择和投影操作定义视图。
create view v_cuss asselect教师编号,姓名,职称from教师where职称='教授'4)基于多个表根据连接操作定义视图。
数据库实验报告
实验一熟悉SQL SERVER的环境(验证型实验2学时)1.目的要求:了解SQL Server management studio的使用2.实验内容:回答下面每一个问题,写出实验步骤1)在“已注册服务器窗口”中注册sql server数据库服务器在视图中点击已注册的服务器,右键点击数据库引擎新建,选择服务器注册,输入服务器名称sql server2)在“对象资源管理器”中创建名字为sc的数据库右击数据库,选择新建数据库,输入数据库名称sc3)在sc数据库中创建一个名字为student的基本表点击sc的数据库,右点击表,新建表,输入相应的属性名称,选择相应的数据类型,保存时输入表名student4)在查询窗口中里创建名为S_C的数据库输入sql语句create database S_C,然后执行5)在查询窗口中使用sql语言创建名字为course的基本表输入sql语句,create table coure3.主要仪器设备及软件:(1)PC(2)Microsoft SQL Server 2005实验二建立表格,并插入若干记录(验证型实验2学时)1.目的要求:学会使用Create Table语句和Insert语句2.实验内容:1)使用sql语言建立student,course和sc共三张表格(包括主键,外码的指定),分析具体情况适当给出一些用户自定义的约束.create database studentcreate table student(Sno char(9) primary key,Sname char(20) unique,Ssex char(2),Sage smallint,Sdept char(20));create table course(Cno char(4) primary key,Cname char(40),Cpno char(4),Ccredit smallint,foreign key (Cpno )references course(Cno));create table sc( Sno char(9),Cno char(4),Grade smallint,primary key(Sno,Cno),foreign key (Sno) references student(Sno), foreign key (Cno) references course(Cno));2)使用Insert语句向这四张表格里添加至少10条记录(数据如教材56页所示),如果出现错误,分析错误原因insert into student(Sno, Sname,Ssex,Sage ,Sdept )values('95001','李勇','男',20,'CS');insert into student(Sno, Sname,Ssex,Sage ,Sdept )values('95002','刘晨','女',19,'IS');insert into student(Sno, Sname,Ssex,Sage ,Sdept )values('95003','王敏','女',18,'MA');insert into student(Sno, Sname,Ssex,Sage ,Sdept )values('95004','张立','男',19,'IS');……插入时遇到的问题:insert语句与表的外键约束发生冲突不能正确插入;输入SQL语言标点符号时必须关掉中文输入法。
数据库原理实验报告
计算机与信息学院数据库原理实验报告专业:计算机科学与技术班级:2012级本科班学号:*****姓名:指导教师:2014年06月18 日实验项目列表计算机与信息学院实验报告纸实验一数据库创建与管理一、实验目的与要求1、熟练掌握SSMS中界面方式创建和管理数据库。
2、熟练掌握SSMS查询编辑器T-SQL语句创建和管理数据库。
3、熟练掌握备份和还原数据库。
二、实验内容1、界面方式创建和管理数据库(1)创建数据库(2)修改数据库(3)删除数据库2、利用企业管理器备份和还原数据库(1)备份数据库(2)还原数据库3、T-SQL语句方式创建和管理数据库(1)创建SPJ数据库:在SSMS中“新建查询”,输入以下语句并运行CREATE DATABASE SPJON(NAME=’SPJ_Data’,FELENAME='C:\Program Files\Microsoft SQL Server\MSSQL\data\SPJ_Data.MDF' ,SIZE = 3,MAXSIZE = 10,FILEGROWTH = 10%)LOG ON(NAME = 'SPJ_Log', FILENAME = 'C:\Program Files\Microsoft SQL Server\MSSQL\data\SPJ_Log.LDF' ,SIZE = 1,FILEGROWTH = 10%)(2)修改SPJ数据库:在查询分析器中输入以下语句并运行ALTER DATABASE SPJMODIFY FILE(NAME='SPJ_Data',SIZE=4,ALTER DATABASE SPJADD FILE(NAME='SPJ_Data_2', FILENAME='C:\Program Files\Microsoft SQL Server\MSSQL\Data\SPJ_Date_2.ndf',SIZE=1,MAXSIZE=10,FILEGROWTH=10%)(3)删除SPJ数据库:DROP DATABASE SPJ4、界面方式创建数据库XSBOOK,写出操作过程。
数据库实验五实验报告
数据库实验五实验报告一、实验目的本实验旨在通过学习数据库的索引和优化,掌握数据库索引的使用和优化方法,进一步提升数据库的查询性能。
二、实验要求1.理解数据库索引的概念及作用。
2.熟悉索引的创建、删除和修改操作。
3.了解索引的类型及适用场景,并能选取合适的索引类型。
4.能通过观察执行计划和使用适当的策略对查询进行优化。
三、实验步骤1.索引的创建和删除首先,在已创建的数据库中选择适合创建索引的表。
通过如下语句创建一个测试表:CREATE TABLE test_table(id INT PRIMARY KEY,name VARCHAR(50),age INT);然后,可以在表的字段上创建索引,通过如下语句创建一个索引:CREATE INDEX idx_name ON test_table(name);索引创建完成后,可以通过如下语句删除索引:DROP INDEX idx_name ON test_table;2.索引的修改可以使用ALTER TABLE语句对已创建的索引进行修改。
例如,修改索引的名称:ALTER INDEX idx_name RENAME TO new_idx_name;或者修改索引的定义:ALTER INDEX idx_name RENAME COLUMN new_column_name;3.选择合适的索引类型在创建索引时,需要选择合适的索引类型。
常见的索引类型包括B树索引、哈希索引和全文索引。
- B树索引:适用于等值查询、范围查询和排序场景。
- 哈希索引:适用于等值查询,不支持范围查询和排序。
- 全文索引:适用于全文搜索场景。
4.查询优化在进行数据库查询时,可以通过观察执行计划来判断查询是否有优化空间。
执行计划是数据库在执行查询时生成的查询执行步骤和顺序图,可以根据执行计划优化查询。
另外,还可以通过以下策略对查询进行优化:- 使用合适的索引类型- 避免使用LIKE操作符- 避免使用SELECT *查询所有字段- 避免多表连接查询- 使用JOIN代替子查询- 避免使用不必要的DISTINCT操作符- 分页查询时,使用LIMIT关键字限制结果数量四、实验结果与分析通过实验,我们成功创建了一个测试表,并在该表的字段上创建了索引。
数据库约束、默认、规则实验报告
实验五约束默认和规则1、约束在数据库中的应用(1)用系统存储过程sp_helpconstraint查看student表的约束。
(2)在新建查询中输入插入一个学生信息的命令:insert into student(SNO,Sname,Sex,ClsNO,StuAddr,Birthday,Height)values('19920101','王军','男','CS01','下关#','1976.12.21',1.76),观察其结果。
修改SNO的值,将其值修改为’19000001’,其他的值保持不变,再插入一次,观察其结果。
(3)修改studeng表,使用Check约束,使性别列只能接受“男”或“女”,以强制执行域数据完整性。
重做(1),观察其结果。
(4)禁止student表中的sex列上的约束:alter table student nocheck constraint ck_student(5)删除约束:alter table student drop constraint ck_xsqk。
重做(1)。
(6)利用关系图,建立student表与course表与grade表的主外键约束。
2、默认的应用(1)创建默认对象:default_birthday,默认值为’1982-1-1’。
CREATE DEFAULT default_birthday AS ‘1982-01-01’(2)利用系统存储过程sp_bindefault将default_birthday绑定到student表的Birthday列上。
(3)利用系统存储过程sp_unbindefault解除student表的Birthday列上的默认值绑定。
(4)删除默认值:DROP DEFAULT default_birthday(5)定义一个默认值为4的Default_Value,并将它绑定到course表的Credit列上,绑定后给course插入数据行,观察默认值的设置情况,使用完毕后,解除并删除绑定。
- 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
- 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
- 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
实验五 SQL语言数据操纵语言DML一、实验内容学会运用SQL语句:(一)用INSERT语句向表中插入数据。
(二)用UPDATE语句更新(修改)表中已有数据。
(三)用DELETE语句删除表中数据。
具体步骤如下:1.启动Navicat for MySQL,在MySQL –新建连接中完成连接参数配置。
2.登录到本地数据库服务器后,连接到test数据库上。
3.首先用Create Table语句建立test表,test表定义如下所示:4.用INSERT语句对表test,插入如下6条记录:该插入语句如下:建立的表格如下:5.再用Create Table语句建立test_temp表,test_temp表定义如下所示:6.用INSERT语句对表test_temp,插入如下3条记录:建立的test_temp表格如下:7.用INSERT INTO ... SELECT ... FROM语句,将test_temp表中的数据,插入到test 表中。
将test_temp插入到test表格后:8.用UPDATE语句将test表中年龄小于等于20的数据,将成绩更新为原来的成绩加5分。
运用update更新语句如下:更新后的test表格:9.用UPDATE语句将test表中居住在南福苑所有学生的年龄减少1岁。
更新后的表格如下:10.用DELETE语句将test表中年龄大于等于21并且成绩大于等于500的学生数据删除掉。
运用delete删除语句如下:删除后的表格:11.用DELETE语句将test表中成绩小于550并且居住在重邮宿舍的学生数据删除掉。
最后得到的表格:二、遇到的问题及解决在该实验中,我们做到第九条时遇到了困难,不知道怎么对所有居住于南福苑同学进行操作。
最后在老师的帮助下,我们运用了通配符,对该项进行了操作。
但我的,在运行时还是出了错,最后发现都是空格惹的祸,我将地址前面不小心加了空格,但在运用select语句时没有考虑空格,导致出了错,最后改了,成功将实验做出。
三、心得体会由于在写C++代码中,养成了敲空格的习惯,最后在这个实验中出了错,以后做实验时要细心点,遇到不懂的地方要及时的问老师或者是同学。
当我被上帝造出来时,上帝问我想在人间当一个怎样的人,我不假思索的说,我要做一个伟大的世人皆知的人。
于是,我降临在了人间。
我出生在一个官僚知识分子之家,父亲在朝中做官,精读诗书,母亲知书答礼,温柔体贴,父母给我去了一个好听的名字:李清照。
小时侯,受父母影响的我饱读诗书,聪明伶俐,在朝中享有“神童”的称号。
小时候的我天真活泼,才思敏捷,小河畔,花丛边撒满了我的诗我的笑,无可置疑,小时侯的我快乐无虑。
“兴尽晚回舟,误入藕花深处。
争渡,争渡,惊起一滩鸥鹭。
”青春的我如同一只小鸟,自由自在,没有约束,少女纯净的心灵常在朝阳小,流水也被自然洗礼,纤细的手指拈一束花,轻抛入水,随波荡漾,发髻上沾着晶莹的露水,双脚任水流轻抚。
身影轻飘而过,留下一阵清风。
可是晚年的我却生活在一片黑暗之中,家庭的衰败,社会的改变,消磨着我那柔弱的心。
我几乎对生活绝望,每天在痛苦中消磨时光,一切都好象是灰暗的。
“寻寻觅觅冷冷清清凄凄惨惨戚戚”这千古叠词句就是我当时心情的写照。
最后,香消玉殒,我在痛苦和哀怨中凄凉的死去。
在天堂里,我又见到了上帝。
上帝问我过的怎么样,我摇摇头又点点头,我的一生有欢乐也有坎坷,有笑声也有泪水,有鼎盛也有衰落。
我始终无法客观的评价我的一生。
我原以为做一个着名的人,一生应该是被欢乐荣誉所包围,可我发现我错了。
于是在下一轮回中,我选择做一个平凡的人。
我来到人间,我是一个平凡的人,我既不着名也不出众,但我拥有一切的幸福:我有温馨的家,我有可亲可爱的同学和老师,我每天平凡而快乐的活着,这就够了。
天儿蓝蓝风儿轻轻,暖和的春风带着春的气息吹进明亮的教室,我坐在教室的窗前,望着我拥有的一切,我甜甜的笑了。
我拿起手中的笔,不禁想起曾经作诗的李清照,我虽然没有横溢的才华,但我还是拿起手中的笔,用最朴实的语言,写下了一时的感受:人生并不总是完美的,每个人都会有不如意的地方。
这就需要我们静下心来阅读自己的人生,体会其中无尽的快乐和与众不同。
“富不读书富不久,穷不读书终究穷。
”为什么从古到今都那么看重有学识之人?那是因为有学识之人可以为社会做出更大的贡献。
那时因为读书能给人带来快乐。
自从看了《丑小鸭》这篇童话之后,我变了,变得开朗起来,变得乐意同别人交往,变得自信了……因为我知道:即使现在我是只“丑小鸭”,但只要有自信,总有一天我会变成“白天鹅”的,而且会是一只世界上最美丽的“白天鹅”……我读完了这篇美丽的童话故事,深深被丑小鸭的自信和乐观所折服,并把故事讲给了外婆听,外婆也对童话带给我们的深刻道理而惊讶不已。
还吵着闹着多看几本名着。
于是我给外婆又买了几本名着故事,她起先自己读,读到不认识的字我就告诉她,如果这一面生字较多,我就读给她听整个一面。
渐渐的,自己的语文阅读能力也提高了不少,与此同时我也发现一个人读书的乐趣远不及两个人读的乐趣大,而两个人读书的乐趣远不及全家一起读的乐趣大。
于是,我便发展“业务”带动全家一起读书……现在,每每遇到好书大家也不分男女老少都一拥而上,争先恐后“抢书”,当我说起我最小应该让我的时候,却没有人搭理我。
最后还把书给撕坏了,我生气地哭了,妈妈一边安慰我一边对外婆说:“孩子小,应该让着点。
”外婆却不服气的说:“我这一把年纪的了,怎么没人让我呀?”大家人你一言我一语,谁也不肯相让……读书让我明白了善恶美丑、悲欢离合,读一本好书,犹如同智者谈心、谈理想,教你辨别善恶,教你弘扬正义。
读一本好书,如品一杯香茶,余香缭绕。
读一本好书,能使人心灵得到净化。
书是我的老师,把知识传递给了我;书是我的伙伴,跟我诉说心里话;书是一把钥匙,给我敞开了知识的大门;书更是一艘不会沉的船,引领我航行在人生的长河中。
其实读书的真真乐趣也就在于此处,不是一个人闷头苦读书;也不是读到好处不与他人分享,独自品位;更不是一个人如痴如醉地沉浸在书的海洋中不能自拔。
而是懂得与朋友,家人一起分享其中的乐趣。
这才是读书真正之乐趣呢!这所有的一切,不正是我从书中受到的教益吗?我阅读,故我美丽;我思考,故我存在。
我从内心深处真切地感到:我从读书中受到了教益。
当看见有些同学宁可买玩具亦不肯买书时,我便想到培根所说的话:“世界上最庸俗的人是不读书的人,最吝啬的人是不买书的人,最可怜的人是与书无缘的人。
”许许多多的作家、伟人都十分喜欢看书,例如毛泽东主席,他半边床上都是书,一读起书来便进入忘我的境界。
书是我生活中的好朋友,是我人生道路上的航标,读书,读好书,是我无怨无悔的追求。
下午13:00—17:00度。
全体员工都必须自觉遵守工作时间,实行不定时工作制的员工不必打卡。
3.1.2.2打卡次数:一日两次,即早上上班打卡一次,下午下班打卡一次。
3.1.2.3打卡时间:打卡时间为上班到岗时间和下班离岗时间;3.1.2.4因公外出不能打卡:因公外出不能打卡应填写《外勤登记表》,注明外出日期、事由、外勤起止时间。
因公外出需事先申请,如因特殊情况不能事先申请,应在事毕到岗当日完成申请、审批手续,否则按旷工处理。
因停电、卡钟(工卡)故障未打卡的员工,上班前、下班后要及时到部门考勤员处填写《未打卡补签申请表》,由直接主管签字证明当日的出勤状况,报部门经理、人力资源部批准后,月底由部门考勤员据此上报考勤。
上述情况考勤由各部门或分公司和项目文员协助人力资源部进行管理。
3.1.2.5手工考勤制度3.1.2.6手工考勤制申请:由于工作性质,员工无法正常打卡(如外围人员、出差),可由各部门提出人员名单,经主管副总批准后,报人力资源部审批备案。
3.1.2.7参与手工考勤的员工,需由其主管部门的部门考勤员(文员)或部门指定人员进行考勤管理,并于每月26日前向人力资源部递交考勤报表。
3.1.2.8参与手工考勤的员工如有请假情况发生,应遵守相关请、休假制度,如实填报相关表单。
3.1.2.9 外派员工在外派工作期间的考勤,需在外派公司打卡记录;如遇中途出差,持出差证明,出差期间的考勤在出差地所在公司打卡记录;3.2加班管理3.2.1定义加班是指员工在节假日或公司规定的休息日仍照常工作的情况。
A.现场管理人员和劳务人员的加班应严格控制,各部门应按月工时标准,合理安排工作班次。
部门经理要严格审批员工排班表,保证员工有效工时达到要求。
凡是达到月工时标准的,应扣减员工本人的存休或工资;对超出月工时标准的,应说明理由,报主管副总和人力资源部审批。
B.因员工月薪工资中的补贴已包括延时工作补贴,所以延时工作在4小时(不含)以下的,不再另计加班工资。
因工作需要,一般员工延时工作4小时至8小时可申报加班半天,超过8小时可申报加班1天。
对主管(含)以上管理人员,一般情况下延时工作不计加班,因特殊情况经总经理以上领导批准的延时工作,可按以上标准计加班。
3.2.2.2员工加班应提前申请,事先填写《加班申请表》,因无法确定加班工时的,应在本次加班完成后3个工作日内补填《加班申请表》。
《加班申请表》经部门经理同意,主管副总经理审核报总经理批准后有效。
《加班申请表》必须事前当月内上报有效,如遇特殊情况,也必须在一周内上报至总经理批准。
如未履行上述程序,视为乙方自愿加班。
3.2.2.3员工加班,也应按规定打卡,没有打卡记录的加班,公司不予承认;有打卡记录但无公司总经理批准的加班,公司不予承认加班。
3.2.2.4原则上,参加公司组织的各种培训、集体活动不计加班。
3.2.2.5加班工资的补偿:员工在排班休息日的加班,可以以倒休形式安排补休。
原则上,员工加班以倒休形式补休的,公司将根据工作需要统一安排在春节前后补休。
加班可按1:1的比例冲抵病、事假。
3.2.3加班的申请、审批、确认流程3.2.3.1《加班申请表》在各部门文员处领取,加班统计周期为上月26日至本月25日。
3.2.3.2员工加班也要按规定打卡,没有打卡记录的加班,公司不予承认。
各部门的考勤员(文员)负责《加班申请表》的保管及加班申报。
员工加班应提前申请,事先填写《加班申请表》加班前到部门考勤员(文员)处领取《加班申请表》,《加班申请表》经项目管理中心或部门经理同意,主管副总审核,总经理签字批准后有效。
填写并履行完审批手续后交由部门考勤员(文员)保管。
3.2.3.3部门考勤员(文员)负责检查、复核确认考勤记录的真实有效性并在每月27日汇总交人力资源部,逾期未交的加班记录公司不予承认。
徐志摩曾说过:“一生中至少该有一次,为了某个人而忘记了自己,不求结果,不求同行,不求曾经拥有,甚至不求你爱我,只求在我最美的年华里,遇见你。
”我不知道自己是何等的幸运能在茫茫人海中与你相遇?我也不知道你的出现是恩赐还是劫?但总归要说声“谢谢你,谢谢你曾来过……”还记得初相识时你那拘谨的样子,话不是很多只是坐在那里听我不停地说着各种不着边际的话。