(完整word版)太原理工大学 oracle 大型数据库实验报告

(完整word版)太原理工大学 oracle 大型数据库实验报告
(完整word版)太原理工大学 oracle 大型数据库实验报告

本科实验报告

课程名称:大型数据库系统实验项目:创建数据库和表实验地点:多学科楼4506 专业班级:软件工程0901 学号:200 学生姓名:

指导教师:

2012年 4 月17 日

一、实验目的和要求

1.了解数据库的结构以及一些基本概念。

2.了解表的结构特点。

3.了解Oracle 11g的基本数据类型。

4.学会使用DBCA创建数据库。

5.学会使用界面方式创建表。

6.学会使用SQL语句手工创建数据库。

7.学会使用SQL语句创建表。

二、实验内容和原理

1.能够创建数据库的用户必须是系统管理员,或是被授权使用CREATE

DATABASE语句的用户。

2.创建数据库必须要确定数据库名、所有者(即创建数据库的用户)、数

据库大小、SGA分配和存储数据库的文件。

3.确定数据库包含哪些表以及所包含的各表的结构,还要了解Oracle 11g

的常用数据类型,以创建数据库的表。

4.创建企业管理的员工管理数据库YGGL,包含Employees(员工自然

信息)表、Departments(部门信息)表和Salary(员工薪水情况)表。

各表的结构如下所示。

三、主要仪器设备

Windows XP/7、oracle 10g/11g

四、操作方法与实验步骤

1.利用DBCA创建数据库

1)数据库名称为YGGL,它的全局数据库名称为YGGL。

2)控制文件三个,存放路径为……………………,名称分别为

CONTROL01.CR、CONTROL02.CR和CONTROL03.CR。

3)重做日志文件三个,大小为100MB,存放路径为:………………,

名称分别为redo01.log、redo02.log和redo03.log。

4)创建临时表空间temp01.dpf。

5)数字字符集为ZHS16GBK,国家字符集为AL16UTF16。

6)数据块大小为4KB。

进入DBCA,根据其提示逐步完成数据库的创建工作。

实际情况,我以创建表空间代替。

2.利用DBCA删除数据库(实际不操作)

3.在OEM和利用sql语句分别创建表

下面列出建表语句:

/**

创建Departments表

*/

create table Departments(

department_id char(3),

department_name varchar2(20) not null,

note varchar2(100),

constraint departments_pk primary key(department_id)

)

tablespace yggl;

/**

创建Salary表

*/

create table Salary(

employee_id char(6),

income number(8, 2) not null,

outcome number(8, 2) not null,

constraint Salary_pk primary key(employee_id),

constraint employee_id_foreign_key

foreign key(employee_id) references employees(employee_id)

)

tablespace yggl;

五、实验结果与分析

创建表空间:

以下为创建表,因为自己的命名习惯,对其中部分名称进行了修正,另外,一些数据的数据

类型该用更合适的数据类型。

创建employees表:

利用sql语句建表也全部成功。

六、讨论、心得(可选)

本次试验考察内容基本为数据定义语言,有数据库的创建(因为以前已建过了,所以这次我用名称空间代替),表的创建(图形化操作与sql语句操作)。差不多就这样子,通过这次试验大概可以掌握oracle数据库的基本操作,主要有助于对其环境的熟悉。

本科实验报告

课程名称:大型数据库系统

实验项目:表数据插入、修改和删除

实验地点:多学科楼4506

专业班级:软件工程0901 学号:20090学生姓名:

指导教师:

2012年 4 月19 日

一、实验目的和要求

1.学会使用PL/SQL语句对数据库表进行插入、修改和删除数据操作。

2.学会使用SQL Developer对数据库表进行插入、修改和删除数据的

操作。

3.了解数据更新操作时要注意数据完整性。

4.了解PL/SQL语句对表数据操作的灵活控制功能。

二、实验内容和原理

1.了解对表数据的插入、删除、修改都属于表数据的更新操作。对表

数据的操作可以在SQL Developer中进行,也可以由PL/SQL语句实

现。

2.掌握PL/SQL语句中用于对表数据进行插入、修改和删除的命令分别

是INSERT、UPDATE和DELETE(或TRANCATE TABLE)。

3.在执行插入、删除、修改等数据更新操作时,必须保证数据的完整

性。

4.使用PL/SQL语句在对表数据进行插入、修改及删除时,比在OEM

中操作表数据更为灵活,功能更强大。

在实验1中,用于实验的YGGL数据库中的三个表已经建立,现在要将各表的样本数据添加到表中。样本数据如表T2.1、表T2.2

和表T2.3所示。

三、主要仪器设备

WINDOWS XP/WINDOWS 7

Oracle 10g/11g

四、操作方法与实验步骤

分别使用SQL Developer和PL/SQL语句,在实验1建立的数据库YGGL的表Employees、表Departments和表Salary中插入多行数据记

录,然后修改和删除一些记录。使用PL/SQL命令进行有限制的修改和

删除。

(一)使用SQL Developer操作数据

启动SQL Developer,展开yggl_ora连接,单击”Employees”表,在

左边窗口中选择”Data”选项卡。在此窗口中,单击”Insert row”按钮,

表中将增加一个新行,在新行中双击一列空白处后输入新数据,输

完后单击”Commit Changes”按钮,将数据保存到数据库中。修改数

据的方法和添加数据类似,如果要删除一行数据,选中该行数据,

单击”Delete Selected Row(s)”按钮,之后该行的行号前会显示一个

“——”号,删除后单击”Commit Changes”按钮保存。

(二)使用PL/SQL命令操作数据

1.使用PL/SQL语句分别向YGGL数据库的表Employees、表

Departments和表Salary中插入插入一行记录。

在启动SQL*Plus窗口或SQL Developer的代码编辑窗口中,输

入以下PL/SQL语句并执行:

一下为对3个表的数据的所有插入语句:

/**

向DEPARTMENTS表中插入数据样本

*/

insert into DEPARTMENTS

values('001', '财务部', null);

insert into DEPARTMENTS

values('002', '人力资源部', null);

INSERT INTO Departments

V ALUES('003','经理办公室',NULL);

INSERT INTO Departments

V ALUES('004','研发部',NULL);

INSERT INTO Departments

V ALUES('005','市场部',NULL);

commit;

/**

向employee表中插入数据样本

*/

insert into employees

values('000001', '王林', to_date('1966-01-23', 'YYYY-MM-DD'), 1,

'中山路32-1-508', '210003', '83355668', '002');

INSERT INTO Employees

V ALUES('010008','伍容华',TO_DA TE('19760328','YYYYMMDD'),1, '北京东路100-2','210001','83321321','001');

