数据库实验《实验6》

合集下载

多媒体数据库实验6

多媒体数据库实验6

云南大学软件学院实验报告序号:实验老师:秦江龙课程名称:多媒体数据库系统设计实验实验名称:高级数据库设计学号:姓名:课程名称多媒体数据库系统设计实验实验项目高级数据库设计实验目的1.熟悉数据库建模工具Visio的使用。

2.采用Cr ow’s Feet数据库建模方法,绘制出下列各数据库的ER图。

实验内容(算法、程序、步骤和方法)a)用一个数据为记录Billy Bob的游船公司(Boats)出售的游船信息。

需要存储名称、成本、出售价格、长度、船幅(宽度)及所有游船的制造商。

Billy Bob还想记录所有帆船的桅杆高度和龙骨类型(固定的或可收缩的)。

数据库还必须为所有机动船存储引擎大小(单位为马力)和引擎类型(舷内的、舷外的、或内外均有的)。

b)Hip Threads是一个成衣零售商,他想用一个数据库记录产品信息。

需要为每个产品保存名称和零售价格。

Hip Threads还为套装产品提供特殊价格,这些套装是由单独的成衣组成的。

例如,男人的休闲套装可能是由衬衫、裤子和腰带组成的。

这些套装是经过深思熟虑的产品。

一个成衣产品(例如衬衫)可能包含于多个套装中。

c)Cray的Casual Catering(临时餐饮业)为大量活动提供餐饮服务。

Cray想要设计一个数据库来存储关于活动和在每个活动中供应的食物(被称为食谱)的信息。

数据库必须存储用于每个活动和在每个活动的食谱。

Cary目前使用计划表单来记录服务于每个活动的相关信息。

下图是其中的一个例子:Cary还要存储关于每个客户的一些基本信息,包括名字、地址和电话号码。

对于个人客户,需要存储客户的名和姓。

对于公司客户,需要记录公司的名字。

目前,Cary使用食谱信息卡片来记录必要的信息。

下图显示的是这样的一个卡片的例子。

注意,不必存储食谱的制作方法。

指标等级 A B C D功能完整程序质量按时检查提问回答检查时间总评成绩下图显示的是另一个食谱信息卡片。

注意这个食谱将来自另一个例子的食谱Tapenade作为其成分之一。

数据库完整性实验总结(必备6篇)

数据库完整性实验总结(必备6篇)

数据库完整性实验总结第1篇时间流水,短短的两周就流逝了,回想在这两周的实训生活,我从单一,片面的学习进入了全面,系统的学习,学好它更是一项大任务。

而对于如何学好它,光靠理论知识是远远不够的,_同志曾经就说过“实践是检验真理的唯一标准”!正如大师傅炒菜,知道炒菜的程序,主料、调料一清二楚,不真正掌勺,永远也成不了“大厨”。

而学校给我们提供了这样一个机会,让我们自己_掌勺_,使我们从实践中,加深了对数据库的理解。

经过这次的实训,我们对数据库有了更深的了解,从书面的明白到实践的理解,接触到了自己以前没有接触到的东西,并让我加深了数据库知识的学习和理解,也使我进一步了解数据库,这次实训可以为我们以后真正的实际数据库系统设计提供很好的借鉴。

更使我明白遇到什么挫折,不气馁,不放弃,勇于探索,才会让自己离成功越来越近!俗话说:知之为知之,不知为不知!不要不懂装懂,有什么不懂的要敢于向_知之者_请教!知识是慢慢积累而成的,我们学习不仅要学习理论知识,而实践也是非常重要的,只有当两者结合,才会获得收获!我们这次实习对我们的认识起到了很大的启发作用,使我们以后在接触数据库的过程中少走点弯路。

也使我们对人生和社会有了更清楚的认识,任何的成功都有艰辛和汗水铺出来的,没有那么多的意外收获。

我们要学的还有很多,要接触的还不知道有多少,以后的路还很漫长,我相信我会更加努力的,把握现在,为自己的未来而奋斗,展开双翅飞向美好的未来!在这里很感谢xxx老师给我们传授了这么多的知识和经验,让我们在毕业之际更好的填补自己的不足。

数据库完整性实验总结第2篇在学习《数据库原理及应用》这门课之前,就和课本上提到的一个观点一样,认为它只是存放数据的仓库而已,但是现在我深深体会到这个观点是多么的片面。

数据库是长期存储在计算机内,有组织、可共享的大量的数据集合,前者只能表达它的一方面而已。

数据库技术发展到今天已经是一门非常成熟的技术,它的技术水平、应用水平多比初始时都有了很大的改变,但是它的最基本的特征却没有变,概括起来有以下几个方面:第一点:数据库是相互关联的的数据集合;即在数据库中不仅要能够表示数据本身,还要能够表示数据与数据之间的关系。

oracle实验6

oracle实验6
JOB Raise
-----------------------
Clerk 500
Salesman 1000
Analyst 1500
Otherwise 2000
编写一个程序块,接受一个雇员名,从emp1表(先创建)中实现上述加薪处理。
4、用户给定一个季度的数值(合法输入为1,2,3,4),然后使用if语句判断它所包含的月份信息并输出。
5、编写一个程序块,求1到50之间的奇数和。
6、为dept表增加50-80这4个部门编号。(循环语句实现)
7、查询员工的编号、姓名、雇佣日期,以及计算每一位员工到今天为止被雇佣的年数和月数。
8、查询员工的姓名,工资,并增加一列薪酬等级,如:员分析(实验总结(请将有疑问的题目和自己的答案粘贴此处。可不写)):
五:思考题:

六、教师评语:
学院
《oracle数据库设计》实验报告
实验名称:
实验6 PL/SQL编程
一、实验目的:
[实验目的和要求]
1、学习PL/SQL的基本概念;
2、掌握PL/SQL特殊数据类型;
3、掌握PL/SQL的流程控制结构;
4、了解PL/SQL的异常处理。
二、实验环境:
1、计算机,局域网,oracle 11g软件
三、实验内容和要求:(直接将实验步骤及截图写在题目下面)
1、编写一个程序块,接受用户输入一个部门号,从dept表中显示该部门的名称与所在位置。当输入的部门号不存在时,引发一个预定义异常。
2、编写一个程序块,利用%type属性,接受用户输入一个雇员号,从emp表中显示该雇员的整体薪水(即,薪水加佣金)。
3、某公司要根据雇员的职位来加薪,公司决定按下列加薪结构处理:

数据库实验6

数据库实验6

云南大学软件学院实验报告实验6 数据库完整性实验6-1 完整性约束1、创建规则(用图形或者语句方法创建)(1)创建入学日期规则“Enter_University_date_rule”,假定该学校于1923年4月30日创建。

要求:入学日期必须大于等于学校创建日期,并且小于等于当前日期(2)创建学生年龄规则“Age_rule”。

要求:学生年龄必须在15~30岁之间(3)创建学生性别规则“Sex_rule”。

要求:性别只能为“男”或“女”(4)创建学生成绩规则“Score_rule”。

要求:学生成绩只能在0~100之间(5)用图形方法查看学生成绩规则“Score_rule”,截图为:(6)用语句方法查看学生成绩规则“Score_rule”,语句为:2、删除规则Enter_University_date_rule3、创建默认(用图形或者语句方法创建)(1)创建默认时间“Time_default”为当前系统时间(2)创建默认入学年龄“Age_default”为18岁(3)用图形方法查看默认入学年龄“Age_default”,截图为:(4)用语句方法查看默认入学年龄“Age_default”,语句为:4、删除默认入学年龄“Age_default”5、创建声明式默认:在创建表的过程中创建声明式默认(1)创建表“default_example”,表中包含字段pid、name、sex、age。

要求设定sex的默认值为“男”、age的默认值为18。

(2)在表中增加新的默认,将编号默认为100。

插入一条记录,执行结果为:6、在“学生管理数据库”各个数据表中建立相应的主键、外键、惟一值、以及check约束,要求:学生的年龄必须是两位数,其中第一位是1或2:删除check 约束:7、完成教科书456页如下习题:[7.1]a:实验6-2 触发器1、使用触发器(1)创建一个触发器trig_update,返回对“学生表”进行更新操作后,被更新的记录条数(2)执行触发器(3)修改触发器trig_update,除返回被更新的记录条数外,再返回学生的所有基本信息2、使用触发器的两个特殊表:插入表(inserted)和删除表(deleted)。

数据库原理综合实验报告

数据库原理综合实验报告

实验六数据库原理综合实验1实验目的(1)运用所学的数据库设计技术,针对一个具体的应用系统,完成系统数据库的概念模型、逻辑模型和物理模型的设计。

以巩固理论课程上所学的知识,更好地掌握数据库设计技术方法。

(2)对前面章节所学的知识加以综合应用。

2实验内容给定一个应用环境,如学生选课系统、超市管理系统、某企业库存管理系统、学校图书管理系统、学校综合积分管理系统等等。

(同学们课从上述选定一个题目,也可以选取一个自己较熟悉的应用环境)。

完成下面的工作2.1 数据库概念模型设计(1)进行需求分析。

-对系统的语义进行描述(包括功能、所需的数据及他们之间的关系和处理方法)(2)识别系统中的实体及实体的属性,分析实体之间的联系。

(3)设计数据库概念模型,画出E-R图。

2.2 数据库逻辑模型设计(1)根据数据库概念模型设计数据库的逻辑模型。

-将E-R模型转化到逻辑模型(2)根据应用需要和规范化理论对逻辑模型进行优化。

2.3 数据库物理模型设计(1)针对某种DBMS,设计数据库物理模型,包括表空间、表和索引等于物理存储有关的设计。

(2)优化物理模型(3)生成某种DBMS的SQL语句,创建数据库及其表。

2.4 装载数据(1)收集真实数据或者生成模拟数据。

(2)批量加载数据到数据库中。

(3)设计一系列SQL语句,尤其是连接查询、嵌套查询等SQL语句,以测试数据库性能。

3实验要求(1)可以借助POWERDESIGNER等系统分析与设计辅助工具进行数据库设计,也可以使用WORD文件直接生成各种设计文档。

(2)选择的数据库应用系统应该规模适中,不宜太大太复杂,可能做不完;也不宜太小太简单,甚至仅有三两个表组成。

(3)要设计良好的数据库完整性约束。

(4)思考题:数据库设计通常由哪些辅助工具?各有哪些优缺点?4实验步骤4.1 数据库概念模型设计(1)进行需求分析。

学生需要有学号、姓名、性别、年龄、专业等信息。

选课需要有学号、课号、成绩等信息课程需要有课程号、课程名、先修课、学分等信息(2)设计数据库概念模型,画出E-R图。

数据库实验报告(6)

数据库实验报告(6)

