数据库实验报告(实验五)

实验五 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日汇总交人力资源部,逾期未交的加班记录公司不予承认。

数据库原理实验报告(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 6 Sdept varchar 20 course表的信息: 字段名类型长度约束条件 Cno varchar 4 非空、主键 Cname varchar 40 Cpno varchar 4 与course表中Cno关联 Ccredit smallint 6 sc表的信息: 字段名类型长度约束条件 Sno varchar 9 非空、主键、与student表中Sno 外键关联,级联删除 Cno varchar 4 非空、主键、与course表中Cno 外键关联 Grade smallint 6 (1)、连接数据库,在localhost中点击鼠标右键(如图1所示),点击“新建数据库”,在弹出的窗口中输入数据库名称(如图2所示),然后单击“确定”,就完成了数据库的建立。

实验5实验报告

学号:20164477 姓名:陈家凤 实验五SQL语言 一、目的与要求 1.掌握SQL语言的查询功能; 2.掌握SQL语言的数据操作功能; 3.掌握对象资源管理器建立查询、索引和视图的方法; 二、实验准备 1.了解SQL语言的查改增删四大操作的语法; 2.了解查询、索引和视图的概念; 3.了解各类常用函数的含义。 三、实验内容 (一)SQL查询功能 使用提供的studentdb数据库文件,先附加到目录树中,再完成下列题目,SQL命令请保存到脚本文件中。 1.基本查询 (1)查询所有姓王的学生的姓名、学号和性别 Select St_Name,St_Sex,St_ID From st_info Where St_Name like'王%' 图5-1 (2)查询全体学生的情况,查询结构按班级降序排列,同一班级再按学号升序, 并将结果存入新表new中 select*into new from st_info order by Cl_Name desc,st_ID asc

图5-2 (3)对S_C_info表中选修了“体育”课的学生的平均成绩生成汇总行和明细 行。(提示:用compute汇总计算) 因2014版本已不支持compute关键字,所以选择用其他方式。 Select c_no,score From s_c_info Where c_no=29000011 group by c_no,score 图5-3 2.嵌套查询 (1)查询其他班级中比“材料科学0601班”的学生年龄都大的学生姓名和年 龄 select st_name,born_date from st_info where cl_name!='材料科学0601班'and born_date<(select min(born_date) from st_info where cl_name='材料科学0601班')

实验五 SQL Server安全性管理

实验五SQL Server数据库安全性管理 实验目的:理解SQL Server 2000的两种登录认证模式;掌握SQL Server 2000中有关用户、角色及操作权限的管理方法。 背景知识: 对任何企业组织来说,数据的安全性最为重要。安全性主要是指允许那些具有相应的数据访问权限的用户能够登录到SQL Server,并访问数据以及对数据库对象实施各种权限范围内的操作,但是要拒绝所有的非授权用户的非法操作。因此安全性管理与用户管理是密不可分的。SQL Server 2000 提供了内置的安全性和数据保护,并且这种管理有效而又容易。 SQL Server 2000 的安全性管理是建立在认证(authentication)和访问许可(permission)两者机制上的。认证是用来确定登录SQL Server 的用户的登录账号和密码是否正确,以此来验证其是否具有连接SQL Server 的权限。但是通过认证阶段并不代表该用户能够访问SQL Server 中的数据,用户只有在获取访问数据库的权限之后,才能够对服务器上的数据库进行权限许可下的各种操作(主要是针对数据库对象,如表、视图、存储过程等),这种用户访问数据库权限的设置是通过用户账号来实现的,同时在SQL Server 中,角色作为用户组的代替物大大地简化了安全性管理。 数据库的安全管理主要是对数据库用户的合法性和操作权限的管理。数据库用户(在不至于引起混淆的情况下简称用户)是指具有合法身份的数据库使用者,角色是具有一定权限的用户组。SQL Server的用户或角色分为二级:一级为服务器级用户或角色;另一级为数据库级用户或角色。 SQL Server的安全性管理包括以下几个方面:数据库系统登录管理、数据库用户管理、数据库系统角色管理以及数据库访问权限的管理。 一、SQL Server 2000版本: Microsoft公司于2000年9月布了SQL Server 2000,其中包括企业版(Enterprise Edition)、标准版(Standard Edition)、开发版(Developer Edition)、个人版(Personal Edition)四个版本。 它们的各自特点如下: ◆企业版提供了最多的功能特性和最佳的性能,适用于大规模的企业生产应用 环境。 ◆标准版的功能相对少一些,比较适合于中小规模的企业生产应用环境。 ◆开发版拥有企业版中的绝大多数功能特性,但它只能用于开发和测试,而不 能用在生产环境中。 ◆个人版的功能和标准版类似,但在扩展性上有一定限制,如最多只能利 用两个CPU、并发连接数超过5个时性能会有显著下降等。个人版通常适用于经常断开网络连接而又需要访问数据库的移动办公用户。另外,个人版不单独出售,而只能随企业版或标准版一同获得。

数据库实验5 视图操作

实验五视图操作(2学时) 【实验目的】 1. 学会使用SQL语句创建和使用视图,加深对视图和SQL Server基表作用的理解。 2. 了解数据库安全控制的机制,以及自主存取控制方法。 【实验要求】 1.掌握创建、修改视图的SQL语句的用法。 2.掌握使用企业管管理器创建、修改视图的方法。 3.掌握查看视图的系统存储过程的用法。 4.掌握视图的使用方法。 5.掌握SQL有关用户、角色及操作权限的管理方法。 【实验内容】 一、视图操作 (一)定义视图 以Student 、Course表为基础完成以下视图定义。 1.定义计算机系学生基本情况视图V_Computer。 2.将Student Course 和Student_course表中学生的学号,姓名,课程号,课程名,成绩定义为视图V_S_C_G。 3.将各系学生人数,平均年龄定义为视图V_NUM_AVG。 4.定义一个反映学生出生年份的视图V_YEAR。 5.将各位学生选修课程的门数及平均成绩定义为视图V_A VG_S_G。 6.将各门课程的选修人数及平均成绩定义为视图V_A VG_C_G。 (二)使用视图 1. 查询以上所建的视图结果。 2. 查询平均成绩为90分以上的学生学号、姓名和成绩。 3. 查询各课成绩均大于平均成绩的学生学号、姓名、课程和成绩。 4. 按系统计各系平均成绩在80分以上的人数,结果按降序排列。 (三)修改视图 1. 通过视图V_IS,分别将学号为“S1”和“S4”的学生姓名更改为“S1_MMM”,”S4_MMM” 并查询结果。 2. 通过视图V_IS,新增加一个学生记录('S12','YAN XI',19,'IS'),并查询结果。 3. 通过视图V_IS,新增加一个学生记录('S13','YAN XI',19,'MA'),并查询结果。 4. 通过视图V_IS,删除学号为“S12”和“S3”的学生信息,并查询结果。 5. 要通过视图V_S_C_G,将学号为“S12”的姓名改为“S12_MMM”,是否可以实现?并说明原因。 6. 要通过视图V_A VG_S_G,将学号为“S1”的平均成绩改为90分,是否可以实现?并说明原因。 二、数据库安全性控制 1.在企业管理器中为所属的SQL服务器设置Windows NT安全认证模式。 2.在企业管理器中为自己建立一个服务器用户、数据库用户和数据库角色。并将自己创建的学生库所有操作权赋予它们,将自设计的数据库的操作权赋予新建的数据库用户。

存储过程和触发器(数据库实验5)

数据库基础与实践实验报告实验五存储过程和触发器 班级:惠普测试142 学号:1408090213 姓名:闫伟明 日期:2016-11-14

1 实验目的: 1)掌握SQL进行存储过程创建和调用的方法; 2)掌握SQL进行触发器定义的方法,理解触发器的工作原理; 3)掌握触发器禁用和重新启用的方法。 2 实验平台: 操作系统:Windows xp。 实验环境:SQL Server 2000以上版本。 3 实验内容与步骤 利用实验一创建的sch_id数据库完成下列实验内容。 1.创建存储过程JSXX_PROC,调用该存储过程时可显示各任课教师姓名及其所教课程名称。 存储过程定义代码: CREATE PROCEDURE JSXX_PROC AS SELECT tn 教师姓名,cn 所教课程FROM T,TC,C WHERE T.tno=TC.tno AND https://www.360docs.net/doc/0019502402.html,o=https://www.360docs.net/doc/0019502402.html,o 存储过程执行语句与执行结果截图: EXECUTE JSXX_PROC 2.创建存储过程XM_PROC,该存储过程可根据输入参数(学生姓名)查询并显示该学生的学号、 所学课程名称和成绩;如果没有该姓名学生,则提示“无该姓名的同学”。 存储过程定义代码:

