数据库系统概论——数据操纵语言DML实验报告
安徽工业大学数据库实验报告

《数据库系统概论》实验报告书专业班级学号姓名指导教师安徽工业大学计算机科学与技术学院目录实验一:数据定义语言 (1)实验二:数据操纵语言 (10)实验三:数据查询语言 (17)实验四:视图、授权控制与事务处理 (43)实验五:Oracle存储过程与触发器 (54)数据库学习总结 (56)实验一:数据定义语言[ 实验日期 ] 年月日[ 实验目的 ]熟悉Oracle上机环境及Oracle客户端的配置;熟练掌握和使用DDL语言,建立、修改和删除数据库表、主键、外键约束关系和索引。
[ 实验内容 ]Oracle上机环境以及Oracle客户端的配置参见附录。
1. SQL数据定义语句:例1-1: (建立数据库表) 建立教学数据库的四个数据库表,其中Student表中不包含SSEX(C,2) 字段,Sname 字段为Sname(C,8)且可为空。
创建表Student:CREATE TABLE STUDENT(SNO CHAR(5),SNAME VARCHAR2(8),SDEPT CHAR(2) NOT NULL,SCLASS C HAR(2) NOT NULL,SAGE NUMBER(2),CONSTRAINT SNOS_PK PRIMARY KEY(SNO));创建表Course:CREATE TABLE Course(CNO CHAR(3),CNAME VARCHAR2(16),CTIME NUMBER(3),CONSTRAINT CNOC_PK PRIMARY KEY(CNO));创建表Teach:CREATE TABLE Teach(TNAME VARCHAR2(8),TSEX CHAR(2),CNO CHAR(3),TDATE DATE,TDEPT CHAR(2),CONSTRAINT TCT_PK PRIMARY KEY(TNAME,CNO,TDEPT), CONSTRAINT CNOT_FK FOREIGN KEY(CNO) REFERENCES Course(CNO) );创建表Score:CREATE TABLE SCORE(SNO CHAR(5),CNO CHAR(3),SCORE NUMBER(5,2),CONSTRAINT SCS_PK PRIMARY KEY(SNO,CNO),CONSTRAINT SNOS_FK FOREIGN KEY(SNO) REFERENCES Student(SNO), CONSTRAINT CNOS_FK FOREIGN KEY(CNO) REFERENCES Course(CNO) );插入数据:1、StudentINSERT INTO Student VALUES('96001','马小燕 ','CS','01',21)? INSERT INTO Student VALUES('96002','黎明 ','CS','01',18)? INSERT INTO Student VALUES('96003','刘东明 ','MA','01',18)? INSERT INTO Student VALUES('96004','赵志勇 ','IS','02',20)? INSERT INTO Student VALUES('97001','马蓉 ','MA','02',19)? INSERT INTO Student VALUES('97002','李成功 ','CS','01',20)? INSERT INTO Student VALUES('97003','黎明 ','IS','03',19)?INSERT INTO Student VALUES('97004','李丽 ','CS','02',19)?INSERT INTO Student VALUES('96005','司马志明','CS','02',18)INSERT INTO Student VALUES('20001','赵薇 ','IS','02',19)2、CourseINSERT INTO Course VALUES('001','数学分析',144)?INSERT INTO Course VALUES('002','普通物理',144)?INSERT INTO Course VALUES('003','微机原理',72)?INSERT INTO Course VALUES('004','数据结构',72)?INSERT INTO Course VALUES('005','操作系统',64)INSERT INTO Course VALUES('006','数据库原理',64)?INSERT INTO Course VALUES('007','DB_Design',48)?INSERT INTO Course VALUES('008','程序设计',56)3、TeachINSERT INTO Teach VALUES('王成钢','男','004',TO_DATE( '1999-09-05', 'YYYY-MM-DD'),'CS')? INSERT INTO Teach VALUES('李正科','男','003',TO_DATE( '1999-09-05', 'YYYY-MM-DD'),'CS')? INSERT INTO Teach VALUES('严敏 ','女','001',TO_DATE( '1999-09-05', 'YYYY-MM-DD'),'MA')? INSERT INTO Teach VALUES('赵高 ','男','004',TO_DATE( '1999-09-05', 'YYYY-MM-DD'),'IS')? INSERT INTO Teach VALUES('李正科','男','003',TO_DATE( '2000-02-23', 'YYYY-MM-DD'),'MA')? INSERT INTO Teach VALUES('刘玉兰','女','006',TO_DATE( '2000-02-23', 'YYYY-MM-DD'),'CS')? INSERT INTO Teach VALUES('王成钢','男','004',TO_DATE( '2000-02-23', 'YYYY-MM-DD'),'IS')? INSERT INTO Teach VALUES('马悦 ','女','008',TO_DATE( '2000-09-06', 'YYYY-MM-DD'),'CS')? INSERT INTO Teach VALUES('王成钢','男','007',TO_DATE( '1999-09-05', 'YYYY-MM-DD'),'CS')?4、ScoreINSERT INTO Score VALUES('96001','001',77.5)?INSERT INTO Score VALUES('96001','003',89 )?INSERT INTO Score VALUES('96001','004',86 )?INSERT INTO Score VALUES('96001','005',82 )?INSERT INTO Score VALUES('96002','001',88 )?INSERT INTO Score VALUES('96002','003',92.5)?INSERT INTO Score VALUES('96002','006',90 )?INSERT INTO Score VALUES('96005','004',92 )?INSERT INTO Score VALUES('96005','005',90 )?INSERT INTO Score VALUES('96005','006',89 )?INSERT INTO Score VALUES('96005','007',76 )?INSERT INTO Score VALUES('96003','001',69 )?INSERT INTO Score VALUES('97001','001',96 )?INSERT INTO Score VALUES('97001','008',95 )?INSERT INTO Score VALUES('96004','001',87 )?INSERT INTO Score VALUES('96003','003',91 )?INSERT INTO Score VALUES('97002','003',91 )INSERT INTO Score VALUES('97002','004',' ')?INSERT INTO Score VALUES('97002','006',92 )?INSERT INTO Score VALUES('97004','005',90 )?INSERT INTO Score VALUES('97004','006',85 )?INSERT INTO Score VALUES('97004','008',75 )?INSERT INTO Score VALUES('97003','001',59 )?INSERT INTO Score VALUES('97003','003',58 )例1-2: (修改数据库表) 在Student表中增加SEX(C,2) 字段。
实验五 SQL语言数据操纵语言DML