数据库实验报告(6)一实验题目1.存储过程的定义和使用2。

触发器的创建和使用二实验目的1.掌握存储过程的定义、执行和调用方法。

2.掌握触发器的创建和使用。

三实验内容1.存储过程的定义和使用(1)创建存储过程查找姓李的学生的选修课成绩信息。

(2)创建一个存储过程,计算每个学生选修课的总分,并显示得分最高的三名学生的分数。

(3)创建一个存储过程以查找课程的最高分数(带有输入参数的存储过程)。

(4)创建一个存储过程来计算同学的平均分数并返回统计结果。

(带输入和输出参数的存储过程)(5)创建一个存储过程,计算选修课的数量,然后返回数字。

(6)用存储过程统计选修课,用存储值最多的学生。

(存储过程的嵌套)2.触发器的创建与使用(1)如果学分大于5,在为表格C插入新课程信息时,定义行前级别的触发学分uu触发器分,自动修改为5分。

(2)定义行后级别触发器。

当SC表的等级发生变化时,它将自动出现在等级变化表SC_uu增加日志中加一条新的纪录,该新纪录包括:操作者名称、操作日期、操作类型。

(3)建立一个delete触发器,针对于sc表,每次只能删除一条信息。

(4)创建不允许用户更改学号的更新触发器。

如果学生号被更改,将给出提示信息:学生号不允许更改。

(5)执行相应的SQL语句来触发上面定义的触发器。

(6)删除触发信用触发四实验步骤1.存储过程的定义和格式:createproc[edure]procedure_name[;number][{@parameterdata_type}[变化][=默认值][输出][with[用于复制]assql_statement[...n]创建存储过程以查找姓李的学生的选修课分数信息。

(1)创建存储过程,统计每个学生的选修课的总成绩,显示成绩最好的前3名学生成绩。

SC表的基本信息如图1所示:图表1代码:createprocp_sumscoreas从SCGroupByNo中选择Top 3Sum(成绩)作为总分execp_sumscore运行结果:命令已成功完成。

数据库系统概论(王珊第五版)实验6答案

数据库系统概论(王珊第五版)实验6答案

实验6答案1.查询名字中第2个字为‘向’的学生姓名和学号及选修的课程号、课程名;select a.sname,a.sno,o,ame from student a,course b,sc cWhere a.sname like'_向%' and a.sno=c.sno and o=o2.列出选修了‘数学’或者‘大学英语’的学生学号、姓名、所在院系、选修课程号及成绩;Select a.sno,sname,sdept,o,grade from student a,course b,sc c Where ame in('数学','大学英语')and a.sno=c.sno and o=o3.查询与‘张力’(假设姓名唯一)年龄不同的所有学生的信息;Select * from studentWhere sage<>(select sage from student where sname='张力')4.按照“学号,姓名,所在院系,已修学分”的顺序列出学生学分的获得情况。

其中已修学分为考试已经及格的课程学分之和;Select a.sno,sname,sdept,sum(ccredit) as 已修学分from student a,course b,sc cWhere grade>60 and a.sno=c.sno and o=oGroup by a.sno,sname,sdept5.查找选修了至少一门和张力选修课程一样的学生的学号、姓名及课程号;Select a.sno,a.sname,o from student a,sc cWhere Cno in(select Cno from sc where sno in(select sno from student where sname='张力'))and a.sno=c.sno6.查询只被一名学生选修的课程的课程号、课程名;Select cno,cname from courseWhere cno in(select cno from sc group by cno having COUNT(*)=1)7.使用嵌套查询出选修了“数据结构”课程的学生学号和姓名;Select sno,sname from studentWhere sno in(select sno from sc where Cno=(select Cno from course where cname='数据结构'))8.使用嵌套查询查询其它系中年龄小于CS系的某个学生的学生姓名、年龄和院系;Select sname,sage,sdept from studentWhere sage<any(select sage from student where sdept='cs')And sdept<>'cs'9.使用ANY、ALL 查询,列出其他院系中比WM系所有学生年龄小的学生的姓名;Select sname from studentWhere sage<all(select sage from student where sdept='wm') And sdept<>'wm'10.分别使用连接查询和嵌套查询,列出与‘张力’在一个院系的学生的信息;Select b.*from student a,student bwhere a.sname='张力' and a.sdept=b.sdept或SELECT * FROM StudentWHERE Sdept IN(SELECT Sdept FROM Student WHERE sname='张力')11.使用集合查询列出CS系的学生以及性别为女的学生学号及姓名;SELECT sno,sname from studentWhere sdept='cs'unionselect sno,sname from studentwhere ssex='女'12.使用集合查询列出CS系的学生与年龄不大于19岁的学生的交集、差集;SELECT *FROM StudentWHERE Sdept='CS'EXCEPTSELECT *FROM StudentWHERE Sage<=19SELECT *FROM StudentWHERE Sdept='CS'INTERSECTSELECT *FROM StudentWHERE Sage<=19。

实验6 PL_SQL复合数据类型

实验6 PL_SQL复合数据类型

《数据库开发技术》课程之实验六PL/SQL复合数据类型:记录、表和可变数组一、实验目的1.掌握如何创建PL/SQL 记录。

2.会用%ROWTYPE 属性创建一个记录。

3.掌握如何创建PL/SQL表和记录表。

4.掌握那些能获得复合数据信息的内置方法的使用。

5.掌握可变数组的使用。

二、实验内容和要求1.根据表emp的全部字段定义记录变量emp_record。

用SELECT语句将编号为7788的雇员的全部字段对应地存入该记录变量,最后输出记录变量的雇员名称字段emp_record.ename和雇员工资字段的内容。

执行结果如下:SCOTT的工资为:3000PL/SQL 过程已成功完成。

2.声明一张Index_By表,用来接收并存储DEPT表的信息,把部门号作为键,不要忘记部门号是10的倍数。

使用循环从DEPT表中将所有部门信息检索到PL/SQL记录表中,然后用另一个循环来显示表中的这些信息。

执行结果为:10, ACCOUNTING, NEW YORK20, RESEARCH, DALLAS30, SALES, CHICAGO40, OPERATIONS, BOSTONPL/SQL 过程已成功完成。

3. 阅读以下程序,找出出错之处,说明出错原因,预测运行输出结果是什么。

请删改错误,加上适当注释后,运行该程序,验证自己的预测是否正确。

(注:实验报告中只要指出出错的语句和出错的原因即可,不需要抄录程序清单!还要求写出程序正确运行后的输出结果。

)SET SERVEROUTPUT ONDECLARETYPE dept_list IS TABLE OF dept.dname%TYPE; --定义嵌套表TYPE top5_list IS VARRAY(5) OF dept.loc%TYPE; --定义可变数组dis_dept dept_list; --嵌套表的声明num_5 top5_list; --可变数组的声明BEGINdis_dept(1):='AMGN';IF dis_dept IS NULL THENdis_dept :=dept_list('AMGN','BGEN');DBMS_OUTPUT.PUT_LINE('dis_dept表当前元素个数为:'||to_char(dis_dept.count));END IF;num_5:=top5_list('ORCL','CSCO',NULL,NULL);IF num_5(3) IS NULL THENnum_5(3):='CPQ';END IF;num_5(4):='DELL';FOR COUNTER IN 1..4 LOOPDBMS_OUTPUT.PUT_LINE(NUM_5(COUNTER));END LOOP;END;/执行结果为:4.*将上题改为使用INDEX BY BINARY_INTEGER的索引表,则实现同一执行结果,程序要做哪些相应的改变。

数据库系统实验

数据库系统实验

梁文娟目录实验1 用E-R图设计数据库 (3)实验2 熟悉SQL Server 2000环境 (4)实验3 创建数据库及表 (19)实验4 数据查询 (34)实验5 视图的定义和操作 (36)实验6 实现数据完整性 (38)实验7 实现数据库安全管理 (41)实验8 实现触发器 (45)实验9 数据库备份与恢复 (47)实验10 数据库设计综合应用 (48)实验1 用E-R图设计数据库实验目的与要求:1.掌握E-R模型的基本概念和图形的表示方法。

2.掌握将现实世界的事物转化成E-R图的基本技巧3.熟悉关系数据模型的基本概念。

4.掌握E-R图转化成关系表的基本方法实验环境:1.Windows 2000/XP2.SQL Server 2000实验内容:1.根据需求确定实体、属性和联系。

2.将实体、属性和联系转化为E-R图。

3.将E-R图转化为表。

实验步骤:1.设计能够表示学生、课程关系的数据库。

1)确定学生、课程实体的属性。

2)确定学生、课程实体的联系以及联系类型。

