数据库原理实验报告四(有答案)
数据库实验4 及答案

实验报告课程名称数据库系统原理专业班级姓名学号电气与信息学院和谐勤奋求是创新实验教学考核和成绩评定办法1.课内实验考核成绩,严格按照该课程教学大纲中明确规定的比重执行。
实验成绩不合格者,不能参加课程考试,待补做合格后方能参加考试。
2.单独设立的实验课考核按百分制评分,考核内容应包括基本理论、实验原理和实验。
3.实验考核内容包括:1)实验预习;2)实验过程(包括实验操作、实验记录和实验态度、表现);3)实验报告;权重分别为0.2 、0.4 、0.4;原则上根据上述三个方面进行综合评定。
学生未取得1)和2)项成绩时,第3)项成绩无效。
4.实验指导教师应严格按照考核内容分项给出评定成绩,并及时批改实验报告,给出综合成绩,反馈实验中出现的问题。
实验成绩在教师手册中有记载。
实验报告主要内容一.实验目的二.实验仪器及设备三.实验原理四.实验步骤五.实验记录及原始记录六.数据处理及结论七.实验体会(可选项)注:1. 为了节省纸张,保护环境,便于保管实验报告,统一采用A4纸,实验报告建议双面打印(正文采用宋体五号字)或手写,右侧装订。
2. 实验类别指验证、演示、综合、设计、创新(研究)、操作六种类型实验。
3. 验证性实验:是指为了使学生巩固课程基本理论知识而开设的强调演示和证明,注重实验结果(事实、概念或理论)的实验。
4. 综合性实验:是指实验内容涉及本课程的综合知识或本课程相关的课程知识的实验。
5. 设计性实验:是指给定实验目的、要求和实验条件,由学生自行设计实验方案并加以实现的实验。
实验题目 数据定义、操纵实验室 电信机房 实验时间2011 年 4 月 日实验类别 验证同组人数 1成 绩指导教师签字:一. 实验目的:掌握数据库、表、索引的创建、修改、删除,以及单表查询。
二. 实验内容:1.设有一数据库GradeManager(成绩管理),包括四个表:学生表(Student ),课程表(Course )、班级表(Class )以及成绩表(Grade )。
数据库原理实验报告分析

2013级数据库原理实验报告专业:_______计算机___班级:________________学号:______________姓名:_______________2015年5月实验一 SQL Server 2005基本操作一、实验目的了解SQL Server 2005组件;了解SQL Server数据库组成;掌握SQL Server 2005界面基本操作。
二、实验内容(1)开始->程序->Microsoft SQL Server 2005-> SQL Server Management Studio,打开后进入到SQL Server 2005主体界面(2)点击?数据库?前面的?+?,可以展开查看数据库,并且可以继续展开下级目录,查看数据库中的表、视图等。
(3)了解SQL Server 2005菜单栏的一些主要工具的使用。
(4)学生动手操作SQL Server 2005,打开数据库,打开表,打开查询界面;查看数据库的属性、表的属性等。
三、实验总结进行这次实验有遇到什么问题?怎么解决的?答:此次实验我们一步一步按照实验内容操作的,基本上没有遇到问题。
实验二数据定义一、实验目的掌握SQL Server 2005的数据库创建;掌握SQL Server数据定义语言;掌握SQL Server 2005数据定义的SQL语言定义与管理器定义两种方式。
二、实验内容(1)创建、修改、删除数据库。
创建要求:数据库Employee中包含一个数据库文件Empdat1.mdf和一个日志文件Emplog.ldf。
其中,数据文件大小为10MB,最大为50MB,以5MB速度增长;日志文件大小为5MB,最大为25MB,以5%速度增长。
修改要求:增加第二个数据库文件Empdat2.ndf,其中,数据文件大小为5MB,最大为25MB,以2MB速度增长。
(2)利用SQL创建人员表person、月薪表salary及部门表dept。
数据库原理实验报告(4)