实验五 SQL语言数据操纵语言DML一、实验目的SQL语言的数据操纵功能通过DML(数据维护语言)实现。
DML包括数据查询和数据更新两种数据操纵语句。
其中,数据查询指对数据库中的数据查询、统计、分组、排序等操作;数据更新指数据的插入、更新和删除等数据维护操作。
本次实验了解DML语言的INSERT、UPDATE、DELETE等数据维护语言,掌握在Navicat for MySQL中用DML语言的INSERT、UPDATE、DELETE对表进行数据插入、更新和删除。
二、实验要求1、实验前:预习实验内容,学习相关知识。
2、实验中:按照实验内容要求进行实验,实验时注意每种SQL语句的基本命令及各个关键字的含义,做好实验记录。
3、实验后:分析实验结果,总结实验知识,得出结论,按格式写出实验报告。
4、在整个实验过程中,要独立思考、独立按时完成实验任务,不懂的要虚心向教师或同学请教。
5、要求按指定格式书写实验报告,且报告中应反映出对本次实验的总结,下次实验前交实验报告。
三、实验的重点与难点1、重点:(1)用INSERT语句向表中插入数据。
(2)用UPDATE语句更新(修改)表中已有数据。
(3)用DELETE语句删除表中数据。
2、难点:INSERT语句中,使用从子表插入数据的FROM子句。
UPDATE语句和DELETE语句的WHERE子句。
四、仪器设备及用具硬件:投影仪、每位同学分配已连接校园网PC机一台。
软件:本机已安装MySQL 5.5数据库平台。
五、教学过程(一)实验预习(1)熟悉SQL中的INSERT、UPDATE、DELETE语句的格式及所用的关键字含义及用法。
(2)掌握INSERT语句的两种不同插入数据方式。
(3)掌握UPDATE语句和DELETE的一般用法。
(二)实验原理在Navicat for MySQL中使用INSERT语句向表中插入数据。
使用UPDATE 语句更新(修改)表中已有数据。
使用DELETE语句删除表中数据。
实验3 数据操纵语言DML-2015