3)画出学生、课程关系的E-R图。

2.设计能够表示商品、顾客和商品生产厂家关系的数据库。

1)确定商品、顾客和商品生产厂家实体的属性。

2)确定商品、顾客和商品生产厂家的联系以及联系类型。

3)画出商品、顾客和商品生产厂家关系的E-R图。

讨论:E-R图和关系表之间的关系。

实验2 熟悉SQL Server 2000环境一、实验目的●掌握SQL Server 2000的安装●了解SQL Server 2000的组织结构和操作环境●熟悉SQL Server 2000的基本使用方法二、背景知识SQL Server 2000是Microsoft公司推出的高性能的客户端/服务器结构的关系数据库管理系统,它继承了SQL Server 7.0版本的高性能、可靠性、易用性和可扩充性的优点,同时又增加了一些新的特性,使其成为一种领先的数据库管理系统,可用于联机事务处理(OLTP)、数据仓库及电子商务等。

数据库实用技术-实验六

数据库实用技术-实验六

实验报告单院(系)计算机学院专业计算机科学与技术班级姓名学号同组人实验室S4305 组号日期课程数据库实用技术指导教师成绩实验项目编号8103203006 实验项目名称索引和数据的完整性一、实验目的(1)掌握索引的使用方法;(2)掌握数据完整性的实现方法;二、实验环境WIN7操作系统SQL Server2008三、实验原理(或要求)(1)了解索引的作用与分类;(2)掌握索引的创建方法;(3)理解数据的完整性的概念与分类;(4)掌握各种数据完整性的实现方法。

四、实验步骤(1)建立索引①使用CREATE INDEX语句创建索引。

●对YGGL数据库的Employees表中的DepartmentID列建立索引。

在查询分析器中输入如下程序并执行:USE YGGLGOCREATE INDEX depart_indON Employees(DepartmentID)GO●在Employees表的Name列和Address列上建立复合索引。

CREATE INDEX Ad_indON Employees(Name,Address)●对Departments表上的DepartmentName列建立唯一非聚集索引。

CREATE UNIQUE INDEX Dep_indON Departments(DepartName)②使用界面方式创建索引。

使用界面方式在Employees表的PhoneNumber列上创建索引。