insert into employees

values('020010', '王向荣', to_date('1982-12-19', 'YYYY-MM-DD'), 1, '四牌楼10-0-108', '210006', '83792361', '001');

INSERT INTO Employees

V ALUES('020018','李丽',TO_DATE('19600723','YYYYMMDD'),0,

'中山东路102-2','210002','83413301', '001');

INSERT INTO Employees

V ALUES('102201','刘明',TO_DATE('19721018','YYYYMMDD'),1,

'虎距路100-2','210013','83606608','005');

INSERT INTO Employees

V ALUES('102208','朱俊',TO_DATE('19650928','YYYYMMDD'),1,

'牌楼巷5-3-106','210004','84708817','005');

INSERT INTo Employees

V ALUES('108991','钟敏',TO_DATE('19790810','YYYYMMDD'),0,

'中山路10-3-105','210003','83346722','003');

INSERT INTO Employees

V ALUES('111006','张石兵',TO_DA TE('19741001','YYYYMMDD'),1, '解放路34-1-203','210010','84563418','005');

INSERT INTO Employees

V ALUES('210678','林涛',TO_DATE('19770402','YYYYMMDD'),1,

'中山北路24-35','210008','83467336','003');

INSERT INTo Employees

VaLUES('302566','李玉珉',TO_DA TE('19680920','YYYYMMDD'),1, '热和路209-3','210001','58765991','004');

INSERT INTO Employees

V ALUES('308759','叶凡',TO_DATE('19781118','YYYYMMDD'),1,

'北京西路3-7-52','210002','83308901','004');

INSERT INTO Employees

V ALUES('504209','陈琳琳',TO_DA TE('19690903','YYYYMMDD'),0, '汉中路120-4-12','210018','84468158','004');

commit;

/**

向Salary表中插入数据样本

*/

insert into Salary

values('000001', 2100.8, 123.09);

INSERT INTO Salary

V ALUES('010008',1582.62,88.03);

INSERT INTO Salary

V ALUES('102201',2569.88,185.65);

INSERT INTO Salary

V ALUES('111006',1987.01,79.58);

INSERT INTO Salary

V ALUES('504209',2066.15,108.0);

INSERT INTO Salary

V ALUES('302566',2980.7,210.2);

INSERT INTO Salary

V ALUES('108991',3259.98,281.52);

INSERT INTO Salary

V ALUES('020010',2860.0,198.0);

INSERT INTO Salary

V ALUES('020018',2347.68,180.0);

INSERT INTO Salary

V ALUES('308759',2531.98,199.08);

INSERT INTO Salary

V ALUES('210678',2240.0,121.0);

INSERT INTO Salary

V ALUES('102208',1980.0,100.0);

commit;

2.使用PL/SQL命令修改表Salary中的某个记录的字段值。

语句:

/**

update SALARY表

**/

UPDATE SALARY

SET INCOME = 2890

WHERE EMPLOYEE_ID = '000001';

COMMIT;

按回车键,执行上述语句,将编号为000001的职工收入改为2890.在OEM中打开YGGL数据库的Salary表,观察数据变

化。

3.使用PL/SQL语句修改表Salary中的所有记录的字段值。

在SQL*Plus界面中输入以下PL/SQL语句:

语句

/**

* 将其所有行的IMCOME加100

**/

UPDATE SALARY

SET INCOME = INCOME + 100;

COMMIT;

按回车键,执行上述语句,将所有职工的收入增加100。

可见,使用PL/SQL语句操作表数据比在SQL Developer中操作

表数据更为灵活。输入以下PL/SQL语句,观察数据变化。

SELECT* FROM Salary;

4.使用DELETE语句删除Salary表中一行记录。

/**

* 删除salary表中的一行记录

**/

DELETE FROM SALARY

WHERE employee_id = '010008';

COMMIT;

5.使用TRANCATE TABLE语句删除表中所有行。

在SQL*Plus界面中输入以下PL/SQL语句:

/**

*清空表

**/

delete from Salary;

delete from employees;

delete from departments;

TRUNCATE TABLE SALARY;

五、实验结果与分析

按上述过程操作,试验结果均满足预期要求。

六、讨论、心得(可选)

本次试验主要考察对表的数据的基本更新操作,即dml语言。通过对表的增删改操作熟悉对应的sql语句以及OEM操作。

本科实验报告

课程名称:大型数据库系统

实验项目:数据库的查询和视图实验地点:多学科楼506

专业班级:软件工程0901 学号:200900 学生姓名:

指导教师:

2012年4月21日

一、实验目的和要求

1、掌握SELECT语句的基本语法

2、掌握子查询的表示方法

3、掌握连接查询的表示方法

4、掌握数据汇总的方法

5、掌握SELECT语句的GROUP BY子句的作用和使用方法

6、掌握SELECT语句的ORDER BY子句的作用和使用方法

7、掌握视图的使用方法

二、实验内容

1. 了解SELECT语句的基本语法格式和执行方法

2. 了解子查询的表示方法、连接查询和数据汇总的方法

3. 了解SELECT语句的GROUP BY子句的作用和使用方法

4. 了解SELECT语句的ORDER BY子句的作用

5. 了解视图的作用和创建方法

6. 了解视图的使用方法

三、实验环境与设备

Win7、Oracle 11g

四、操作方法与实验步骤

1、SELECT语句的基本使用

(1)对于实验2给出的数据库表结构,查询每个雇员的所有数据在SQL*Plus窗口或SQL Developer中输入语句并执行

SELECT * FROM Employees;

SELECT * FROM Departments;

SELECT * FROM Salary;

(2)查询每个雇员的地址和电话

/**

* 查询每个雇员的地址和电话

**/

SELECT ADDRESS, PHONE_NUMBER

FROM EMPLOYEES;

(3)查询EmployeeID为000001的雇员的地址和电话

SELECT Address,PhoneNumber

FROM Employees

WHERE Employee_ID='000001';

(4)查询Employees表中所有女雇员的地址和电话,使用AS子句将结果中各列的标题分别指定为地址和电话

SELECT Address AS 地址,PhoneNumber AS 电话

FROM Employees

WHERE sex=0;

/**

* 查询每个女性雇员的地址和电话,并对列名重新命名

**/

SELECT ADDRESS as 地址, PHONE_NUMBER 电话

FROM EMPLOYEES

WHERE SEX = '0';

(5)计算ID号以10开头的雇员的实际收入

/**

* 计算ID号以10开头的雇员的实际收入

**/

SELECT employee_id,INCOME - OUTCOME AS 实际收入

FROM SALARY

WHERE EMPLOYEE_ID LIKE '10%';

2、子查询的使用