实验3 数据操纵语言DML实验目的1.熟悉SQL语言中DML的功能。
2.初步了解如何进行查询优化。
3.初步了解SQL语句的查询计划。
实验平台1.OS:Windows XP/72.DBMS:SQL Server 2008实验用时两次上机(4月21号之前提交实验报告)预备知识一、数据操纵语言数据库数据操纵语言DML (Data Manipulation Language),它使用户能够查询数据库以及操作已有数据库中的数据的计算机语言。
DML具体包含查询,删除,更新,插入四种操作。
二、SQLSQL(Structured Query Language)结构化查询语言,是一种数据库查询和程序设计语言,用于存取数据以及查询、更新和管理关系数据库系统。
SQL语言包括三种主要程序设计语言类别的语句:数据定义语言(DDL),数据操作语言(DML)及数据控制语言(DCL)。
三、SQL Server 临时表SQL Server包含一个自带的系统数据库——tempdb。
它用来存放用户创建的临时对象。
临时对象分为全局临时对象和区域临时对象。
全局临时对象所有用户可见,区域临时对象仅当前连接对象可见。
每当SQL Server重启后,tempdb数据库会被重新创建。
临时表的创建:临时表的创建与表的创建方法一样,只不过本地临时表的名称前面有一个编号符 (#table_name),而全局临时表的名称前面有两个编号符 (##table_name)。
如:CREATE TABLE #Temp (cola INT PRIMARY KEY)将创建一个名为Temp的临时表。
临时表的其他数据操作和表的一致。
实验活动注:请各位同学用SQL语句完成今天实验的所有步骤(系统视图的查看除外),并在实验报告中记录每条语句。
每个操作完成之后,观察相关系统表的改变并分析原因。
一、熟悉SQL语句的DML功能步骤一:创建数据库,建立第二章习题5中的4个表,并插入数据。
《数据库概论》实验报告

《数据库系统概论》实验报告书数据库实验报告专业班级网131学号139074284姓名卓东洋指导教师周兵安徽工业大学计算机科学与技术学院实验一:数据定义语言[ 实验日期 ] 2015 年 11 月 10 日[ 实验目的 ]熟悉Oracle上机环境及Oracle客户端的配置;熟练掌握和使用DDL语言,建立、修改和删除数据库表、主键、外键约束关系和索引。
[ 实验要求 ]①熟悉Oracle上机环境,掌握Oracle客户端的配置;②建立数据库表,修改数据库表结构,建立、删除索引;[ 实验方法 ]①按照附录中的操作步骤进行客户端的配置;②将实验需求用SQL语句表示;③执行SQL语句;④查看执行结果,如果结果不正确,进行修改,直到正确为止。
[ 实验内容 ]Oracle上机环境以及Oracle客户端的配置参见附录。
1. SQL数据定义语句:例1-1: (建立数据库表) 建立教学数据库的四个数据库表,其中Student表中不包含SSEX(C,2) 字段,Sname 字段为Sname(C,8)且可为空。
表一:学生表主关键字:SNO表二课程名称表表三:教师授课表表四:学生成绩表例1-2: (修改数据库表) 在Student表中增加SEX(C,2) 字段。
例1-3: (修改列名) 将Student表中列名SEX修改为SSEX。
例1-4: (修改数据库表) 将Student表中把Sname 字段修改为Sname(C,10)且为非空。
例1-5: (建立索引) 为Score表按课程号升序、分数降序建立索引,索引名为SC_GRADE。
例1-6: (删除索引) 删除索引SC_GRADE。
例1-7: (建立数据库表) 建立数据库表S1(SNO,SNAME,SD,SA),其字段类型定义与Student表中的相应字段(SNO,SNAME,SDEPT,SAGE)的数据类型定义相同。
例1-8: (修改数据库表) 删除成绩表Score的参照完整性约束关系。
2 数据操作语言 DML 实验

二、实验内容与步骤: 1、进入 ORACLE 的环境,进入 scott 用户模式(在 sqldeveloper 中使用 scott 用户连 接 Oracle)。 2、用 Create、Insert 语句建立基本表 S、P、J 和 SPJ ,其中:
(6) 请将 S6 向工程项目 J8 供应 500 个 P7 零件的信息加入到供应关系; 意涉及到几个表的添加元组操作?表的添加顺序如何?)
insert into S(SNO) values('S6'); insert into J(JNO) values('J8'); insert into P(PNO) values('P7'); insert into SPJ values('S6','P7','J8','500');
(6) 找出所有供应商的姓名和所在城市; 代码: select SNAME,CITY from S;
(7) 找出所有零件的名称、颜色、重量; 代码: select PNAME,COLOR,WEIGHT from P;
(8) 找出使用供应商 S1 所供应零件的工程号; 代码: select distinct JNO from SPJ where SNO='S1';
代码: create table S( SNO char(3) primary key, SNAME char(10), STATUS char(10), CITY char(10) ); insert into S values ('S1','精益','20','天津'); insert into S values ('S2','盛锡','10','北京'); insert into S values ('S3','东方红','30','北京'); insert into S values ('S4','丰泰盛','20','天津'); insert into S values ('S5','为民','30','上海');
数据库系统概论——数据操纵语言DML实验报告

