知识点:学习 Oracle 数据库应用。主要学习如何创建表空间和用户,同时介绍如何运用 索引、同义词、序列等数据库对象。
1、表空间管理
什么是表空间?表空间是指 Oracle 数据库内部数据的逻辑组织结构,对应于磁盘上的一个或多个物理数据文件。
表空间的作用?Oracle 通过表空间的数据库对象来组织数据文件。在将数据插入 Oracle 数据库之前,必须首先建立表空间,然后将数据插入表空间的一个对象中。
如何理解表空间?数据库、表空间、数据文件、表、数据之间的关系可以用柜子、抽屉、文件夹、纸,以及写在纸上的信息的关系来描述。
数据库就是柜子,柜中的抽屉是表空间,抽屉中的文件夹是数据文件,文件夹中的纸是表,写在纸上的信息就是数据。即使在自己的柜子中也不应该把保险单放在名叫“学校记录”的抽屉中,而应放在名为“保险”的抽屉。数据库中的表空间也应使用类似的规则。
表空间的分类:永久性表空间、临时性表空间、撤销表空间。
- 永久性表空间:一般保存表、视图、过程和索引等的数据。SYSTEM、SYSAUX、 USERS、EXAMPLE 表空间是默认安装的。
- 临时性表空间:只用于保存系统中短期活动的数据,如排列数据等。
- 撤销表空间:用来帮助回退未提交的事务数据,已提交了的数据在这里是不可以恢复的。一般不需要创建临时和撤销表空间,除非把他们转移到其他磁盘中以提高性能。
对不同的用户分配不同的表空间,对不同的模式对象分配不同的表空间,方便对用户数据的操作,对模式对象的管理。可以将不同数据文件创建到不同的磁盘中,有利于管理磁盘空间,有利于提高 I/O 性能,有利于备份和恢复数据等。一般在完成 Oracle 系统的安装并创建 Oracle 实例后,Oracle 系统会自动建立多个表空间。
1.1 创建表空间
每个数据库创建的时候,系统都会默认地为它创建一个 SYSTEM 表空间,一个数据库 可以有若干表空间,也可以只有一个 SYSTEM 表空间。逻辑上的方案对象,如数据表、索引等既可以存储在物理上的一个数据文件内,也可以跨越物理上的数据文件,但必须属于同一个表空间。 创建表空间语法:
create tablespace tablespace_name
datafile ‘file_name’ [SIZE integer [K | M] ]
[AUTOEXTend [OFF | ON]];
语法说明:
- tablespace_name:表空间名称。
- DATAFILE:指定组成表空间的一个或多个数据文件,当有多个数据文件时使用逗号分隔。
- file_name:指数据文件的路径和名称。
- SIZE:指定文件的大小,用 K 指定千字节大小,用 M 指定兆字节大小。
- AUTOEXTEND :用来启用或禁用数据文件的自动扩展,设置为 ON 则空间使用完毕会 自动扩展,设置为 OFF 则很容易出现表空间剩余容量为 0 的情况,使数据不能存储到数据库中。
示例练习1:创建一个自动增长的表空间workdbs
第一步:使用系统账户system登录PLSQL Developer(system 密码manager)
第二步:单击菜单栏【文件】——【新建】——【SQL Window】,并输入语句:
create tablespace worktbs --创建表空间,表空间的名字是worktbs
datafile 'D:\oracle\worktbs1.dbf' --指定表空间存放的位置,这里要写完整路径,带上表空间的全称
size 3M --指定表空间的大小
autoextend ON; --设置表空间自增长开启(也就是允许自增长)
第三步:单击工具栏上的执行按钮,提示“已完成”。然后打开本地电脑磁盘对应文件夹,查看文件。
1.2 删除表空间
删除表空间语法: DROP TABLESPACE 表空间名;
示例练习2:删除表空间workdbs
写完以后,点击工具栏执行按钮即可,提示“已完成”,代表已删除该表空间。
注意:使用drop方法删除表空间时,表空间的物理文件是不会被删除的,需要手工来删除。
提醒:删除表空间之前最好对数据库进行备份。
2、SQL语言基础(DML,DDL)
2.1 SQL 语言简介
SQL 语言是高级的结构化查询语言。用户使用 SQL 语言进行数据操作时,只需要提出“做什么”,而不必指明“怎么做”,具体的执行过程有系统自动完成,大大减轻了用户负担。SQL 语言是数据库服务器和客户端之间的重要沟通手段,用于存取数据以及查询、更新和管理关系型数据库系统。 经过多年的发展,SQL 语言已经成为关系型数据库的标准语言。SQL 支持如下类别的命令。
- 数据定义语言(DDL):CREATE(创建)、ALTER(更改)、TRUNCATE(截断)、 DROP(删除)命令。
- 数据操作语言(DML):INSERT(插入)、SELECT(选择)、DELETE(删除)和 UPDATE(更新)命令。
- 事务控制语言(TCL):COMMIT(提交)、SAVEPOINT(保存点)和 ROLLBACK(回滚)命令。
- 数据控制语言(DCL):GRANT(授予)和 REVOKE(回收)命令。
2.2 DDL 语言
数据定义语言中,CREATE TABLE 语句用来创建新表、ALTER TABLE 语句用来修改结构,TRUNCATE TABLE 语句用来删除表中的所有记录,DROP TABLE 语句用来删除表。本章结合以前学过的 DDL 语言知识,主要介绍数据定义语言中常用的 CREATE TABLE 命令和较为陌生的 TRUNCATE TABLE 命令。
(1)CREATE TABLE 命令语法:
CREATE TABLE [schema.] table_name
(
column_name1 datatype1,
[column_name2 datatype2],
……
)
语法说明:
- schema 表示对象的所有者,即模式的名称。如果用户在自己的模式中创建表,则可以不指定所有者名称。
- ta