(1)查找在财务部工作的雇员的情况

SELECT * FROM EMPLOYEES

WHERE Department_ID=

(

SELECT Department_ID

FROM Departments

WHERE DepartmentName='财务部'

);

(2)查询财务部年龄不低于所有研发部雇员年龄的雇员的姓名

/**

* 查找财务部年龄不低于所有研发部雇员年龄的雇员的姓名

**/

SELECT * FROM EMPLOYEES

WHERE department_id IN (

SELECT DEPARTMENT_ID FROM departments

WHERE department_name = '财务部'

)

AND

birthday <= ALL (

SELECT BIRTHDAY FROM EMPLOYEES

WHERE DEPARTMENT_ID IN (

SELECT DEPARTMENT_ID FROM departments

WHERE department_name = '研发部'

)

);

(3)查找比所有财务部的雇员收入都搞得雇员的姓名

/**

* 查找比所有财务部的雇员收入都要高的雇员的姓名

**/

SELECT NAME FROM EMPLOYEES

WHERE EMPLOYEE_id IN (

SELECT EMPLOYEE_ID FROM SALARY

WHERE INCOME >= ALL (

SELECT INCOME FROM SALARY

WHERE EMPLOYEE_ID IN (

SELECT EMPLOYEE_ID FROM EMPLOYEES

WHERE DEPARTMENT_ID = (

SELECT DEPARTMENT_ID FROM DEPARTMENTS

WHERE DEPARTMENT_NAME = '财务部'

)

)

)

)

3、连接查询的使用

(1)查询每个雇员的情况以及其薪水的情况

SELECT Employees.*,Salary.*

FROM Employees,Salary

WHERE Employees.Employee_ID=Salary.Employee_ID;

(2)查找财务部收入在2200元以上的雇员的姓名及其薪水详情

/**

* 查找财务部收入在2200元以上的雇员姓名及其薪水详情

**/

SELECT name, INCOME, OUTCOME

FROM EMPLOYEES, SALARY, DEPARTMENTS

WHERE employees.employee_id = salary.employee_id

AND

employees.department_id = departments.department_id

AND

departments.department_NAME = '财务部'

AND

INCOME > 2200;数据汇总

(1)求财务部雇员的平均收入

/**

* 查找财务部雇员的平均收入

**/

SELECT A VG(INCOME) FROM SALARY, EMPLOYEES, DEPARTMENTS

WHERE salary.employee_id = employees.employee_id

AND

employees.department_id = departments.department_id

AND

departments.department_name = '财务部';

(2)求财务部雇员的平均实际收入

SELECT AVG(InCome-OutCome) AS 财务部平均实际收入

FROM Salary

WHERE Employee_ID IN

(SELECT Employee_ID FROM Employees

WHERE Department_ID=

(SELECT Department_ID FROM Departments

WHERE Department_Name='财务部'));

(3)求财务部雇员的总人数

SELECT COUNT(Employee_ID) FROM Employees

WHERE Department_ID=

(SELECT Department_ID FROM Departments

WHERE Department_Name='财务部');

5、GROUP BY和ORDER BY子句的使用

(1)求各部门的雇员数

/**

* 求各部门的雇员数

**/

SELECT DEPARTMENT_NAME, COUNT(*) FROM EMPLOYEES, departments WHERE employees.department_id = departments.department_id

GROUP BY DEPARTMENTS.department_NAME;

(2)将各部门的情况按收入由低到高排列

/**

* 将各雇员的情况按收入由低到高排序

**/

SELECT EMPLOYEES.*, SALARY.INCOME, salary.outcome

FROM EMPLOYEES, SALARY

WHERE employees.employee_id = salary.employee_id

ORDER BY INCOME;

6、使用视图

(1)创建视图

a、限制查看雇员的实际情况

CREATE OR REPLACE VIEW cx_employees

AS

SELECT EmployeeID,Name,Birthday,Sex,DepartmentID

FROM Employees;

b、限制各部门经理只能查找本部门雇员的薪水情况,如限制财务经理

想查看自己部门雇员姓名及其薪水详情

/**

* 创建财务部视图

**/

CREATE OR REPLACE VIEW CX_SALARY

AS

SELECT NAME, INCOME, OUTCOME FROM EMPLOYEES, SALARY, DEPARTMENTS WHERE employees.employee_id = salary.employee_id

AND employees.department_id = departments.department_id

AND department_name = '财务部';

(2)使用视图

/**

* 查询财务部雇员薪水情况

**/

SELECT * FROM CX_SALARY;

五、实验结果与分析

查询employees表的全部数据

查询每个雇员的地址和电话

查询每个女性雇员的地址和电话,并对列名重新命名

计算ID号以10开头的雇员的实际收入

查找财务部年龄不低于所有研发部雇员年龄的雇员的姓名

查找比所有财务部的雇员收入都要高的雇员的姓名

查找财务部收入在2200元以上的雇员姓名及其薪水详情

查找财务部雇员的平均收入

求各部门的雇员数

将各雇员的情况按收入由低到高排序

数据库原理实验报告

南京晓庄学院 《数据库原理与应用》 课程实验报告 实验一SQL Server 2005常用服务与实用工具实验 所在院(系):数学与信息技术学院 班级:14软工5班 学号:14551204 14551206 姓名:花元凯罗文波 1.实验目的 (1)了解Microsoft 关系数据库管理系统SQL Server的发展历史及其特性。 (2)了解SQL Server 2005的主要组件、常用服务和系统配置。 (3)掌握Microsoft SQL Server Management Studio 图形环境的基本操作方法。了解使用“SQL Server 2005 联机从书”获取帮助信息的方法;了解“查询编辑器”的使用方法;了解模板的使用方法。 2.实验要求 (1)收集整理Microsoft关系数据库管理系统SQL Server的相关资料,总结其发展历史及SQL Server 2005主要版本类别和主要功能特性。 (2)使用SQL Server配置管理器查看和管理SQL Server 2005服务。 (3)使用Microsoft SQL Server Management Studio连接数据库;使用SQL Server帮助系统获得 所感兴趣的相关产品主题/技术文档。