数据库系统概论——数据操纵语⾔DML实验报告数据库实验报告题⽬:数据库操纵语⾔DML 姓名:李军毅⽇期:2016-4-10实验⽬的1.熟悉SQL语⾔中DML的功能。
2.初步了解如何进⾏查询优化。
3.初步了解SQL语句的查询计划。
实验平台1.OS:Windows XP/72.DBMS:SQL Server 2008实验⽤时两次上机实验内容⼀、熟悉SQL语句的DML功能1.创建数据库,建⽴第⼆章习题5中的4个表,并插⼊数据。
2.完成SQL查询。
3.VIEW。
4.UPDATE和DELETE。
⼆、初步了解查询优化1、配置SQL Server,导⼊dbcourse数据库2、在原始papers表中查询title属性3、在papers表中的title属性列上建⽴unique索引4、在papers表中查询⽂章的作者在authors表中存在且⽂章发表的期刊在journals表中存在的⽂章的org5、提交两个对papers表的查询,⼀个查询输出所有的列,另⼀个查询只输出title列。
三、初步了解查询处理流程实验中出现的问题预备知识⼀、数据操纵语⾔数据库数据操纵语⾔DML (Data Manipulation Language),它使⽤户能够查询数据库以及操作已有数据库中的数据的计算机语⾔。
DML具体包含查询,删除,更新,插⼊四种操作。
⼆、SQLSQL(Structured Query Language)结构化查询语⾔,是⼀种数据库查询和程序设计语⾔,⽤于存取数据以及查询、更新和管理关系数据库系统。
SQL语⾔包括三种主要程序设计语⾔类别的语句:数据定义语⾔(DDL),数据操作语⾔(DML)及数据控制语⾔(DCL)。
三、SQL Server 临时表SQL Server包含⼀个⾃带的系统数据库——tempdb。
它⽤来存放⽤户创建的临时对象。
临时对象分为全局临时对象和区域临时对象。
全局临时对象所有⽤户可见,区域临时对象仅当前连接对象可见。
数据库系统概论实验报告五

山西大学计算机与信息技术学院实验报告图5-1 图5-2例1:当输入Insert into Student1 values (200724108,’王阳’,‘男’, 36, ‘计算机’);建立的触发器执行了其功能,执行结果为例2:create trigger sson studentfor insertasbegindeclare @xh smallint;select @xh=inserted.Sagefrom inserted;if exists(select Sno from student where Sage=@xh) update student set sage=@xh+1 where Sage=@xh; end;当执行以下语句时use TestDBinsert into studentvalues('200515124','zp','男',20,'ma'); 结果中Sage为20的元组都加上了1。
例3:创建触发器如下:触发器所产生的效果:例4:创建触发器:执行SQL语句:结果使student表中的所有元组的sage均变为20:思考题在数据库Company_Data的表"项目数据表"和"员工数据表"中分别创建触发器。
(1)打开查询编辑器。
(2)在查询窗口书写CREATE TRIGGER语句,基于表"员工数据表"创建AFTERINSERT 触发器Tigger_NewEmployeeSalary,将插入员工的工资额限制在5000以内。
use TestDBGOCREATE TRIGGER Trigger_NewEmployeeSalaryON员工数据表AFTER INSERTASIF(SELECT工资FROM inserted)> 5000BEGINPRINT'新员工工资不能超过'ROLLBACKENDGO点执行后触发器创建成功。
《数据库系统概论》实验报告