启动SQL Server Management Studio,在对象资源管理器中展开数据库YGGL,展开表Employees,右击“索引,选择“新建索引”选项。

在新建索引的窗口中填写索引的名称和类型,单击“添加”按钮,在列表框中选择要创建的索引的列,选择完单击“确定”按钮即完成创建工作。

(2)重建索引。

重建表Employees中的所有索引。

USE YGGLGOALTER INDEX ALLON Employees REBUILD(3)删除索引。

实验六存储过程和触发器

实验六存储过程和触发器

实验六存储过程和触发器142208100149 陈聪1、目的与要求(1)掌握存储过程的使用方法。

(2)掌握触发器的使用方法。

2、实验准备(1)了解存储过程的使用方法。

(2)了解触发器的使用过程。

(3)了解inserted逻辑表和deleted逻辑表的使用。

(4)了解如何编写CRL存储过程与触发器。

3、实验内容。

(1)存储过程。

①创建存储过程,使用Employees表中的员工人数来初始化一个局部变量,并调用这个存储过程。

注:此段T-SQL命令,书上变量名书写错误,漏掉了下划线。

(@nu_MBER1和@nu MBER1区别)执行该存储过程,并查看结果。

②创建存储过程,比较两个员工的实际收入,若前者比后者高就输出0,否则输出1.执行该存储过程并查改结果。

③创建添加职员记录的存储过程EmployeeAdd。

执行该存储过程。

执行上面T-SQL命令,在结果栏中显示一行受影响,说明结果已经插入成功,在表Employees中也够看到结果已经存在。

④创建存储过程,使用游标确定一个员工的实际收入是否排在前3名。

结果为1表示是,结果为0表示否。

执行该存储过程,在结果栏中显示,命令已成功完成,并且在左侧对象资源管理器中进行刷新会显示刚刚创建的存储过程。

执行该存储过程:上面T-SQL结果中输出“1”,代表着员工“108991”的实际收入排在前三名。

【思考与练习】A、创建存储过程,要求当一个员工的工作年份大于6年时,将其转到经理办公室工作。

创建这个存储过程时候,在存储过程的条件判断中我添加了一项,判断工作年份在6年以上的员工是否在经理办公室,只有不在经理办公室的时候才进行调整,这样更符合实际问题些。

然后执行上面的存储过程,并且查看结果:此时有可能会出现(我就出现了)这样的问题,在之前实验三中就出现了。

解决方法同样是解除规则的绑定。

查看表Employees中员工“000001”的DepartmentID已经修改为“3”(经理办公室)。

实验6 SQL函数与T-SQL编程参考答案

实验6 SQL函数与T-SQL编程参考答案

实验六 SQL函数与T-SQL编程参考答案多对比多思考,达举一反三,方能灵活掌握。

最惧死记硬背,不问原由--1.集合函数--统计选修了课程的学生人数select count(distinct sno) as '选修了课程的学生数' FROM SCgo--用GROUP BY统计不同职称的教师人数select prof,count(tno) from teacher group by profgo--COMPUTE BY统计不同职称的教师人数select tno,prof from teacher order by prof compute count(tno) by profgo--2、数据类型转换函数--从Teacher表中查询教师的电话号码中的最后8位数字能被9整除的教师信息select *from teacherwhere convert(int,right(mobile,8))%9=0go--查询学生的学号、姓名、出生日期。

要求将出生日期转化为整数后显示select sno,sname,convert(int,birthdate) 出生日期的内部存储形式 FROM student--3、日期函数--把当前日期转换为样式 101select getdate()select convert(char(10),getdate(),101) as CurrentDatego--计算所有学生的平均年龄select avg(datediff(yy,birthdate,getdate())) as 平均年龄from studentgo--查询最近一年选修课程的课程号select distinct cnofrom scwhere datediff(yy,SDate,getdate())<=2go--分别获取数据库当前时间的年、月、日、小时select year(getdate()) as cur_year,month(getdate()) as cur_month,day(getdate()) as cur_day,datepart(hh,getdate()) as cur_hourgo--4、数学函数--以2为随机数种子产生一随机数select rand(2) as rand_sek_2go--对数字1223.75进行整数的四舍五入和取整select round(1223.75,0) as Int1,FLOOR(1223.750) as Int2go--5、字符串函数--求在字符串‘They call me the hunter'中从5个字符开始,"the"出现的位置select charindex('the','They call me the hunter',5) as h_start_positiongo返回Teacher表中的所有学生的姓氏(不重复)。

实验6 利用Blast 进行数据库相似性搜索

实验6 利用Blast 进行数据库相似性搜索

实验6 利用Blast 进行数据库相似性搜索一、实验目的本实验要求掌握Blast的基本比对方法,Blast 的参数设置及Blast 结果分析。

二、实验工具Blast 程序:/BLAST/或 /。

三、实验作业1 .对于查询同源性较远的相似性序列,采用蛋白质查询为什么比DNA 好?答、蛋白质序列是直接与生物功能相关,其序列才能直接的显示物种间的同源性1、由于同源性较远,原核与真核生物的基因结构不同,真核生物基因结构中包括有内含子在蛋白质结构中不会含对应的氨基酸序列;2、由于物种的密码子的扩张、无义密码子的重定义以及密码子的偏好性的差异等导致具有相似氨基酸序列,其DNA的比对结果可能差异较大;3、当前生物学较多的生物技术尚未解决,如四核苷酸决定一氨基酸或者五核苷酸决定一氨基酸等未解决的机制等,导致CDS区按照软件既定程序预测到的氨基酸之间存在差异。