(4)使用Microsoft SQL Server Management Studio“查询编辑器”编辑并执行Transact-SQL查 询语句。 (5)查看Microsoft SQL Server 2005模板,了解模板的使用方法。 (6)按要求完成实验报告。 3.实验步骤、结果和总结实验步骤/结果 (1) 简要总结SQL Server系统发展历史及SQL Server 2005主要版本类别与主要功能特性。 SQL Server是由Microsoft开发和推广的关系数据库管理系统(DBMS),它最初是由Microsoft、Sybase和Ashton-Tate三家公司共同开发的,并于1988年推出了第一个OS/2版本。1996年,Microsoft 推出了SQL Server 6.5版本;1998年,SQL Server 7.0版本和用户见面;SQL Server 2000是Microsoft公司于2000年推出,该版本继承了SQL Server 7.0 版本的优点,同时又比它增加了许多更先进的功能。SQL Server 2005 是一个全面的数据库平台,使用集成的商业智能(BI) 工具提供了企业级的数据管理。SQL Server 2005 数据库引擎为关系型数据和结构化数据提供了更安全可靠的存储功能。SQL Server 2008是一个重大的产品版本,它推出了许多新的特性和关键的改进,使得它成为至今为止的最强大和最全面的SQL Server版本。目前最新版本是SQL SERVER 2014。 1,SQL Server 2005学习版当保护和管理应用系统内外部的信息变得至关重要时,通过提供一套免费、易于使用和健壮的数据库,学习版帮助开发人员建立强健的和可靠的应用系统。

大数据实验报告

学生实验报告册 (理工类) 课程名称:大型数据库技术专业班级:12计算机科学与技术(1)学生学号:学生姓名: 所属院部:计算机工程学院指导教师:陈爱萍

2014——20 15学年第2 学期 金陵科技学院教务处制

实验报告书写要求 实验报告原则上要求学生手写,要求书写工整。若因课程特点需打印的,要遵照以下字体、字号、间距等的具体要求。纸张一律采用A4的纸张。 实验报告书写说明 实验报告中一至四项内容为必填项,包括实验目的和要求;实验仪器和设备;实验内容与过程;实验结果与分析。各院部可根据学科特点和实验具体要求增加项目。 填写注意事项 (1)细致观察,及时、准确、如实记录。 (2)准确说明,层次清晰。 (3)尽量采用专用术语来说明事物。 (4)外文、符号、公式要准确,应使用统一规定的名词和符号。 (5)应独立完成实验报告的书写,严禁抄袭、复印,一经发现,以零分论处。 实验报告批改说明 实验报告的批改要及时、认真、仔细,一律用红色笔批改。实验报告的批改成绩采用百分制,具体评分标准由各院部自行制定。 实验报告装订要求 实验批改完毕后,任课老师将每门课程的每个实验项目的实验报告以自然班为单位、按学号升序排列,装订成册,并附上一份该门课程的实验大纲。

实验项目名称:Oracle数据库安装与配置实验学时: 1 同组学生姓名:实验地点:1316 实验日期:2015/3/27 实验成绩: 批改教师:陈爱萍批改时间:

实验1:Oracle数据库安装与配置 一、实验目的和要求 (1)掌握Oracle数据库服务器的安装与配置。 (2)了解如何检查安装后的数据库服务器产品,验证安装是否成功。 (3)掌握Oracle数据库服务器安装过程中出现的问题的解决方法。 (4)完成Oracle 11g数据库客户端网路服务名的配置。 (5)检查安装后的数据库服务器产品可用性。 (6)解决Oracle数据库服务器安装过程中出现的问题。 二、实验设备、环境 设备:奔腾Ⅳ或奔腾Ⅳ以上计算机 环境:WINDOWS 7、ORACLE 11g中文版 三、实验步骤 (1)从Oracle官方网站下载与操作系统匹配的Oracle 11g数据库服务器和客户机安装程序。 (2)解压Oracle 11g数据库服务器安装程序,进行数据库服务器软件的安装。

数据库原理实验报告(数据查询)

数据库原理实验报告 实验三数据查询 班级:××× 姓名:××× 学号:××× 数据查询 一、[实验目的] 1.掌握SQL的单表查询操作

2.掌握SQL的连接查询操作 3.掌握SQL的嵌套查询操作 4.掌握SQL的集合查询操作 二、[实验内容] 本实验的主要内容是: 1.简单查询操作。包括投影、选择条件表达,数据排序,使用临时表等。 2.连接查询操作。包括等值连接、自然连接、求笛卡儿积、一般连接、外连接、内连接、左连接、右连接和自连接等。 3.在SQL Server查询分析器中,使用IN、比较符、ANY或ALL和EXISTS操作符进行嵌套查询操作。 4.组合查询与统计查询。 (1)分组查询实验。该实验包括分组条件表达、选择组条件的表达方法。 (2)使用函数查询的实验。该实验包括统计函数和分组统计函数的使用方法。 (3)组合查询实验。 (4)计算和分组计算查询的实验。 三、[实验方法] 1.将查询需求用Transact-SQL语言表示。 2.在SQL Server查询分析器的输入区中输入Transact-SQL查询语句。 3.设置查询分析器结果区为Standard Execute(标准执行)或Execute to Grid方式。 4.发布执行命令,查看查询结果;如果结果不正确,进行修改,直到正确为止。 5 查询分析器的主要作用是编辑Transact-SQL,将其发送到服务器,并将执行结果及分析显示出来(或进行存储)。查询分析功能主要是通过测试查询成本,判断该查询是否需要增加索引以提高查询速度,并可以实现自动建立索引的功能。 图5- 错误!未定义书签。SQL Server 2000查询分析器 查询分析器的界面如图5- 错误!未定义书签。所示。在查询生成器中的左边窗口是对象浏览器,其中按树结构列出了数据库对象;右上方是SQL代码区域,用于输入SQL的查

Oracle实验报告

Oracle数据库实验报告 实验一:Oracle 10g安装卸载及相关工具配置 一、实验目标: 安装Oracle 10g,了解OEM,通过DBCA安装数据库,通过DBCA删除数据库,sqldeveloper连接数据库,卸载oracle 10g。 二、实验学时数 2学时 三、实验步骤和内容: 1、安装Oracle10g(默认安装数据库) 双击setup.exe, 选择基本安装,安装目录D:盘,标准版,默认数据库orcl,口令bhbh。 进入先决条件检查界面时:网络配置需求选项不用打勾,直接下一步,是。 直到安装成功。 2、登陆和了解OEM 主要是已网页的形式来对数据库进行管理。

http://主机IP:1158/em 用户名:sys 口令:bhbh 身份:sysdba 或者 用户名:system 口令:bhbh 身份:normal 3、通过DBCA删除已安装的默认数据库orcl 程序->Oracle - OraDb10g_home1->配置和移植工具->Database Configuration Assistant->删除数据库->…… 4、通过DBCA安装数据库xscj 程序->Oracle - OraDb10g_home1->配置和移植工具->Database Configuration Assistant->创建数据库->…… 5、sqldeveloper连接数据库 打开sqldeveloper,新建连接 连接名:system_ora 用户名:system 口令:bhbh 主机名:本机计算机名 SID:xscj 测试,显示成功,连接,保存。