CREATE PROCEDURE XM_PROC @sname VARCHAR(100) AS BEGIN IF EXISTS(SELECT NULL FROM S WHERE sn=@sname) SELECT S.sno 学号,cn 课程,score 成绩FROM S,SC,C WHERE https://www.360docs.net/doc/0019502402.html,o=https://www.360docs.net/doc/0019502402.html,o AND SC.sno=S.sno AND S.sn=@sname ELSE PRINT'无该姓名的同学。' END 运行截图: 3.创建存储过程XBNL_PROC,该存储过程可根据输入参数(专业名词,默认值为计算机专业), 统计并显示该专业各年龄段男、女生人数。如果没有该专业,则显示“无此专业”。 存储过程定义代码: CREATE PROCEDURE XBNL_PROC @departName VARCHAR(30)='计算机', @begin INT, @end INT AS

数据库实验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号课程的同学的学号与姓名; 补充题目: 1)显示选修02号课程的成绩前两名的学生学号及成绩。 2)显示选修各个课程的及格的人数,及格比率; 3)显示各个院系男女生人数,其中在结果集中列标题分别指定为“院系名称、男生人数、女生人数”; 4)列出有二门以上课程(含两门)不及格的学生的学号及该学生的平均成绩;5)显示选修课程数最多的学号及选修课程数最少的学号;