南京晓庄学院《数据库原理与应用》课程实验报告实验四查询设计实验所在院(系):数学与信息技术学院班级:学号:姓名:1.实验目的(1)了解查询的目的,掌握SELECT语句的基本语法和查询条件的表示方法。
(2)掌握数据排序和数据联接查询的方法。
(3)掌握SQL Server查询分析器的使用方法。
2.实验要求(1)针对“TM”数据库,在SQL Server查询分析器中,用T-SQL语句实现以下单表查询操作,并将将调试成功的T-SQL命令,填入实验报告中。
a)查询所有课程的详细情况。
select*from Courseb)查询来自江苏或山东的学生学号和姓名,并以中文名称显示输出的列名。
select S_ID学号,s_name姓名from dbo.Student;c)查询选修了课程的学生学号(一人选了多门课程的话,学号只显示一次)。
select distinct s_idfrom SC;d)查询选修课程号为07253001的学号和成绩,并要求对查询结果按成绩降序排列,如果成绩相同则按学号升序排列。
select*from SCwhere C_ID='07253001'order by EXAM_Grade desc,S_ID asc;e)查询所有学生的学号、姓名和年龄。
select s_id,s_name,year(GETDATE())-year(date_of_birth)from dbo.student;f)查询选修课程号为07253001的成绩在85-95之间的学生学号和成绩,并将成绩乘以0.7输出。
select S_id,exam_grade*0.7 as grade from SCwhere C_ID='07253001'and EXAM_Grade between 85 and 95;a)查询数学与信息技术学院(DEPT_ID为07)或物理与电子工程学院(DEPT_ID为09)姓张的学生的信息。
数据库实验四报告

《数据库原理与应用》实验报告实验名称:班级:学号:姓名:一、实验目的(1)了解Oracle数据库中的用户管理,模式,权限管理和角色管理。
(2)掌握为用户分配权限的方法。
(3)了解为不同用户分配不同权限的目的及原因。
二、实验过程1.用系统帐户sys登录数据库,分别创建数据库内部用户user_one和user_two,创建时自己为用户分配帐户口令。
语句:create user user_oneidentified by 123456default tablespace userstemporary tablespace tempquota unlimited on users;create user user_twoidentified by 123456default tablespace userstemporary tablespace tempquota unlimited on users;执行结果:2.为了使两位用户登录数据库请为其授予相应的权限。
语句:grant create session to user_one;grant create session to user_two;执行结果:3.授予用户user_one在自己模式下创建表的权限,在任何模式下删除表的权限,授予用户user_two可以在任何模式下创建表的权限,查询任何模式下表中数据的权限和在任何模式下创建视图的权限。
语句:grant create table,drop any table to user_one;grant create any table,create any view,select any table to user_two;执行结果:4.分别用user_one和user_two登录,写出相应的SQL语句验证为其授予的权限。
(如果建立的表中有主键约束,需要预先授予user_one和user_two用户create any index的权限。
数据库原理与应用实验报告四

计算机工程系实验报告学生信息系别计算机学院专业计算机科学与技术班级17计科2+2 姓名徐浩俊学号2017031601025实验信息课程名称数据库原理与应用实验名称实验4 数据操作实验时间指导教师文琦批改情况成绩评阅教师文琦实验目标:1.掌握各种录入数据至数据库表的方法。
2.掌握修改数据库表中数据的方法。
3.掌握删除数据库表中数据的方法。
4.掌握复制数据库表的方法。
实验结果:利用shiyan4.sql文件中的脚本生成相应的数据库及数据表。
1.根据实验3.1步骤完成从Eecel工作表(非SQL Server数据源数据)导入SQL Server数据库表的方法(注意学生表S结构已存在),回答以下问题。
①请从素材中选择自己班级的Excel表格,若表格不满足数据库中的关系则需要稍加修改,再将表里的数据导入学生表S中。
导入是否会遇到问题?如何解决?无法直接映射,需要修改表格。
只保留一行名称。
②请将最后导入在数据库的数据截图。
③有无更简单的方法?有,直接在编辑表中粘贴数据。
2.将数据库表T的数据交互式录入并截图说明。
(P46)3.请使用SQL语句完成数据库表C的数据录入,将相应的SQL语句及最终存储的数据截图说明。
可否用一条insert into语句一次插入多行数据,如有,请描述相应的SQL语句。
USE jxskGOINSERT INTO C VALUES('C1','程序设计','60')GOUSE jxskGOINSERT INTO C VALUES('C1','课程1','60'),('C1','课程2','80'),('C1','课程3','100')GO4.完成实验3.2后,思考利用SQL语句完成以下问题。
①现将信息系归为计算机系,数据表T中哪些数据需要修改,请使用SQL 语句完成,并将最终修改后的数据截图。
数据库系统原理实验报告册(带答案)

河南工程学院计算机科学与工程系数据库系统原理实验报告册学期:课程:专业:班级:学号:姓名:指导教师:目录实验一 SQL Server 2000安装、数据库创建及管理 (1)一、实验学时 (1)二、实验目的 (1)三、实验内容 (1)四、实验要求 (13)五、代码清单 (13)六、实验中出现的问题及解决的方法 (15)七、思考讨论题或体会或对改进实验的建议 (16)实验二表和表数据的操作 (17)一、实验学时 (17)二、实验目的 (17)三、实验内容 (17)四、实验要求 (22)五、代码清单 (22)六、实验中出现的问题及解决的方法 (24)七、思考讨论题或体会或对改进实验的建议 (25)实验三索引和视图 (26)一、实验学时 (26)二、实验目的 (26)三、实验内容 (26)四、实验要求 (31)五、代码清单 (31)六、实验中出现的问题及解决的方法 (33)七、思考讨论题或体会或对改进实验的建议 (34)实验四 T-SQL程序设计 (35)一、实验学时 (35)二、实验目的 (35)三、实验内容 (35)四、实验要求 (39)五、代码清单 (39)六、实验中出现的问题及解决的方法 (41)七、思考讨论题或体会或对改进实验的建议 (42)实验五数据库安全性 (43)一、实验学时 (43)二、实验目的 (43)三、实验内容 (43)四、实验要求 (46)五、代码清单 (47)六、实验中出现的问题及解决的方法 (49)七、思考讨论题或体会或对改进实验的建议 (49)实验六数据库完整性 (51)一、实验学时 (51)二、实验目的 (51)三、实验内容 (51)四、实验要求 (54)五、代码清单 (54)六、实验中出现的问题及解决的方法 (56)七、思考讨论题或体会或对改进实验的建议 (57)实验一 SQL Server 2000安装、数据库创建及管理一、实验学时:2学时二、实验目的(1)了解安装SQL Server2000的硬件和软件环境。
《数据库实验四》实验报告

insert into v_cus values('C012','Google')
--在视图上更新
update v_order set订购日期='2011-11-29'
--在视图上删除
delete from v_cus
where客户号='C012'
《数据库》实验报告
题目:视图的定义和操作
学号
姓名
日期:
实验内容与完成情况:
一、实验目的:理解视图的概念,掌握视图的使用方法。
二、实验内容:定义视图,并在视图上完成查询、插入、更新和删除操作。
三.、程序源代码:
--1
--1)、基于单个表按投影操作定义视图
create view v_cus as
select客户号,客户名称
from客户
--使用
select * from v_cus
--2)、基于单个表按选择操作定义视图
create view v_order as
select *
from订购单
where客户号='C001'
--使用
select * from v_order
--3)、基于单个表按选择和投影操作定义视图
create view v_cuss as
select客户名称,联系人,电话
from客户
where客户号='C003'
--使用
select * from v_cuss
--4)、基于多个表根据连接操作定义视图
create view v_join as
t客户.*,订单号,订购日期
数据库原理实验报告(Mysql)