6、卸载oracle 10g Windows下 1>停止所有Oracle服务,点Universal Installer卸载 2>删除注册表中的所有关于Oracle项 在HKEY_LOCAL_MACHINE\SOFTWARE下,删除Oracle目录 3>删除硬盘上所有Oracle文件。 (1)Oracle安装文件 (2)系统目录下,在Program files文件夹中的Oracle文件 四、上机作业 根据实验步骤完成逐个实验目标中的任务。 五、心得体会 通过这次的实验,我了解了oracle数据库的情况。懂得了数据库就是把数据存储在一个类似与仓库的地方,需要用时才从数据库里调出来。通过上机实践,知道了装数据库和卸载数据库,并且学会了怎样连数据库。 实验二:Oracle 10g手工建数据库 一、实验目标: 安装Oracle 10g数据库环境,手工建立数据库;通过Net Configuration Assistant建立监听,使用sqldeveloper连接数据库测试。 二、实验学时数 2学时 三、实验步骤和内容: 先安装好Oracle 10g数据库环境(不安装默认数据库)。 1.创建好相关的目录

数据库原理实验报告(1)

南京晓庄学院 《数据库原理与应用》课程实验报告 实验一 SQL Server 2005常用服务与实用工具实验 所在院(系):数学与信息技术学院 班级: 学号: 姓名:

1.实验目的 (1)了解Microsoft 关系数据库管理系统SQL Server的发展历史及其特性。 (2)了解SQL Server 2005的主要组件、常用服务和系统配置。 (3)掌握Microsoft SQL Server Management Studio 图形环境的基本操作方法。了解使用“SQL Server 2005 联机从书”获取帮助信息的方法;了解“查询编辑器”的使用方法;了解模板的使用方法。 2.实验要求 (1)收集整理Microsoft关系数据库管理系统SQL Server的相关资料,总结其发展历史及SQL Server 2005主要版本类别和主要功能特性。 (2)使用SQL Server配置管理器查看和管理SQL Server 2005服务。 (3)使用Microsoft SQL Server Management Studio连接数据库;使用SQL Server帮助系统获 得所感兴趣的相关产品主题/技术文档。 (4)使用Microsoft SQL Server Management Studio“查询编辑器”编辑并执行Transact-SQL 查询语句。 (5)查看Microsoft SQL Server 2005模板,了解模板的使用方法。 (6)按要求完成实验报告。 3.实验步骤、结果和总结实验步骤/结果 (1) 简要总结SQL Server系统发展历史及SQL Server 2005主要版本类别与主要功能特性。

黑大数据库实验报告资料

黑龙江大学 “数据库系统原理课程设计”总结报告 学院软件学院 年级2014级 专业软件工程 学号20143983 姓名陆芝浩 报告日期2016.11.9 成绩 黑龙江大学软件学院

1、开发环境 操作系统:Windows7 编程语言环境:VC++6.0 2、DBMS系统架构 3、DBMS主要功能模块 1、实现SQL语句中的Create Table建表语句,建立相应的数据库表,并生成相应的数据字典文件和数据文件。 2、实现alter table表模式的修改功能: ①能够为已建立的表添加属性。 ②能够从已建立的表中删除属性。

3、实现drop table删除表功能。 4、实现create index创建索引的功能。 5、实现drop index删除索引的功能。 6、实现insert可以向已经创建的表插入元组。 7、实现delete从已经创建的表中删除元组。 8、实现update修改表中的数据。 9、实现SELECT语句,包括: 实现单表全属性查询。 实现单表单属性查询。 实现多表的连接全属性查询。 实现多表的连接和选择条件的全属性查询。 实现多表的连接的单属性查询。 实现多表的连接和选择的单属性查询。 实现单表的选择的单属性查询。 实现单表的选择的全属性查询。 10、利用启发式关系代数优化算法进行查询优化。 11、建立访问权限,根据数据字典(DD)实现对数据库的安全性检查和完整性约束的机制。 3.1 SQL语言的词法和语法分析 (1)功能介绍 通过编译原理的知识对输入的SQL语句进行词法分析,将SQL语句拆分为若干个单词,对其进行语法分析,确定输入的SQL语句的含义. (2)相关理论 利用编译原理的相关知识,对输入的SQL语句进行模仿SQL语言的词法及语法结构的分析。

数据库数据查询实验报告

师学院数学与计算机科学学院 《数据库》实验报告 实验序号:07 实验项目名称:数据查询 学号2014210758 姓名邹业安专业、班级14信科 实验地点222 指导教师褚万军时间2017.6.07 一、实验目的及要求 ?掌握从简单到复杂的各种数据查询。包括:单表查询、多表连接查询、嵌套查询、集合查询。 ?掌握用条件表达式表示检索条件。 ?掌握用聚合函数计算统计检索结果。 二、实验设备(环境)及要求 1、环境要求: 硬件:PC(PII以上,128M以上存)、因特网接入; 软件:在SQL Server 2000中 三、实验容与步骤 1、一般简单查询 (1)不带条件的查询指定字段(考虑去掉和不去掉重复值两种情况)。select distinct 学号 from 选课 select 学号 from 选课

(2)查询某个表中的所有记录查询教师表中的所有记录 (3)使用单个条件的简单查询查询成绩大于50的学生的学号select 学号 from 选课where 成绩>50

(4)使用多个条件(AND关系)的查询 select工资 from教师 where工资>200 and工资<500 (5)使用多个条件(OR关系)的查询 select工资 from教师 where工资<200 or工资>500 (6)使用多个条件(混合AND和OR关系)的查询 select*from学生 where (院系='2'and生源='')or(院系='6'and生源='') (7)使用带NOT运算的查询

where not (生源='') (8)使用BETWEEN???AND???的查询 select * from 选课 where 成绩 between 86 and 93 (9)使用NOT???BETWEEN???AND???的查询select * from 选课 where 成绩 not between 76 and 93 (10)使用LIKE运算符的字符串匹配查询。

大型数据库管理实验报告4

武汉轻工大学 经济与管理学院实验报告 实验课程名称大型数据库管理 实验起止日期2019.11.5至2019.12.10 实验指导教师程红莉 实验学生姓名学生班级学号物流管理1702 实 验 评 语 实验 评分 教师 签名 年月日