数据库实验五 表连接查询

实验五表连接查询 1.查找每一个供应商供应的商品的名称,要求显示供应商名称和商品名称。 select Sname,Cname from supplier,commodity,supplying where supplier.Sid=supplying.Sid and commodity.Cid=supplying.Cid 2.使用连接查询查找与姓名为‘李云’的采购员签订采购单的供应商的名称。 select distinct(sname) from stock,Employee,supplier where stock.Eid=Employee.Eid and stock.Sid=supplier.Sid and Ename like'李云' 3.使用关键字IN完成查询,要求查找与姓名为‘李云’的采购员签订采购单的供应商的名称。 select Sname from supplier where Sid in (select Sid from stock where Eid in (select Eid from Employee where Ename='李云') ) 4.使用左外连接完成如下查询:要求查找所有采购员签订的采购合同的详细信息。 select * from Employee left outer join stock on Employee.Eid=stock.Eid 5.使用左外连接完成如下查询:查找所有客户购买的商品详细信息,要求显示客户名称,商品名称,销售数量,商品单价,没有购买商品的客户也要显示。 select CUname,Cname,SDnumber,SDprice from customer left outer join sale on customer.CUid=sale.CUid left outer join saleDetail on sale.SAid=saleDetail.SAid left outer join commodity on saleDetail.cid=commodity.cid

数据库实验五六1

实验五视图、索引及数据更新 一、实验目的: 熟练掌握索引的建立与删除的方法,熟练掌握SQL的应用, 熟练掌握数据插 入、修改和删除的使用,为后继学习作准备。 二、实验属性(验证性) 1.了解并掌握SQL查询分析器及企业管理器的使用; 2.掌握基本表的定义、删除与修改。 三、实验原理 SQL语言应用。 四、实验步骤: (1) 启动Oracle的SQL Developer或者SQL Plus,或者SQL Server 查询分析器; (2) 对于Oracle11g的SQL Plus需要进行登录,对于Oracle11g的SQL Developer需要进行建立连接。 1 建立索引 建立唯一索引: 例3.1 为学生选课数据库中的Students,Courses,SC三个表建立索引。其中Students表按Sname升序建唯一索引,Courses表按Cname升序建唯一索引,SC表按Sno(学号)升序和Cno(课程号)号降序建唯一索引。

查看自己建立的索引: 2 删除索引 例3.2 删除基本表SC上的Rep_SCno索引。 然后查询看索引是否还存在。理解索引的意义。 例3.3 删除基本表student上的Rep_Sno索引。 3 建立视图 例3.4 建立数学系学生的视图C_Student,并要求进行修改和插入操作时仍需保证该视图只有数学系的学生,视图的属性名为Sno,Sname,Sage,Sdept。

例3.5 建立学生的学号(Sno)、姓名(Sname)、选修课程名(Cname)及成绩(Grade)的视图Student_CR。 例 3.6定义一个反映学生出生年份的视图student_birth(sno,sname,s_birth,ssex,sdept)。 视图建立后,使用命令查询自己创建的视图: 4 查询视图 例3.7 在数学系的学生视图C_Student中找出年龄(Sage)小于20岁的学生姓名(Sname)和年龄(Sage)。

上海应用技术学院-数据库-实验五

上海应用技术学院-数据库- 实验五(总4页) -CAL-FENGHAI.-(YICAI)-Company One1 -CAL-本页仅作为文档封面,使用请直接删除