图 2 选择安装类型(3)查看设置信息。
如图 3 所示,这是拷贝文件之前的最后一个对话框,显示了用户 在安装过程中设定的安装选项:第一项是用户的注册信息;第二项是安装路径;第三项是安 装的组件,显示用户选择的组件。
若要修改这三项的内容,可以点击【上一步】,返回前面 的对话框中修改。
如果设置正确则选择【下一步】进行安装。
图 3 查看设置信息(4)初始化数据库。
一般而言,若用户选择安装了"服务器",在安装的最后,将进行初始化数据库。
用户可以修改初始化的默认选项,点击【确定】,直到初始化进行完毕。
(5)安装结果。
在安装完成后,KingbaseES 中用户选择的组件都装在安装路径下,同时完成注册文件的配置。
并在『开始』│『程序』菜单中生成『KingbaseES V4.1』程序组。
重启后,数据库的监听服务将自动启动,并且修改的环境变量生效。
以上五步就完成了 KingbaseES 的安装。
2.数据库服务的启动和停止。
在正确安装 KingbaseES V4.1 后,数据库服务会在系统启动时自动加载。
如果需要手动地启动和停止数据库服务,可以通过“控制服务器”来进行管理。
启动服务:(1)选择“开始”—〉“程序”—〉“KingbaseES V4.1”—〉“控制管理器”。
(2)在“可用服务器”下拉列表中选择要启动的 KingbaseES 服务器,输入正确的用户名、密码、端口值,点击【启动】按钮。
注意:KLS 初始的用户名和密码分别是“KLS”和“INTERNAL”。
(3)如果用户名、密码、端口正确,可以先点击一下【刷新】按钮,以查看远程服务器是否已经在指定端口上启动;启动与否的状态可以从“KingbaseES 启动状态图标”和【启动】、【停止】按钮的状态知晓。
(4)如果用户名、密码、端口均正确但启动不成功,请检查:远程服务器上是否有一个“kls”(Windows 系统进程名为“KLSW”)的进程存在,如果不存在,请在KingbaseES 的安装目录中找到此文件,启动它。
- 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
- 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
- 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
数据库实验报告题目:数据库操纵语言DML 姓名:李军毅日期:2016-4-10实验目的1.熟悉SQL语言中DML的功能。
2.初步了解如何进行查询优化。
3.初步了解SQL语句的查询计划。
实验平台1.OS:Windows XP/72.DBMS:SQL Server 2008实验用时两次上机实验内容一、熟悉SQL语句的DML功能1.创建数据库,建立第二章习题5中的4个表,并插入数据。
2.完成SQL查询。
3.VIEW。
4.UPDATE和DELETE。
二、初步了解查询优化1、配置SQL Server,导入dbcourse数据库2、在原始papers表中查询title属性3、在papers表中的title属性列上建立unique索引4、在papers表中查询文章的作者在authors表中存在且文章发表的期刊在journals表中存在的文章的org5、提交两个对papers表的查询,一个查询输出所有的列,另一个查询只输出title列。
三、初步了解查询处理流程实验中出现的问题预备知识一、数据操纵语言数据库数据操纵语言DML (Data Manipulation Language),它使用户能够查询数据库以及操作已有数据库中的数据的计算机语言。
DML具体包含查询,删除,更新,插入四种操作。
二、SQLSQL(Structured Query Language)结构化查询语言,是一种数据库查询和程序设计语言,用于存取数据以及查询、更新和管理关系数据库系统。
SQL语言包括三种主要程序设计语言类别的语句:数据定义语言(DDL),数据操作语言(DML)及数据控制语言(DCL)。
三、SQL Server 临时表SQL Server包含一个自带的系统数据库——tempdb。
它用来存放用户创建的临时对象。
临时对象分为全局临时对象和区域临时对象。
全局临时对象所有用户可见,区域临时对象仅当前连接对象可见。
每当SQL Server重启后,tempdb数据库会被重新创建。
临时表的创建:临时表的创建与表的创建方法一样,只不过本地临时表的名称前面有一个编号符 (#table_name),而全局临时表的名称前面有两个编号符 (##table_name)。
如:CREATE TABLE #Temp (cola INT PRIMARY KEY)将创建一个名为Temp的临时表。
临时表的其他数据操作和表的一致。
实验内容一、熟悉SQL语句的DML功能1.创建数据库,建立第二章习题5中的4个表,并插入数据。
如下图所示:create table S(Sno varchar(5)primary key,Sname varchar(10)null,Status int null,City varchar(10)null);create table P(Pno varchar(5)primary key,Pname varchar(10)null,Color varchar(10)null,Weight int null);create table J(Jno varchar(5)primary key,Jname varchar(10)null,City varchar(10)null);create table SPJ(Sno varchar(5)not null,Pno varchar(5)not null,Jno varchar(5)not null,Qty int null,primary key(Sno,Pno,Jno),foreign key (Sno)references S(Sno), foreign key (Pno)references P(Pno), foreign key (Jno)references J(Jno), );插入数据:insert into Svalues('S1','精益','20','天津'),('S2','盛锡','10','北京'), ('S3','东方红','30','北京'),('S4','丰泰盛','20','天津'),('S5','为民','30','上海');insert into Pvalues('P1','螺母','红','12'),('P2',',螺栓','绿','17'),('P3','螺丝刀','蓝','14'),('P4','螺丝刀','红','14'),('P5','凸轮','蓝','40'),('P6','齿轮','红','30');insert into Jvalues('J1','三建','北京'),('J2','一汽','长春'),('J3','弹簧厂','天津'),('J4','造船厂','天津'),('J5','机车厂','唐山'),('J6','无线电厂','常州'),('J7','半导体厂','南京');insert into SPJvalues('S1','P1','J1','200'),('S1','P1','J3','100'),('S1','P1','J4','700'),('S1','P2','J2','100'),('S2','P3','J1','400'),('S2','P3','J2','200'),('S2','P3','J4','500'),('S2','P3','J5','500'),('S2','P5','J1','400'),('S2','P5','J2','100'),('S3','P1','J1','200'),('S3','P3','J1','200'),('S4','P5','J1','100'),('S4','P6','J3','300'),('S4','P6','J4','200'),('S5','P2','J4','100'),('S5','P3','J1','200'),('S5','P6','J2','200'),('S5','P6','J4','500');2.完成SQL查询。
1)求供应工程J1零件P1的供应商号码SNO。
select Snofrom SPJwhere Jno='J1'and Pno='P1';2)求供应工程J1零件为红色的供应商号码SNO,并按其供应数量之和降序排列显示。
select Snofrom SPJ,Pwhere Jno='J1'and SPJ.Pno=P.Pno and P.Color='红'order by Qty DESC;3)求没有使用天津供应商生产的红色零件的工程号。
select distinct Jnofrom SPJwhere Jno not in(select Jnofrom SPJ,S,Pwhere SPJ.Sno=S.Sno and S.City='天津'and SPJ.Pno=P.Pno and P.Color='红');4)求至少用了供应商S1所供应的全部零件的工程号。
select distinct Jnofrom SPJwhere Pno in(select Pnofrom SPJwhere Sno='S1');5)求对所有工程都提供了同一零件的供应商号码。
select distinct Snofrom SPJ S1where not exists(select*from Jwhere not exists(select*from SPJ S2where S1.Sno=S2.Sno and S1.Pno=S2.Pno and J.Jno=S2.Jno)6)求满足下面要求的供应商号码,该供应商供应给某个工程零件P1的数量大于等于这个工程被供应的零件P1的平均数量。
select x_snofrom (select Sno,AVG(Qty)from SPJwhere Pno='P1'group by Sno)as X(x_sno,x_avg),(select SUM(Qty)from SPJwhere Pno='P1')as Y(y_sum)where Y.y_sum>=X.x_avg;7)求至少有一个供应商或工程所在的城市。