实验项目名称数据完整性实验日期2019.12.10 学生姓名班级学号物流管理1702 一、预习报告(请阐述本次实验的目的及意义) 1.熟悉通过SQL对数据进行完整性控制。 2.完成书本上习题的上机练习。 二、实验方案(请说明本次实验的步骤和进程) 1.用Constraint和Check建立完整性约束条件 教材164页例[7] Student表的ssex 只允许取‘男’或‘女’ create table student1 (sno char(9) primary key, sname char(8) not null, sex char(2) check(sex in('男','女')), sage smallint, sdept char(20) ); 教材164页例[8] create table sc1 (sno char(9), cno char(4), grade smallint check(grade>=0 and grade<=100), primary key(sno,cno), foreign key(sno)references student1(sno), foreign key(cno)references course(cno) ); 教材164页例[7]、例[8](给学生表的性别增加约束条件,即只允许“男”或“女”。可用语句: alter table student add constraint course1 check(sex in('男','女')) alter table sc add constraint course2 check (score>=0 and score<=100) go

SQL查询—— 简单查询实验报告书

实验题目:SQL查询——简单查询 【实验目的与要求】 一、实验目的 1. 熟练掌握单表查询的SELECT语法结构; 2. 通过观察查询结果, 体会SELECT语句的实际应用。 二、实验要求 1.实验前做好上机实验的准备,针对实验内容,认真复习与本次实验有关的知识,完成实验 内容的预习准备工作。 2.能认真独立完成实验内容。 3.实验后做好实验总结,根据实验情况完成实验报告。 【实验环境】 PC机、Windows XP系统+SQL Server 2005 【实验内容】 基于实验一建立的EDUC 数据库,用Transact-SQL 语句实现如下查询: 1.选修了课程的学生学号; 2.计算机系的学生; 3.计算机系学生的学号和姓名; 4.计算机系和信息系的男生信息;(提示:逻辑运算符的优先级顺序) 5.选修上课编号为1且成绩在80-90 之间的学生学号和成绩,并将成绩乘以系数0.75 输出; (提示:新输出项要命名列标题) 6.没有成绩的学生的学号和上课编号; 7.选修上课编号为1或4的学生的学号和成绩,并要求对查询结果按成绩的降序 排列,如果成绩相同则按学号的升序排列;(提示:查询输出哪几项) 8.1995年1月1日(含)以后出生的学生信息,并按姓氏拼音字母顺序从前往后排列(注: 默认排序规则通常是Chinese_PRC_CI_AS,汉字按照汉语拼音的字典顺序来排序:首先按拼音,拼音相同按声调,声调相同按笔画数。)

9.姓李和刘的学生的信息; 10.不姓张王李刘的学生的学号、姓名和性别; 11.选修课程的学生人数; 12.选修上课编号为1的学生的最高分; 13.每位学生所修课程的平均分; 14.选修两门以上课程的学生; 15.总成绩大于200 分的学生的学号和总成绩。(提示:group by分组统计)【实验方法和步骤】 1.新建查询,在查询编辑器中依次按照如上实验内容编写SELECT语句完成查询。

Oracle 实验4(实验报告)-PL_SQL程序设计

学期 Oracle数据库应用技术 实验报告 选课序号: 班级: 学号: 姓名: 指导教师:史金余 成绩: 2017年月日

目录 1.实验目的 (1) 2.实验内容 (1) 2.1 触发器设计 (2) 2.2 存储过程、自定义函数设计 (2) 2.3 程序包设计 (3) 3.实验步骤 (3) 3.1 创建表空间RESTAURANT,创建用户DINER (3) 3.2 创建餐饮系统数据库的所有表,并向各表插入演示数据 (4) 3.3 完成【实验内容】中的触发器、存储过程、函数和程序包等 功能设计,将程序脚本保存到文本文件Source.sql中 (7) 4.实验总结 (13)

PL/SQL程序设计 1.实验目的 ◆掌握PL/SQL程序设计基本技巧,包括基本数据类型、表类型、数组类 型、匿名程序块、控制语句、PL/SQL中使用SQL语句、游标、错误处 理等。 ◆熟悉和掌握PL/SQL中关于存储过程、函数、包和触发器程序设计技术。 2.实验内容 实验平台:PL/SQL Developer或Oracle的其它客户端管理工具。 某餐饮系统数据库(加粗字段为主键,斜体字段为外键),请创建如下各数据表,并实现如下存储过程、函数、包和触发器等功能设计,将程序脚本保存到文本文件Source.sql中: (1)菜肴类别表MK(菜肴类别编号MKid,菜肴类别名称MkName),菜肴类别名称:鱼类、蔬菜类、凉菜类、肉类、主食类和酒水类等。 (2)菜单信息表MList(菜肴编号Mid,菜肴名称Mname,菜肴类别MKid,菜肴单价Mprice,菜肴成本单价Mcost,更新日期Mdate)。 (3)餐台类别表DK(餐台类别编号DKid,餐台类别名称DkName),餐台类别:包间和散台等。 (4)餐台信息表Dinfo (餐台编号Did,餐台名称Dname,餐台类别DKid,座位数Dseats,更新日期Ddate)。 (5)消费单主表C (消费单号Cid,餐台编号Did,消费开始时间StartTime,结账时间EndTime,消费金额合计Smoney,盈利金额合计SPsum),其中,消费金额合计=消费单明细表CList中该消费单号的所有消费记录的消费金额的合计,即SUM(消费金额)或SUM(菜肴单价×消费数量),盈利金额合计=消费单明细表CList中该消费单号的所有消费记录的盈利合计,即SUM((菜肴单价- 菜肴成本单价)×消费数量)。 (6)消费单明细表CList (消费单号Cid,序号Sid,菜肴编号Mid,菜肴名称Mname,消费数量Cqty,菜肴单价Mprice,菜肴成本单价Mcost,消费金额Cmoney) ,消费金额=消费数量×菜肴单价;消费数量为正数是正常点菜,消费数量为负数是退菜,消费数量为0是赠菜。

数据库原理实验报告

数据库原理 实验报告 系别电子信息系 专业计算机科学与技术班级学号4080522 姓名龚敏 指导教师李爱英

一.概要设计 1.教学数据库各表的关系模式:(加下线的属性为主键) 学生 (学号,姓名,性别, 出生日期,所在系) 英文缩写对照:student(s_no,s_name,s_sex,s_age,s_birthday,s_department) 课程 (课程号,课程名,学分) 英文缩写对照:course(c_no,c_name,c_score) 教师 (职工号,姓名,性别,职称) 英文缩写对照:teacher(t_no,t_name,t_sex,t_duty) 选课 (学号,课程号,成绩) 英文缩写对照:choice(s_no,c_no,score) 讲授 (职工号,课程号) 英文缩写对照:teaching(t_no,c_no) 2.教学数据库E-R 图: 实体:课程,学生,选课 联系:选课(学生同课程之间多对多的联系m:n),讲授(教师同课程之间多对多的联系m:n)。 二.逻辑设计 代码: use master go create database stu go use stu go n m m n 课程 教师 讲授 选课 学号 姓名 性别 出生日期 成绩 职工号 姓名 性别 职称 学分 课程号 课程名 学生

create table student (s_no char(8) not null primary key, s_name char(8) not null , s_sex varchar(8) not null, s_birthday smalldatetime not null, s_department varchar(13) not null) drop table student use stu go create table teacher (t_no char(8) not null primary key, t_name char(8) not null, t_sex varchar(8) not null, t_duty char(8) not null) create table course (c_no char(8) not null primary key, c_name char(8) not null, c_score varchar not null) create table choice( s_no char(8) not null primary key, c_no char(8) not null primary key, score varchar not null) create table teaching( t_no char(8) not null primary key, c_no char(8) not null primary key) insert student values('101','袁敏','女','1982-2-3','机电') insert student values('102','李志强','男','1983-4-5','计算机') insert student values('103','张亮','男','1984-10-9','建筑') insert student values('104','李平','女','1984-5-6','计算机') insert student values('105','王丽','女','1983-2-1','机电') insert student values('106','刘明耀','男','1982-4-16','计算机') select* from student insert course values('1011','C语言','6') insert course values('1012','数据结构','4') insert course values('1013','微机原理','6') insert course values('1014','数字电路','5') insert course values('1015','高等数学','6') select* from course insert teacher values('0511','张大维','男','副教授') insert teacher values('0512','林楠','女','讲师') insert teacher values('0513','韩晓颖','女','副教授') insert teacher values('0514','李辉','男','讲师') insert teacher values('0515','孙丽','女','助教') select* from teacher insert choice values('101','1011','82.5') insert choice values('101','1012','79') insert choice values('102','1012','92.5') insert choice

实验报告 数据库的基本查询'

一、实验目的: 通过该实验掌握应用SQL 查询数据库的基本方法,包括单表、多表查询。 二、实验原理 数据库查询是数据库的核心操作。SQL语言提供了SELECT语句进行数据库的查询。 SELECT[ALL|DISTINCT] <目标列表达式〉[,<目标列表达式〉]... FROM<表名或视图名〉[,<表名或视图名〉]... [WHERE<条件表达式>] [GROUP BY<列名1〉[HA VING<条件表达式>]] [ORDERBY<列名2〉[ASC|DESC]] 三、实验内容和方法 实验用的数据库:用实验二建立的数据库:School 1. 投影查询 (1) 查询SC表的sno的不重复记录。 使用SQL语句:“select distinct Sno from SC”,得出结果如下图所示: (2) 改变查询结果的标题名:sno为学号,sname为姓名,ssex 为性别,sdept 为系名。 使用SQL语句:“select Sno 学号,Sname 姓名,Ssex 性别,Sdept 系名from Student”,得出结果如下图所示:

(3) 查询STUDENT表的前3条记录(top 3)。 使用SQL语句:“select top 3 * from Student”,得出结果如下图所示: 3. 选择查询 (1) 查询成绩在60-80之间的姓名、系名和成绩。 使用SQL语句:“select Sname,Sdept,Grade from Student,SC where Grade>60 and Grade<80 and Student.Sno=SC.Sno”,结果如下图所示: 若使用SQL语句:“select Sname,Sdept,Grade from Student,SC where Grade between 60 and 80 and Student.Sno=SC.Sno”,则结果如下图所示: (2) 查询信息系和计算机系的姓名和成绩。 使用SQL语句:“select Sname,Grade from Student,SC where Sdept='IS' and Student.Sno=SC.Sno or Sdept='CS' and Student.Sno=SC.Sno”,结果如下图所示:

数据库sqlserver实验报告

实验一熟悉常用的 DBMS:SQL SERVER2008、Oracle 试验内容及要求: (1)了解不同数据库管理系统及不同版本的相应功能特点 目前,商品化的数据库管理系统以关系型数据库为主导产品,技术比较成熟。面向对象的数据库管理系统虽然技术先进,数据库易于开发、维护,但尚未有成熟的产品。国际国内的主导关系型数据库管理系统有Oracle、Sybase、INFORMIX和INGRES。这些产品都支持多平台,如UNIX、VMS、Windows,但支持的程度不一样。IBM的DB2也是成熟的关系型数据库。但是,DB2是内嵌于IBM的AS/400系列机中,只支持OS/400操作系统。 1.MySQL MySQL是最受欢迎的开源SQL数据库管理系统,它由MySQL AB开发、发布和支持。MySQL AB是一家基于MySQL开发人员的商业公司,它是一家使用了一种成功的商业模式来结合开源价值和方法论的第二代开源公司。MySQL是MySQL AB的注册商标。 MySQL是一个快速的、多线程、多用户和健壮的SQL数据库服务器。MySQL服务器支持关键任务、重负载生产系统的使用,也可以将它嵌入到一个大配置(mass- deployed)的软件中去。与其他数据库管理系统相比,MySQL具有以下优势: (1)MySQL是一个关系数据库管理系统。 (2)MySQL是开源的。 (3)MySQL服务器是一个快速的、可靠的和易于使用的数据库服务器。 (4)MySQL服务器工作在客户/服务器或嵌入系统中。 (5)有大量的MySQL软件可以使用。 2.SQL Server SQL Server是由微软开发的数据库管理系统,是Web上最流行的用于存储数据的数据库,它已广泛用于电子商务、银行、保险、电力等与数据库有关的行业。 目前最新版本是SQL Server2005,它只能在Windows上运行,操作系统的系统稳定性对数据库十分重要。并行实施和共存模型并不成熟,很难处理日益增多的用户数和数据卷,伸缩性有限。 SQL Server 提供了众多的Web和电子商务功能,如对XML和Internet标准的丰富支持,

数据库原理实验报告分析

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。 见上页图 要求:按表2-1、表2-2及表2-3中的字段说明创建。

大型数据库实验报告

中南大学大型数据库实验报告 课程名称大型数据库技术指导教师 姓名 学号 专业班级

《大型数据库技术》实验三 1.写一个PROC程序,查询并显示表Agents的所有记录。要求定义一个数组类型的宿主变量,一次性把所有记录从服务器端传送到客户端,然后逐行显示。 Java代码如下: public void selectAgents() throws Exception { Connection conn = this.getConnection(); Statement stmnt = conn.createStatement(); ResultSet set = stmnt.executeQuery("select * from Agents"); System.out.println("查询结果如下:\n"); while (set.next()) { String id = set.getString("AID"); String name = set.getString("ANAME"); String city = set.getString("CITY"); int percent = set.getInt("PERCENT"); System.out.println("aid:"+ id + " aname:"+ name + " city:" + city + " percent:" + percent); } set.close(); stmnt.close(); conn.close(); } 测试代码: public static void main(String[] args) throws Exception { String url = "jdbc:oracle:thin:@localhost:1521:ORCL"; String user = "jelly"; String pwd = "csusoft"; DBOpers db = new DBOpers(url, user, pwd); db.selectAgents(); } 测试结果: 2.写一个PROC程序,根据用户输入的城市,查询并逐行显示该城市所有顾客的编号、名称和折扣。如果该城市中不存在任何顾客,则调用一个错误处理函数,函数中显示错误信息:“该城市中不存在顾客”。 Java代码如下:

数据库系统原理实验报告_SQL查询语句

数据库系统原理 实验报告 :xxx 学号:xxxxxxxx 专业:xxxxx 日期:xxxxx

Lab2 一、实验目的 进一步熟悉关系数据库标准语言SQL。 二、实验环境 1)Windows 10 2)SQL Server 2017 三、实验容 给定如学生表、课程表和学生作业表所示的信息。 表1 学生表 表2 课程表 表3 学生作业表