《数据库原理及应用》课程实验报告

四、实验结果与分析 1.(1)select count(distinct cno)from sc (2)select avg(age)from s,sc where s.sno=sc.sno and cno='4' (3)select avg(score)from c,sc where https://www.360docs.net/doc/0019502402.html,o=https://www.360docs.net/doc/0019502402.html,o and ct='3' (4)select distinct cno,count(cno)选修人数from sc group by cno having count(cno)>3 order by count(cno)desc,cno (5)select sn,age from s where sex='男' and age>(select avg(age)from s where sex='女')

(6)select sn,age from s where sex='男' and age>all(select age from s where sex='女') 2.(1)select spj.pn from spj where spj.jn in(select jn from j where j.city='上海')and spj.sn in(select sn from s where s.city='上海') (2)select distinct jn from spj where jn not in(select spj.jn from s,spj where s.sn=spj.sn and s.city ='上海') (3)select distinct jn from spj where sn='s1' (4)select distinct s.city, j.city from s,p,j,spj where s.sn=spj.sn and j.jn=spj.jn

数据库技术与应用实验五

实验5 索引和视图 1.实验目的 (1)掌握使用SQL Server管理平台和Transact-SQL语句CREATE INDEX创建 索引的方法。 (2)掌握使用SQL Server管理平台查看索引的方法。 (3)掌握使用SQL Server管理平台和Transact-SQL语句DROP INDEX删除索 引的方法。 (4)掌握使用SQL Server管理平台和Transact-SQL语句CREATE VIEW创建 视图的用法。 (5)了解索引和视图更名的系统存储过程sp_rename的用法。 (6)掌握使用Transact-SQL语句ALTER VIEW修改视图的方法。 (7)了解删除视图的Transact-SQL语句DROP VIEW的用法。 2.实验内容及步骤 (1)分别使用SQL Server管理平台和Transact-SQL语句为studentsdb数据库的student_info表和curriculum表创建主键索引。 (2)使用SQL Server管理平台按curriculum表的课程编号列创建唯一性索引。(3)分别使用SQL Server管理平台和Transact-SQL语句为studentsdb数据库的grade表的“分数”字段创建一个非聚集索引,命名为grade_index。 CREATE INDEX grade_index ON grade(分数) (4)为studentsdb数据库的grade表的“学号”和“课程编号”字段创建一个复合唯一索引,命名为grade_id_c_ind。 CREATE UNIQUE INDEX grade_id_c_ind ON grade(学号,课程编号) (5)分别使用SQL Server管理平台和系统存储过程sp_helpindex查看grade 表和student_info表上的索引信息。 sp_helpindex grade (6)使用SQL Server管理平台对grade表创建一个聚集索引和唯一索引。(7)使用系统存储过程sp_rename将索引grade_index更名为grade_ind。 sp_rename 'grade.grade_index','grade_ind','INDEX' (8)分别使用SQL Server管理平台和Transact-SQL语句DROP INDEX删除索引grade_ind。再次使用系统存储过程sp_helpindex查看grade表上的索引信 息。 DROP INDEX grade.grade_ind (9)在studentsdb数据库中,以student_info表为基础,使用SQL Server 管理平台建立名为v_stu_i的视图,使视图显示学生姓名、性别、家庭住址。(10)在studentsdb数据库中,使用Transact-SQL语句CREATE VIEW建立一个名为v_stu_c的视图,显示学生的学号、姓名、所学课程的课程编号,并利用 视图查询学号为0003的学生情况。 (11)基于student_info表、curriculum表和grade表,建立一个名为v_stu_g 的视图,视图中具有所有学生的学号、姓名、课程名称、分数。使用视图v_stu_g 查询学号为0001的学生的所有课程与成绩,如图1-9所示。 图1-9 学号为0001的学生的视图信息 (12)分别使用SQL Server管理平台和Transact-SQL语句修改视图v_stu_c,

数据库实验五