2 . PsiBlast 优点在于能搜索同源性较远的相似序列,它的不足之处是什么?答:特异位点迭代对比程序在蛋白质数据库中循环收索查询蛋白质,所有多次迭代比对,直到前一次psiblast发现的统计显著蛋白值序列整合成新计分矩阵,通过多次迭代比对,知道不在发现统计学显著的蛋白质。

其高敏感性的特点为收索直系同源蛋白提供线索。

不足之处同源性直接相关的结构域会因大部分非结构域的可变区大量突变或恢复突变影响物种同源性的分析。

3 .已知如下序列:aatcaacaaa acttatcatt caatatctcg ccgcaagaac aaatcgtcat tcccaagtcgaacaaatgat tgttgaatct tctccaatct tggaagcttt tggtaatgca aaaacaattagaaataataa ctcttctaga tttggtaaat ttattgaaat tcaatttaat agagaaggtcatatttctgg tgctagaatt ataaattgta agtttttcca gaaaaaaaag aaaaaaaaaaaaaaaaaaaa aaattgagta ttaatatttt tttatttcac tttttttttt catcaaccct cttgtcaaaa ttttttattt tttttatttc tacaaattct atcaaaccat accaaaaaaa aaaaagaett attagaaaaa tctagaattt cacatcaagc tagttca利用blastn 程序,nr 数据库进行数据库搜索,解释第二条alignment 结果含义并指出编码的是何种蛋白质。

数据库原理实验报告

数据库原理实验报告

计算机与信息学院数据库原理实验报告专业:计算机科学与技术班级: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,写出操作过程。

实验6 大数据库实验——存储过程和触发器

实验6 大数据库实验——存储过程和触发器

实验6 存储过程和触发器一、实验目的1、加深和巩固对存储过程和触发器概念的理解。

2、掌握触发器的简单应用。

3、掌握存储过程的简单应用。

二、实验容一)存储过程:1. 创建一存储过程,求l+2+3+…+n,并打印结果。

CREATE PROCEDURE addresultASDECLARE n int=10,/*最后一个数*/i int=0,result int=0 /*结果*/BEGINWHILE(i<=n)BEGINSET result=result+iSET i=i+1ENDPRINT'1+2+3+...+n的结果是:'PRINT resultRETURN(result)ENDGO2.调用上面的addresult存储过程,打印l十2+3+…+10的结果。

EXEC addresult3. 修改上述存储过程为addresult1,使得n为输入参数,其具体值由用户调用此存储过程时指定。

CREATE PROCEDURE addresult1n int=10 /*最后一个数*/ASDECLARE i int=0,result int=0 /*结果*/BEGINWHILE(i<=n)BEGINSET result=result+iSET i=i+1ENDPRINT'1+2+3+...+n的结果是:'PRINT resultRETURN(result)ENDGO4. 调用上面修改后的addresult1存储过程,打印l+2+3+…+100的结果。

EXEC addresult1 1005.修改上述存储过程为addresult2,将n参数设定默认值为10,并改设sum为输出参数,让主程序能够接收计算结果。

CREATE PROCEDURE addresult2n int=10,/*最后一个数*/sum int out/*结果*/ASDECLARE i int=0BEGINset sum=0WHILE(i<=n)BEGINSET sum=sum+iSET i=i+1ENDENDGO6.调用上面修改后的addresult2存储过程,设置变量s接收计算l+2+3+…+10的结果。

SQL数据库实验报告实验六

SQL数据库实验报告实验六

第1部分实验8 存储过程和触发器1.实验目的(1)掌握通过SQL Server 管理平台和Transact-SQL 语句CREA TE PROCEDURE 创建存储过程的方法和步骤。

(2)掌握使用Transact-SQL 语句EXECUTE 执行存储过程的方法。

(3)掌握通过SQL Server 管理平台和Transact-SQL 语句ALTER PROCEDURE 修改存储过程的方法。

(4)掌握通过SQL Server 管理平台和Transact-SQL 语句DROP PROCEDURE 删除存储过程的方法。

(5)掌握通过SQL Server 管理平台和Transact-SQL 语句CREA TE TRIGGER 创建触发器的方法和步骤。

(6)掌握引发触发器的方法。

(7)掌握使用SQL Server 管理平台或Transact-SQL 语句修改和删除触发器。

2.实验内容及步骤(1)在查询设计器中输入以下代码,创建一个利用流控制语句的存储过程letters_print ,该存储过程能够显示26个小写字母。

CREATE PROCEDURE letters_print ASDECLARE @count int SET @count=0 WHILE @count<26 BEGINPRINT CHAR(ASCII('a')+ @count) SET @count=@count +1 END单击查询分析器的“执行查询”按钮,查看studentsdb 数据库的存储过程是否有letters_print 。

使用EXECUTE 命令执行letters_print 存储过程。

(2)输入以下代码,创建存储过程stu_info,执行时通过输入姓名,可以查询该姓名对应的学生的各科成绩。

CREATE PROCEDURE stu_info @name varchar(40)ASSELECT a.学号,姓名,课程编号,分数FROM student_info a INNER JOIN grade taON a.学号= ta.学号WHERE 姓名= @name使用EXECUTE命令执行存储过程stu_info,其参数值为“马东”。

数据库实验1-7

数据库实验1-7