K001 0433 60 75 75 K001 0529 70 70 60 K001 0531 70 80 80 K001 0591 80 90 90 K002 0496 80 80 90 K002 0529 70 70 85 K002 0531 80 80 80 K002 0538 65 75 85 K002 0592 75 85 85 K006 0531 80 80 90 K006 0591 80 80 80 M001 0496 70 70 80 M001 0591 65 75 75 S001 0531 80 80 80 S001 0538 60 80 写出如下SQL语句: 1.查询数据库中有哪些专业班级。(5分) Sql语句: SELECT专业班级 FROM学生表; 查询结果截图: 2.查询在1986年出生的学生的学号、和出生日期。(5分) Sql语句: SELECT学号,,出生日期 FROM学生表 WHERE出生日期LIKE'1986%'; 查询结果截图:

3.查询05级的男生信息。(5分) Sql语句: SELECT* FROM学生表 WHERE学号LIKE'05%'AND性别='男'; 查询结果截图: 4.查询没有作业成绩的学号和课程号。(5分) Sql语句: SELECT学号,课程号 FROM学生作业表 WHERE作业1成绩IS NULL OR作业2成绩IS NULL OR作业3成绩IS NULL; 查询结果截图: 5.查询选修了K001课程的学生人数。(5分) Sql语句: SELECT COUNT(DISTINCT学号) FROM学生作业表 WHERE课程号='K001'; 查询结果截图:

《Oracle数据库》实验报告

实验二Oracle数据库开发环境下PL/SQL编程(2学时) 【实验目的】 (1)掌握PL/SQL 的基本使用方法。 (2)在SQL*PLUS环境下运行PL/SQL的简单程序。 (3)应用PL/SQL 解决实际问题 【实验内容与步骤】 一、实验内容: 1、用PL/SQL实现:输入eno的值,显示emp表中对应记录的内容。 2、用PL/SQL完成:读入三个数,计算并输出它们的平均值及三个数的乘积。

3、对职工表emp中的雇员SCOTT提高奖金,若工种为MANAGER,则奖金提高其原来的20%;若工种为SALESMAN,则奖金提高其原来的15%;若工种为ANALYST,则奖金提高其原来的10%, 其它都按原来的7%提高。

4、用PL/SQL块实现下列操作 公司为每个职工增加奖金:若职工属于30号部门,则增加$150;若职工属于20号部门, 则增加$250;若职工属于10号部门,则增加$350。(提示:游标请自行阅读相关内容) DECLARE addcomm https://www.360docs.net/doc/7714264509.html,m%type; CURSOR emp_cursor IS select deptno from emp; BEGIN

FOR emprec IN emp_cursor LOOP IF emprec.deptno=30 THEN addcomm:=150; ELSIF emprec.deptno=20 THEN addcomm:=250; ELSIF emprec.deptno=10 THEN addcomm:=350; END IF; Update emp set comm=comm+ addcomm where deptno= emprec.deptno; END LOOP; COMMIT WORK; END; 实验三PL/SQL触发器和存储过程(2学时) 【实验目的】 (1)了解触发器的类型。 (2)掌握PL/SQL触发器的使用方法。 (3)了解存储过程的使用方法。 (4)掌握存储过程的使用方法。 【实验内容】 实验内容: 1、编写一个数据库触发器,当任何时候某个部门从dept表中删除时,该触发器将从emp 表中删除该部门的所有雇员。(要求:emp表、dept表均为复制后的表) CREATE OR REPLACE TRIGGER del_emp_deptno BEFORE DELETE ON dept FOR EACH ROW BEGIN DELETE FROM emp WHERE deptno=:OLD.deptno; END;

数据库原理实验报告_实验三_数据完整性与安全性控制

实验内容、步骤以及结果 1.利用图形用户界面对实验一中所创建的Student库的S表中,增加以下的约束和索引。 (18分,每小题3分) (1) 非空约束:为出生日期添加非空约束。 非空约束:取消表S中sbirth的勾。可能需要重建表。 (2) 主键约束:将学号(sno)设置为主键,主键名为pk_sno。 设主键:单击数据库Student-->单击表-->单击S-->右击sno-->选择修改命令-->对话框中右击sno-->选择设置主键'>修改主键名为pk_sno '-->保存

(3)唯一约束:为姓名(sname)添加唯一约束(唯一键),约束名为uk_sname 。 唯一约束:单击数据库Student-->单击表--> 单击S-->右击sname-->选择修改’ 命令T右击 sname-->选择索引和键命令--> 打开索引和键框图--> 添加--> 是否唯一改为是--> 名称改为us sname '-->关闭。

(4)缺省约束:为性别(ssex)添加默认值,其值为男 设默认约束:单击数据库Student宀单击表宀单击右击sno^选择修改命令宀单击cno-->在默认值栏输入男’保存

D62.s1udent - Diagram_0* D62.sludent - dbo.S* SQLQuery5.sql - D... (D62\A^m i n (52J)* 列容 埶据类型 允祥值 Q 5TI0 Ctiar(lO) n sname nvarchar (20) a 卜:S5SX nchai ■⑵ 團 sbirtti date □ adept nv ar char (20) sPhoneNo ctiar(LQ) @] 数捐类型 允傑Mdl 值 曰表设计器 RowGuid E 标识魁 不用于复制 大小 (5) CHECK 约束:为SC 表的成绩(grade)添加CHECK 约束,约束名为ck grade ,其 检查条件为:成绩应该在0-100之间。 ffin har 妊 2 Nnrh 昙否否否二

相关文档
最新文档