实验五:数据库综合查询姓名:潘年品学号:120802010027 一、实验目的 1. 掌握SELECT语句的基本语法和查询条件表示方法; 2. 掌握查询条件种类和表示方法; 3. 掌握连接查询的表示及使用; 4. 掌握嵌套查询的表示及使用; 5. 了解集合查询的表示及使用。 二、实验环境 已安装DBMS的计算机; 具有局域网环境,有固定IP; 三、实验学时 2学时 四、实验要求 1. 了解SELECT语句的基本语法格式和执行方法; 2. 了解连接查询的表示及使用; 3. 了解嵌套查询的表示及使用; 4. 了解集合查询的表示及使用; 5. 完成实验报告; 五、实验内容及步骤 以数据库原理实验2数据为基础,请使用T-SQL 语句实现进行以下操作: 1.查询以‘数据_’开头,且倒数第3个字符为‘结’的课程的详细情况; 2.查询名字中第2个字为‘阳’的学生姓名和学号及选修的课程号、课程名; 3.列出选修了‘数学’或者‘大学英语’的学生学号、姓名、所在院系、选修课程号及成绩; 4. 查询缺少成绩的所有学生的详细情况; 5. 查询与‘张力’(假设姓名唯一)年龄不同的所有学生的信息; 6. 查询所选课程的平均成绩大于张力的平均成绩的学生学号、姓名及平均成绩; 7. 按照‚学号,姓名,所在院系,已修学分‛的顺序列出学生学分的获得情况。其中已修学分为考试已经及格的课程学分之和; 8. 列出只选修一门课程的学生的学号、姓名、院系及成绩; 9. 查找选修了至少一门和张力选修课程一样的学生的学号、姓名及课程号; 10. 只选修‚数据库‛和‚数据结构‛两门课程的学生的基本信息; 11. 至少选修‚数据库‛或‚数据结构‛课程的学生的基本信息; 12. 列出所有课程被选修的详细情况,包括课程号、课程名、学号、姓名及成绩; 13. 查询只被一名学生选修的课程的课程号、课程名; 14. 检索所学课程包含学生‘张向东’所学课程的学生学号、姓名; 15. 使用嵌套查询列出选修了‚数据结构‛课程的学生学号和姓名; 16. 使用嵌套查询查询其它系中年龄小于CS系的某个学生的学生姓名、年龄和院系; 17. 使用ANY、ALL 查询,列出其他院系中比CS系所有学生年龄小的学生; 18. 分别使用连接查询和嵌套查询,列出与‘张力’在一个院系的学生的信息; 19. 使用集合查询列出CS系的学生以及性别为女的学生名单;

实验五数据库应用程序的设计

对 birthday 实验五 数据库应用程序的设计 一、实验目的及要求 1. 综合运用数据库系统理论知识构建数据库。 2. 在 SQL Server 2000 环境中实现数据库及相关功能。 二、实验任务 设计、开发一个简单的管理信息系统(如人力资源管理系统,系统可自选) 三、操作要点 1. 设计人力资源管理系统的功能结构。 2. 使用 SQL Server 2000 数据库管理系统创建和管理该系统的后台数据库。 3. 使用 Delphi 编程语言 ( 也可自选其他编程语言 )进行该系统前台的开发。 四、注意事项 1)各模块功能的实现。 2)实验报告主要包括数据库的设计部分 五、实验学时: 4 学时(未完成部分在课下完成) 六、实验重点及难点 1. 系统功能结构的设计。 2. 数据库结构的设计。 3. 各模块界面的设计和功能的实现。 4. 尝试采用存储过程来实现所有对数据库的操作(包括查询、修改、增加、删除) 七、实验步骤 1. 存储过程及触发器 ( 1)建立 Employees ,department 表,对该表中的 departmentID 列建立索引; 按降 序, marriage 按升序建立索引; 对 idcard 建立唯一索引 create table Employees ( staffid varchar ( 8) primary key , idcard varchar ( 15), realname varchar ( 32 ) not null, username varchar ( 32 ) not null, sex char ( 2) not null, departmentID varchar ( 8) not null, marriage varchar ( 8), birthday datetime , education varchar ( 16), interest varchar ( 512 ), skill varchar ( 512 ), introduce varchar ( 1024 ) foreign key ( departmentID ) references department ( departmentID )) create table department ( departmentID varchar ( 8) primary key , deptname varchar ( 20),

MySQL实验报告

信息科学与技术系实验报告 实验课程名称: SQL语言基础实验 实验项目名称:索引和数据完整性 专业班级:专业级班 学号: 姓名: 指导教师: 时间: 2012 年 11 月 6 日 实验五索引和数据完整性 【目的与要求】 (1)掌握索引的使用方法。 (2)掌握数据完整性的实现方法。 【实验准备】 (1)了解索引的作用与分类。 (2)掌握索引的创建方法。

(3)理解数据完整性的概念及分类。 (4)掌握各种数据完整性的实现方法。 【实验内容】 一、创建索引 1. 使用CREATE INDEX语句创建索引。 (1)对YGGL数据库的Employees表中的DepartmentID列建立索引。 (2)在Employees表的Name列和Address列上建立复合索引。 (3)对Departments表上的DepartmentName列建立唯一性索引。 2. 使用ALTER TABLE语句向表中添加索引。 (1)向Employees表中的出生日期列添加一个唯一性索引,姓名和性别列上添加一个复合索引。

(2)假设Departments表中没有主键,使用ALTER TABLE语句将DepartmentID列设为主键。 3. 在创建表时创建索引。 创建与Departments表相同结构的表Departments1,将DepartmentName设为主键,DepartmentID上建立一个索引。 二、删除索引 1. 使用DROP INDEX语句删除表Employees上的索引depart_ind。 2. 使用ALTER TABLE语句删除Departments上的主键和索引Dep_ind。 三、数据完整性

数据库实验五:视图的应用

数据库实验五:视图的应用 一、实验目的与要求: 1.实验目的 (1)理解视图的概念; (2)掌握视图的使用方法。 (3)理解视图和基本表的异同之处。 2.实验要求 (1)参照实验五中完成的查询,按如下要求设计和建立视图: 1)基于单个表按投影操作定义视图。 2)基于单个表按选择操作定义视图。 3)基于单个表按选择和投影操作定义视图。 4)基于多个表根据连接操作定义视图。 5)基于多个表根据嵌套操作定义视图。 6)定义含有虚字段的视图。 (2)分别在定义的视图设计一些查询(包括基于视图和基本表的连接或嵌套查询)。 (3)在定义的视图上进行插入、更新和删除操作,分情况讨论哪些操作可以成功完成,哪些操作不能完成,并分析原因。 (4)在实验报告中要给出具体的视图定义要求和操作要求,并针对各种情况做出具体的分析和讨论。 二、实验内容 1、实验原理