实验项目列表实验一:数据库的定义实验一、实验目的:1、理解MySQL Server 6.0 服务器的安装过程和方法;2、要求学生熟练掌握和使用SQL、T-SQL、SQL Server Enterpriser Manager Server 创建数据库、表、索引和修改表结构,并学会使用SQL Server Query Analyzer,接收T-SQL语句和进行结果分析。
二、实验环境:硬件:PC机软件:Windows操作系统、 MySQL Server 6.0 和Navicat for MySQL 9.0三、实验内容和原理:1、安装MySQL以及相应的GUI工具2、用SQL命令,建立学生-课程数据库基本表:学生Student(学号Sno,姓名Sname,年龄Sage,性别Ssex,所在系Sdept);课程Course(课程号Cno,课程名Cname,先行课Cpno,学分Ccredit);选课SC(学号Sno,课程号Cno,成绩Grade);要求:1) 用SQL命令建库、建表和建立表间联系。
2) 选择合适的数据类型。
3) 定义必要的索引、列级约束和表级约束.四、实验步骤:1、运行Navicat for MySQL,然后进行数据库连接,进入到GUI界面;2、利用图形界面建立基础表:student表的信息:Sage smallint 6Sdept varchar 20course表的信息:字段名类型长度约束条件Cno varchar 4 非空、主键Cname varchar 40Cpno varchar 4 与course表中Cno关联Ccredit smallint 6sc表的信息:字段名类型长度约束条件Sno varchar 9 非空、主键、与student表中Sno外键关联,级联删除Cno varchar 4 非空、主键、与course表中Cno外键关联Grade smallint 6(1)、连接数据库,在localhost中点击鼠标右键(如图1所示),点击“新建数据库”,在弹出的窗口中输入数据库名称(如图2所示),然后单击“确定”,就完成了数据库的建立。
- 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
- 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
- 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
南京晓庄学院《数据库原理与应用》课程实验报告实验四查询设计实验所在院(系):数学与信息技术学院班级:学号:姓名:1.实验目的(1)了解查询的目的,掌握SELECT语句的基本语法和查询条件的表示方法。
(2)掌握数据排序和数据联接查询的方法。
(3)掌握SQL Server查询分析器的使用方法。
2.实验要求(1)针对“TM”数据库,在SQL Server查询分析器中,用T-SQL语句实现以下单表查询操作,并将将调试成功的T-SQL命令,填入实验报告中。
a)查询所有课程的详细情况。
b)查询来自江苏或山东的学生学号和姓名,并以中文名称显示输出的列名。
c)查询选修了课程的学生学号(一人选了多门课程的话,学号只显示一次)。
d)查询选修课程号为07253001的学号和成绩,并要求对查询结果按成绩降序排列,如果成绩相同则按学号升序排列。
e)查询所有学生的学号、姓名和年龄。
f)查询选修课程号为07253001的成绩在85-95之间的学生学号和成绩,并将成绩乘以0.7输出。
g)查询数学与信息技术学院(DEPT_ID为07)或物理与电子工程学院(DEPT_ID为09)姓张的学生的信息。
h)查询所有核心课程(课程名中带*的)的情况。
i)查询缺少了成绩的学生的学号和课程号,查询结果按课程号升序排列。
(2)在SQL Server查询分析器中,用T-SQL语句实现下列数据联接查询操作:a)查询每个学生的情况以及他(她)所选修的课程。
b)查询学生的学号、姓名、选修的课程名及成绩。
c)查询选修C语言程序设计且成绩为85分以上的学生学号、姓名及成绩。
d)查询和学生柏文楠是同一个民族的学生(用自身联接实现)。
e)分别用等值联接和内联接查询有授课记录的老师的姓名。
f)用外联接查询所有老师的授课情况,输出老师的工号、姓名、职称、院系、担任的课程号和授课的学期,结果按院系和职称升序排列。
如果该老师没有授课历史,在课程号和授课的学期中显示空值(3)在SQL Server Management Studio中新建查询,完成以上查询命令的同时,熟悉SQL编辑器工具栏中各快捷按钮的作用。
(4)按要求完成实验报告。
3.实验步骤、结果和总结实验步骤/结果将调试成功的T-SQL语句写在下方(标明题号)。
一、针对“TM”数据库,在SQL Server查询分析器中,用T-SQL语句实现以下单表查询操作,并将将调试成功的T-SQL命令,填入实验报告中。
(a)查询所有课程的详细情况:select * from Course表1-a(b)查询来自江苏或山东的学生学号和姓名,并以中文名称显示输出的列名。
SELECT S_ID as 学号,S_Name as 姓名FROM STUDENTWHERE Birth_Place='江苏' or Birth_Place='山东'表1-b(c)查询选修了课程的学生学号(一人选了多门课程的话,学号只显示一次)。
select distinct S_ID from sc表1-c(d)查询选修课程号为07253001的学号和成绩,并要求对查询结果按成绩降序排列,如果成绩相同则按学号升序排列。
select S_ID,EXAM_Grade from scwhere C_ID='07253001'order by EXAM_Grade desc,S_ID asc表1-d(e)查询所有学生的学号、姓名和年龄。
SELECT S_ID,S_NAME, year(getdate())-year(Date_of_Birth) as 年龄 FROM Student表1-e(f)查询选修课程号为07253001的成绩在85-95之间的学生学号和成绩,并将成绩乘以0.7输出。
Select S_ID,EXAM_Grade*0.7 as grade from SCwhere C_ID='07253001'and EXAM_Grade between 85 and 95表1-f(g)查询数学与信息技术学院(DEPT_ID为07)或物理与电子工程学院(DEPT_ID为09)姓张的学生的信息。
select *from Student where DEPT_ID in ('07', '09') and S_Name like '张%'表1-g(h)查询所有核心课程(课程名中带*的)的情况。
SELECT * FROM Course WHERE C_Name like '%*%'表1-h(i)查询缺少了成绩的学生的学号和课程号,查询结果按课程号升序排列。
select S_ID,C_ID from SC where EXAM_Grade IS NULLorder by C_ID表1-i二、在SQL Server查询分析器中,用T-SQL语句实现下列数据联接查询操作:(a)查询每个学生的情况以及他(她)所选修的课程。
Select Student.S_ID, S_Name,Gender, Birth_Place,DEPT_ID, Class_ID,Course.C_name from Student join SC on Student.S_ID=SC.S_ID join Course on Course.C_ID=SC.C_ID表2-a(b)查询学生的学号、姓名、选修的课程名及成绩。
select Student.S_ID, S_Name,C_Name, EXAM_Gradefrom Student inner join SC on Student.S_ID=SC.S_ID inner join Course on SC.C_ID=Course.C_ID表2-b(c)查询选修C语言程序设计且成绩为85分以上的学生学号、姓名及成绩。
Select Student.S_ID,S_NAME,EXAM_Grade from Student,SC,Coursewhere Student.S_ID=SC.S_ID and Course.C_ID=SC.C_ID and C_Name='C语言程序设计' and EXAM_Grade>=85表2-c(d)查询和学生柏文楠是同一个民族的学生(用自身联接实现)。
SELECT S_Name from Studentwhere Nationality=(select Nationality from Student where S_Name='柏文楠')表2-d(e)分别用等值联接和内联接查询有授课记录的老师的姓名。
等值联接select DISTINCT T_Name fromTeacher inner join TC on Teacher.T_ID=TC.T_ID内联接select DISTINCT T_Name from Teacher,TC where Teacher.T_ID=TC.T_ID表2-e(f)用外联接查询所有老师的授课情况,输出老师的工号、姓名、职称、院系、担任的课程号和授课的学期,结果按院系和职称升序排列。
如果该老师没有授课历史,在课程号和授课的学期中显示空值。
select Teacher.T_ID,Teacher.T_Name,Teacher.Academic_Title,Department.DEPT_Name,TC.C_ID,TC.Semesterfrom Teacher Right join TC on Teacher.T_ID=TC.T_ID join Department ONDepartment.DEPT_ID=Teacher.DEPT_IDorder by Department.DEPT_Name , Teacher.Academic_Title表2-f4.实验思考:①联接查询中,输出列名时何时可以忽略列名前的表名,何时不能?完整写法:表名.列名若选择的字段名在各个表中是唯一的,则可以省略字段名前的表名。
②联接查询中,INNER JOIN、LEFT OUTER JOIN 、RIGHT OUTER JOIN、FULL OUTER JOIN 的结果各有什么不同?INNER JOIN :Inner join 产生的结果集中,是A和B的交集SELECT * FROM TableA INNER JOIN TableB ON = LEFT OUTER JOIN:(1) Left outer join 产生表A的完全集,而B表中匹配的则有值,没有匹配的则以null 值取代。
SELECT * FROM TableA LEFT OUTER JOIN TableB ON = (2) 产生在A表中有而在B表中没有的集合。
SELECT * FROM TableA LEFT OUTER JOIN TableB ON = WHERE TableB.id IS nullRIGHT [OUTER] JOINRIGHT OUTER JOIN 是后面的表为基础,与LEFT OUTER JOIN用法类似。
FULL [OUTER] JOIN(1) Full outer join 产生A和B的并集。
但是需要注意的是,对于没有匹配的记录,则会以null做为值。
可以使用IFNULL判断。
SELECT * FROM TableA FULL OUTER JOIN TableB ON = (2)产生A表和B表没有交集的数据集。
SELECT * FROM TableA FULL OUTER JOIN TableB ON = WHERE TableA.id IS null OR TableB.id IS null③LIKE匹配字符有几种?如果要检索的字符中包含匹配字符,该如何处理?LIKE通配符及实例通配符说明实例%表示包含零个或多个字符的任意字符串。
where title like '%computer%' 将查找在书名中任意位置包含单词 "computer" 的所有书名。
_(下划线)表示任何单个字符。
where au_fname like '_ean' 将查找以 ean 结尾的所有 4 个字母的名字(dean、sean 等)。
[]指定范围 ([a-f]) 或集合 ([abcdef]) 中的任何单个字符。
where au_lname like '[c-p]arse n' 将查找以 arsen 结尾并且以介于 c 与 p 之间的任何单个字符开始的作者姓氏,例如 carsen、lars en、karsen 等。