1《实验一 认识DBMS 》在SQL Server 2005中完成以下操作:(1) 建立SC 数据库,数据库命名:SC_姓名拼音+学号后三位,如SC_xiebing131;(2) 在其中建立Student 表、Course 表和SC 表,表结构如下,自己选择各属性的数据类型;学生关系Student(Sno ,Sname ,Ssex ,Sage ,Sdept)其中Sno 为主码,并且Sname 取值也唯一 课程关系Course(Cno ,Cname ,Cpno ,Ccredit)其中Cno 为主码,并且Cname 取值也唯一选修关系SC(Sno ,Cno ,Grade) 其中Sno 和Cno 不能为空,(Sno, Cno)为主码(3) 参照教材在各表中输入一定的记录,在student 表中输入一条自己的记录;(4) 进行表结构的修改和记录的修改、删除操作;(5) 验证教材P45基本关系具有的6个性质;(6) 分离数据库,保存数据库文件,以后上机要带上。

《实验二数据定义》实验内容:(1) 数据库的定义与删除(2)基本表的创建、修改及删除;(3) 索引的创建和删除;(4) 使用SQL 对数据进行完整性控制(实体完整性、参照完整性);(一)使用命令行方式建立SPJ 数据库(1)用SQL 语言建立SPJ 数据库,数据库命名:SPJ-姓名拼音+学号后三位,如SPJ-liyan112;(2)用SQL 语言在其中建立S 表、P 表、J 表和SPJ 表(要求进行完整性定义),表结构如下;厂家 S (SNO ,SNAME ,STA TUS ,CITY ),其中STA TUS (状态)为整型,其他均为字符型产品 P (PNO ,PNAME ,COLOR ,WEIGHT ),其中WEIGHT (重量)为浮点型,其他均为字符型工程 J (JNO ,JNAME ,CITY ),其中各属性均为字符型供应 SPJ (SNO ,PNO ,JNO ,QTY ),其中QTY (供应量)为整型,其他均为字符型建立数据表的语法格式CREA TE TABLE <表名>(<列名><数据类型>[<列级完整性约束条件> ] [,<列名><数据类型>[<列级完整性约束条件>]] …[,<表级完整性约束条件> ] );(3) 参照教材用SQL 语言分别在4个数据表中输入一定的记录;插入数据的语法格式:INSERTINTO <表名> [(<属性列1>[,<属性列2 >…)]V ALUES (<常量1> [,<常量2>] … )(4) 保存SQL 文件,文件名:SPJ-姓名拼音+学号后三位.sql ,如SPJ-xukai012.sql(二)使用命令行方式建立学生课程数据库(1) 用SQL 语言建立学生课程数据库,数据库命名:SC_学号后四位及姓名,如SC_3112liyan ;(2) 用SQL 语言在学生课程数据库中建立3个表,要求进行完整性定义;学生关系Student(Sno ,Sname ,Ssex ,Sage ,Sdept)其中Sno 不能为空,值是唯一的,并且Sname 取值也唯一,Sage 自定义约束“大于16” 课程关系Course(Cno ,Cname ,Cpno ,Ccredit)其中Cno 不能为空,值是唯一的,并且Cname 取值也唯一教师关系Teacher(Tno ,Tname ,Department ,Email ,Salary) 其中Tno 不能为空,值是唯一的选修关系SC(Sno ,Cno ,Grade) 其中Sno 和Cno 不能为空,(Sno, Cno)为主码,Grade 的数据类型为int(3) 修改数据表:✓ 将SC 表中Grade 的数据类型改为f loat ;✓ 在Student 表中增加一个属性Scome 记录学生的入学时间,其数据类型为DATETIME ;✓ 删除Student 表中新增加Scome 属性;✓ 删除表Teacher 表中的Email 属性;✓ 删除Student 表中对Sname 属性创建的Unique 约束。

2013SQL实验六

2013SQL实验六

实验六数据库、表、约束、查询综合实验一、实验目的1.掌握应用Management Studio创建、修改、查看和删除数据库对象的方法。

2.掌握应用应用T-SQL创建、修改、查看和删除数据库对象的方法。

3.掌握INSERT、UPDA TE、DELETE语句操作数据的方法。

4.掌握查询分析器中设计查询的方法。

5.掌握使用T-SQL设计查询的语法和常用技巧。

二、实验要求1.建立eshop数据库,创建members表、products表和orders表,及各种要求的约束。

2.将样例数据录入到eshop数据库。

3.建立教学成绩管理数据库,并了解其结构。

4.按要求分别使用Management Studio和在查询窗口中使用T-SQL完成各种操作,保存实验结果,并上交实验报告。

三、实验步骤Ⅰ、建立ESHOP数据库1.Eshop数据库参数如下:数据库名:eshop主数据文件:逻辑名eshop_data存储位置c:\data\eshop_data.mdf初始大小 4 MB最大大小100 MB增长率 2 MB次要数据文件:逻辑名e_data_1存储位置c:\data\e_data_1.ndf文件组FG1初始大小 2 MB最大大小100 MB增长率10%日志文件:逻辑名eshop_log.ldf存储位置c:\data\eshop_log.ldf初始大小 2 MB最大大小无限制增长率10 MB2.在ESHOP数据库中建立如下表Members表,用于存放雇员信息:Products表,用于存放产品信息:Orders表,用于存放订单信息:3.录入数据到ESHOP数据库Ⅱ、ESHOP数据库中表和表记录的操作1.查看members表的相关信息。

2.在members表中新增一列电子邮件m_mail(V ARCHAR,20)。

3.将members表中的列m_address修改为(V ARCHAR,30)。

4.删除members表中列m_mail。

  1. 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
  2. 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
  3. 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
orderbyCOUNT(studentno)desc
5.
selectsname,AVG(final)fromscorejoinstudenton
=
wherefinal>=80
groupby,sname
havingCOUNT(courseno)>=2
6.
selectstudentno,sname,pointfromstudentwhere
6.查询入学考试成绩最高的学生学号、姓名和入学成绩。
7.查询同时教授c05127号和c05109号课程的教师信息。
8.查询至少选修了姓名为“韩吟秋”的学生所选修课程中一门课程的学生学号和姓名。
9.查询所有教授c05127号课程的教师信息。
10.查询没有被任何学生选修的课程编号、课程名称和学分。
11.查询“C语言”课程期末成绩比“电子技术”课程期末成绩高的所有学生的学号和姓名。
2.
select*fromteacher
select*fromstudent
select*fromcourse
insertintocourse(courseno,cname,ctype,period,credit)
values('c05103','高等数学','必修',64,
select*fromscore
elseif@final>=70and@final<80
printN'中'+@sname+@cname
elseif@final>=60and@final<70
printN'及'+@sname+@cname
elseif@final<60
printN'差'+@sname+@cname
while@@FETCH_STATUS=0
wherein
(
selectcoursenofromteach_classjointeacher
on=
wheretname='韩晋升'
)
andclassno='090501'
4.
select,cname,COUNT(studentno)from
scorejoincourseon=
groupby,cname
studentno=(selecttop1studentnofromstudentorderbypoint)
7.
select,tname,major,prof,departmentfrom
teacherjointeach_classon
=
wherecourseno='c05127'
8.
selectdistinct,snamefromscore
values('t05001','160501','c05103')
select*fromteacher
select*fromcourse
select*fromscore
selectclassno,AVG(final)as平均分fromstudentjoinscore
on=
groupbyclassno
fromstudent,score,course
where=
and=
openstu
fetchstu
into@sname,@final,@cname
if@final>=90
printN'优'+@sname+@cname
elseif@final>=80and@final<90
printN'良'+@sname+@cname
declaresc_cursorcursorfor
selectsname,cname,final
fromscorejoinstudenton=
joincourseon=
opensc_cursor
fetchnextfromsc_cursorinto@sname,@cname,@final
print'学生姓名 课程名称 期末成绩'
orderbyAVG(final)desc
selectteacher.*,cnamefromteacherleftjointeach_class
on=
leftjoincourseon=
3.
select,sname,cname,finalfromstudent
joinscoreon=
joincourseon=
print@department
print@avg
while@@FETCH_STATUS=0
begin
fetchnextfromcur
into@department,@num
set@avg=@num/(selectCOUNT(*)fromclasswheredepartment=@department)
joinstudenton=
wherecoursenoin
(
selectcoursenofromscorejoinstudenton
=
wheresname='韩吟秋'
)
andsname!='韩吟秋'
9.
select*fromteacherwhereteachernoin
(
selectteachernofromteach_classwhere
2.查询教师基本信息和教授课程信息,其中包括未分配课程的教师信息。
3.查询160501班级中选修了“韩晋升”老师讲授的课程的学生学号、姓名、课程号和期末成绩。
4.查询每门课程的课程号、课程名和选修该课程的学生人数,并按所选人数升序排序。
5.查询两门及以上课程的期末成绩超过80分的学生姓名及平均成绩。
print@department
print@avg
end
closecur
deallocatecur
15.
declare@snamenchar(30),@cnamenchar(30),@finalfloat
declarestucursorstatic
for
selectsname,final,cname
where='c语言'andexists
(
select*fromscoresc2joincoursec2on=
where='电子技术'and=
and>
)
12.
declare@maxnumeric(6,2)
select@max=MAX(平均分)from(
selectclassnoas班级号,AVG(final)as平均分fromscore
实验名称
实验6
实验地点
8-318
实验类型
设计
实验学时
1
实验日期
2018-6-14
★撰写注意:版面格式已设置好(不得更改),填入内容即可。
一、实验目的
1. 掌握系统数据类型的特点和功能。
2. 掌握创建、修改表结构的方法。
3. 掌握插入、更新和删除表数据的方法。
二、实验内容
1.查询所有班级的期末成绩平均分,并按照平均分降序排序。
begin
fetchnextfromstu
into@sname,@final,@cname
if@final>=90
printN'优'+@sname+@cname
elseif@final>=80and@final<90
printN'良'+@sname+@cname
elseif@final>=70and@final<80
print'----------------------------------'
while@@FETCH_STATUS=0
begin
print@sname+@cname+cast(@finalasnchar(6))
fetchnextfromsc_cursorinto@sname,@cname,@final
wherein(
selectfromstudentgroupbyclassno
)
groupbydepartment
opencur
fetchcur
into@department,@num
set@avg=@num/(selectCOUNT(*)fromclasswheredepartment=@department)
printN'中'+@sname+@cname
elseif@final>=60and@final<70
printN'及'+@sname+@cname
elseif@final<60
printN'差'+@sname+@cname
end
closestu
deallocatestu
end
closesc_cursor
deallocatesc_cursor
14.
declare@departmentnchar(30),@numint,@avgfloat
declarecurcursorstatic
for
selectdepartment,count(*)as'选修课数'fromclass
相关文档
最新文档