(1)视图是用SQL SELECT查询定义的,创建视图命令格式如下: CREATE VIEW <视图名> AS (2)删除视图的命令格式如下: DROP VIEW <视图名> 2、实验步骤与结果 (1)调出SQL Server2005软件的用户界面,进入SQL SERVER MANAGEMENT STUDIO。 (2)输入自己编好的程序。 (3)检查已输入的程序正确与否。 (4)运行程序,并分析运行结果是否合理和正确。在运行时要注意当输入不同的数据时所得到的结果是否正确。 (5)输出程序清单和运行结果。 (1)参照实验五中完成的查询,按如下要求设计和建立视图: 1)基于单个表按投影操作定义视图。 create view v as select教师编号,姓名 from教师

数据库原理实验报告

计算机与信息学院 数据库原理实验报告 专业:计算机科学与技术班级:2012级本科班学号:07173 姓名: 指导教师: 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 SPJ ON (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 SPJ MODIFY FILE (NAME='SPJ_Data', SIZE=4,

实验5数据库的安全性控制(含答案)

实验五数据库的安全性控制 一、实验目的: 1. 通过实验加深对数据安全性的理解,并掌握SQL Server 中有关用户登录的认证以及管理办法; 2.通过实验加深对数据库存储控制机制的理解,通过自主存取控制进行权 限管理,熟悉 SQL Server 中角色管理; 3.通过实验加深对数据安全性的理解,熟悉视图机制在自主存取控制上的应用。 二、实验内容 1.设置 SQL Server 的混合安全认证模式。在SQL Server 中的对象资源管理器中设置安全认证模式。 2.在 SQL Server 中,利用“对象资源管理器”创建一个名为“U1”的登录用户和数据库用户,密码为111,并允许其登录S-T 数据库。

3.在 SQL Server中,利用代码创建一个名为“ U2”的登录用户,密码为 111;

其相应的数据库用户名为lucky ,并允许其登录S-T 数据库。 4.用“ u1”用户名登录后,执行对students表的查询操作,说明执行结果,并分析原因(建议:在启动一个SQL Server 2008窗口)。 分析:没有对u1 进行其他操作的授权,只能登录而不能进行插入,修改等操作 5.将 students表的操作权限select 和 insert 赋予数据库用户u1,并允许其向其它用户授权。

6.以“u1”用户名登录,执行对students和 teacher表的查询操作,将该运行结果进行分析。 分析:对比第 4 题,对 U1 进行授权后可以进行相应的操作 7.执行下列代码后,分析用户u2 能否对 s_t 数据库的 student 表进行 select 和 update操作,为什么?并用相应的语句验证。

相关主题
相关文档
最新文档