实验 1数据库管理
一、目的和要求
(1)了解 Oracle 数据库的逻辑结构和物理结构;
(2)了解 Oracle Enterprise Manager 的使用情况;
(3)学习关闭和启动数据库实例的方法;
(4)学习使用 SQL 语句创建数据库的方法;
(5)学习使用 SQL 语句删除数据库的方法。
二、实验准备
首先要了解 Oracle 数据库的逻辑结构,包括方案(schema)对象、数据块(data block)、区间(extent)、段(segment)和表空间(tablespace)等。数据库由若干个表空间组成,表空间由表组成,段由区间组成,区间则由数据块组成。Oracle 数据库的物理结构由构成数据库的操作系统文件所决定。每个 Oracle 数据库都由 3 种类型的文件组成:数据文件、日志文件和控制文件。这些数据库文件为数据库信息提供真正的物理存储。
Enterprise Manager 10g 是 Oracle 10g 提供的新的管理工具,简称 EM。使用它可以完成启动、关闭数据库,创建、删除数据库等功能。只有系统管理员或拥有 CREAT E DATABASE权限的用户才能创建数据库。可以在 Enterprise Manager 中通过图形界面创建数据库,也可以使用 CREATE DATABASE 语句创建数据库。
三、实验内容
(1)练习使用不同方法启动和关闭数据库实例。
(2)练习使用不同 方法创建和删除数据库,要使操作的数据库为用户管理数据库UserMan。
1.使用 SHUTDOWN 命令关闭数据库实例
练习使用 SHUTDOWN 命令关闭数据库实例,分别按以下方式启动数据库实例。
(1)正常关闭。等待当前所有已连接的用户断开与数据库的连接,然后关闭数据库。
正常关闭的语句如下:
SHUTDOWN NORMAL
(2)立即关闭。回退活动事务处理并断开所有已连接的用户,然后关闭数据库。立即
关闭的语句如下:
SHUTDOWN IMMEDIATE
(3)事务处理关闭。完成事务处理后断开所有已连接的用户,然后关闭数据库。事务
处理关闭的`语句如下:
SHUTDOWN TRANSACTIONAL
(4)中止关闭。中止数据库实例,立即关闭数据库。中止关闭的语句如下: SHUTDOWN ABORT
每次执行 SHUTDOWN 语句关闭数据库实例之前,请执行 STARTUP 命令启动数据库。
2.使用 STARTUP 命令启动数据库实例
练习使用 STARTUP 命令启动数据库实例,分别按以下方式启动数据库实例。
(1)启动数据库实例时不装载数据库。执行此操作的命令如下:
STARTUP NOMOUNT
(2)启动数据库实例,装载数据库,但不打开数据库。通常在数据库维护时执行此操作,对应的命令如下:
STARTUP MOUNT
(3)启动后限制对数据库实例的访问。执行此操作的命令如下:
STARTUP RESTRICT
(4)强制实例启动。在遇到特殊异常的情况时,可以强制启动实例。强制启动实例的
语句如下:
STARTUP FORCE
每次执行 STARTUP 语句启动数据库实例之前,请执行 SHUTDOWN 命令关闭数据库。
3.使用 ORACLE Enterprise Manager 关闭数据库实例
按照下面的步骤关闭数据库实例。
(1)在数据库处于打开状态 时,使用 SYS 用户以 SYSD BA 身份登录到 EnterpriseManager。在主目录页面的“一般信息”栏目中,可以看到“关闭”按钮。
(2)单击“关闭”按钮,可以打开“主机和目标数据库身份证明”页面。用户需要拥有管理员 的权限才能关闭数据库实 例,包 括主机操作 系统的管理员和当前数据库实例的SYSDBA 用户。
(3)输入完成后,单击“确定”按钮,打开“确认关闭”页面。
(4)单击“是”按钮,开始关闭数据库。关闭操作完成后,单击“刷新”按钮,打开“启动数据库实例”页面。
4.使用 ORACLE Enterprise Manager 启动数据库实例
按照下面的步骤启动数据库实例。
(1)使用 SYS 用户以 SYSDBA 身份登录到 Enterprise Manager。
(2)单击“启动”按钮,打开“主机和目标数据库身份证明”页面。用户需要拥有管理员的权限才能启动数据库实例,包括主机操作系统的管理员和当前数据库实例的SYSD BA用户。
(3)输入完成后,单击“确定”按钮,打开“确认打开”页面。
(4)单击“是”按钮,开始打开数据库。
5.使用 SQL 语句创建数据库
按照如下条件创建数据库 UserMan。
(1)设置 SYS 用户的密码为 SYSPWD,设置 SYSTEM 用户的密码为 SYSTEMPWD。
(2)使用已有的控制文件。
(3)指定日志文件组 redo01.log,大小为 10MB;指定日志文件组 redo02.log,大小为10MB。设置最大的日志文件数量为 10。
(4)定义日志文件组中最大的日志文件数量为 5。
(5)定义最大的数据文件数量为 100。
(6)定义数据库中最大的实例数量为 1。
(7)定义存储数据的字符集为 US7ASCII。
(8)定义数据文件名称为 SYS01.dbf,初始大小为 100MB。
(9)定义默认的表空间为 tbs_1。
同义词语法:CREATE [PUBLIC] SYNONYM synonym FOR object;
1.创建同义词语句:
create public synonym table_name for user.table_name;
其中第一个user_table和第二个user_table可以不一样。
此外如果要创建一个远程的数据库上的某张表的同义词,需要先创建一个Database Link(数据库连接)来扩展访问,然后在使用如下语句创建数据库同义词:create synonym table_name for table_name@DB_Link;
当然,你可能需要在user用户中给当前用户(user2)授权: grant select/delete/update on user2
2.删除同义词:
drop public synonym table_name;
3.查看所有同义词:
select * from dba_synonyms
同义词拥有如下好处:节省大量的数据库空间,对不同用户的操作同一张表没有多少差别;扩展的数据库的使用范围,能够在不同的数据库用户之间实现无缝交互;同义词可以创建在不同一个数据库服务器上,通过网络实现连接。
Oracle数据库中提供了同义词管理的功能。Oracle同义词是数据库方案对象的一个别名,经常用于简化对象访问和提高对象访问的安全性。
AD:
在Oracle中对用户的管理是使用权限的方式来管理的,也就是说,如果我们想使用数据库,我们就必须得有权限,但是如果是别人将权限授予了我们,我们也是能对数据库进行操作的,但是我们必须要已授权的表的名称前键入该表所有者的名称,所以这就是比较麻烦的,遇到这种情况,我们该怎么办呢?创建个Oracle同义词吧!这样我们就可以直接使用同义词来使用表了。
1.同义词的概念
Oracle数据库中提供了同义词管理的功能。同义词是数据库方案对象的一个别名,经常用于简化对象访问和提高对象访问的安全性。在使用同义词时,Oracle数据库将它翻译成对应方案对象的名字。与视图类似,同义词并不占用实际存储空间,只有在数据字典中保存了同义词的定义。在Oracle数据库中的大部分数据库对象,如表、视图、同义词、序列、存储过程、包等等,数据库管理员都可以根据实际情况为他们定义同义词。
2.Oracle同义词的分类
Oracle同义词有两种类型,分别是公用Oracle同义词与私有Oracle同义词。
1)公用Oracle同义词:由一个特殊的用户组Public所拥有。顾名思义,数据库中所有的用户都可以使用公用同义词。公用同义词往往用来标示一些比较普通的数据库对象,这些对象往往大家都需要引用。
2)私有Oracle同义词:它是跟公用同义词所对应,他是由创建他的用户所有。当然,这个同义词的创建者,可以通过授权控制其他用户是否有权使用属于自己的私有同义词。
3.Oracle同义词创建及删除
创建公有Oracle同义词的语法:Create [public] synonym 同义词名称 for [username.]objectName;
Drop [public] synonym 同义词名称
4.Oracle同义词的作用
1) 多用户协同开发中,可以屏蔽对象的名字及其持有者。如果没有同义词,当操作其他用户的表时,必须通过user名.object名的形式,采用了Oracle同义词之后就可以隐蔽掉user名,当然这里要注意的是:public同义词只是为数据库对象定义了一个公共的别名,其他用户能否通过这个别名访问这个数据库对象,还要看是否已经为这个用户授权。
2) 为用户简化sql语句。上面的一条其实就是一种简化sql的体现,同时如果自己建的表的名字很长,可以为这个表创建一个Oracle同义词来简化sql开发。
3)为分布式数据库的远程对象提供位置透明性。
5.Oracle同义词在数据库链中的作用
数据库链是一个命名的对象,说明一个数据库到另一个数据库的路径,通过其可以实现不同数据库之间的通信。
Create database link 数据库链名 connect to user名 identified by 口令 using ‘Oracle连接串’; 访问对象要通过 object名@数据库链名。同义词在数据库链中的作用就是提供位置透明性。
篇一:实验二 SQL语言数据定义语言DDL
一、实验目的
SQL(Structured Query Language)语言是关系数据库的标准语言。是一种介于关系代数与关系演算之间的结构化查询语言,其功能并不仅仅是查询,SQL语言是一个通用的、功能极强的关系数据库语言。
本次实验了解SQL语言中DDL语言的CREATE、DROP、ALTER对表、索引、视图的操作,掌握在Navicat for MySQL中用DDL语言进行对表、索引、视图的增加、删除和改动。掌握使用SQL语句增加或删除约束,加深对完整性概念的理解,达到灵活应用的目的。掌握使用SQL语
句定义和删除同义词。
二、实验要求
1、实验前:预习实验内容,学习相关知识。
2、实验中:按照实验内容要求进行实验,实验时注意每种SQL语句的基本命令及各个关键字的含义,做好实验记录。
3、实验后:分析实验结果,总结实验知识,得出结论,按格式写出实验报告。
4、在整个实验过程中,要独立思考、独立按时完成实验任务,不懂的要虚心向教师或同学请教。
5、要求按指定格式书写实验报告,且报告中应反映出本对次实验的总结,下次实验前交实验报告。
三、实验的重点与难点
1、重点:
(1)用SQL语句定义表结构(创建、修改和删除)。
(2)用SQL语句定义索引(创建、删除)。
(3)用SQL语句定义视图(创建、删除)。
(4)用SQL语句定义同义词(创建、删除)。
2、难点:
完整性约束的定义、增加及删除。
同义词的定义与删除。
四、仪器设备及用具
硬件:投影仪、每位同学分配已连接校园网PC机一台。
软件:本机已安装MySQL 5.5数据库平台。
五、教学过程
(一)实验预习
(1)熟悉SQL中的CREATE、DROP、ALTER语句的格式及所用的关键字含义及用法。
(2)掌握完整性约束定义、增加和删除的一般用法。
(3)掌握同义词定义、删除的一般用法。
(二)实验原理
在Navicat for MySQL中使用CREATE命令完成对表、索引、视图、同义词的创建,使用DROP命令完成对表、索引、视图、同义词的删除,使用ALTER命令对表结构进行修改及完整性约束的增加、删除。
(三)实验内容
1.运行Navicat for MySQL,连接到test数据库,用如下语句进行表操作,详细的语法格式如下:
CREATE TABLE 表名字
(列名1 数据类型 [DEFAULT expression],
列名2 数据类型 [DEFAULT expression],
|[CONSTRAINT
(index_col_name,...)
| KEY [index_name] [index_type] (index_col_name,...)
| INDEX [index_name] [index_type] (index_col_name,...)
| [CONSTRAINT [symbol]] UNIQUE [INDEX]
[index_name] [index_type] (index_col_name,...)
| [FULLTEXT|SPATIAL] [INDEX] [index_name] (index_col_name,...) | [CONSTRAINT [symbol]] FOREIGN KEY
[index_name] (index_col_name,...) [reference_definition]
| CHECK (expr) [symbol]] PRIMARY KEY [index_type]
建立表主要指定义下列信息:
列定义、主键定义、键定义、索引定义 、完整性约束、外键定义、表达式检查
例如在新建查询中输入如下语句:
CREATE TABLE NEW_DEPT92150033
(DPTNO DECIMAL(10,2),
DNAME CHAR(6),
LOC CHAR(13),
PRIMARY KEY (DPTNO));
点击运行,创建表NEW_DEPT92150033,如下图所示:
选中表,单击右键,执行刷新进行表刷新,这时你可以看到新建的表。
更改表详细的语法格式如下:
增加一个列:
alter table 表名字 ADD [COLUMN] column_definition [FIRST | AFTER col_name ],.);
修改一个列:
alter table 表名字 MODIFY [COLUMN] column_definition [FIRST | AFTER col_name],.);
删除一个列:
alter table 表名字DROP [COLUMN] col_name;
在查询编辑器中执行create table语句首先建立一个test92150033表,然后分别使用alter table add、alter table modify、alter table drop column在表test92150033上来增加两个列、修改一个列和删除一个列。SQL语句如下所示:
create table test92150033 (id var20) not null);
alter table test92150033 ADD (name varchar (30) default '无名氏' not null);
alter table test92150033 ADD (age integer not null);
alter table test92150033 MODIFY name var16);
alter table test92150033 drop column age;
删除表语法:
Drop table 表名字;
例如在查询编辑器中执行如下语句删除表:
Drop table test92150033;
2. 用如下语句进行视图操作,详细的语法格式如下:
CREATE VIEW 视图名 AS SELECT FROM ;
视图是一个逻辑表,它允许操作者从其它表或视图存取数据,视图本身不包含数据。视图所基于的表称为基表。
引入视图有下列作用:
提供附加的表安全级,限制存取基表的行或/和列集合。
隐藏数据复杂性。 为数据提供另一种观点。
例如在查询编辑器中执行如下语句建立视图:
先建立基表:
CREATE TABLE t (qty INT, price INT);
插入记录
INSERT INTO t VALUES(3, 50);
INSERT INTO t VALUES(5, 10);
在基表t的基础上,创建视图v。
CREATE VIEW v AS SELECT qty, price, qty*price AS value FROM t; 从视图v检索数据
SELECT * FROM v;
结果如图所示。
点击视图可以看到新建立的视图v,如图所示。
篇二:《数据库原理》实验报告2 SQL语言的DDL
一、实验目的:
SQL Server 2000的'查询分析器是一种特别用于交互式执行SQL语句和脚本的极好的工具。
SQL(Structured Query Language)语言是关系数据库的标准语言。是一种介于关系代数与关系演算之间的结构化查询语言,其功能并不仅仅是查询,SQL语言是一个通用的、功能极强的关系数据库语言。
在本次实验中熟悉表的创建、删除、修改及索引的创建与删除
二、实验内容
1. 启动数据库服务软件SQL Server 2000的查询分析器,用如下语句对表进行操作,详细的语法格式参看课本相应章节: Create Table 建表 Drop Table 删除表 Alter Table 更改表
2.如下语句对索引进行操作,详细的语法格式参看课本相应章节: Create Index 建立索引 Drop Index 删除索引
三、实验任务
1.打开数据库SQL Server 2000的查询分析器,用Create Table建表aa,表
2.用Create Table建表bb,表结构如下所示(其中Bb1与Bb2的组合是主键):
3.用Drop Table删除表aa。
4.用Alter Table修改表bb,添加一个字段Bb4,类型Varchar,长度20。
5.用Create Index对表Bb的Bb3字段建立一个升序索引,索引名Indexbb。
6.用Drop Index删除索引Indexbb。
Create Table aa
(Aa1 Varchar (20) primary key, Aa2 Int, Aa3 Decimal );
Create Table bb (Bb1 Varchar (30), Bb2 Int,
Bb3 Decimal (6,2), primary key (Bb1,Bb2) );
Drop Table aa;
Alter Table bb add Bb4 Varchar (20);
Create Index Indexbb on bb(Bb3 asc );
Drop Index bb.Indexbb;
篇三:实验二 SQL语言的DDL
一、实验目的
SQL(Structured Query Language)语言是关系数据库的标准语言。是一种介于关系代数与关系演算之间的结构化查询语言,其功能并不仅仅是查询,SQL语言是一个通用的、功能极强的关系数据库语言。
从本次实验开始,我们将详细的学习SQL的DDL(数据定义语言))。
本次实验了解DDL语言的CREATE、DROP、ALTER对表的操作,学会SQL Server 2000的查询分析器中用DDL语言进行对表的创建、删除和改动。
二、实验内容
1. 启动数据库服务软件SQL Server 2000的查询分析器,用如下语句对表进行操作,详细的语法格式参看课本相应章节:
Create Table 建表
Drop Table 删除表
Alter Table 更改表
三、实验任务
1.验证性实验:在学生-课程数据库中创建student等三张表。
2.设计性实验:在SPC数据库中创建S、P等表,参见第二章课后习题说明,必须设定关系的两个不变性,其余完整性约束条件及属性类型自拟。