Oracle
1、Oracle的体系结构
2、Oracle的存储结构
分为物理存储结构和逻辑存储结构,如下图:
物理存储:
控制文件(.ctl)、日志文件(.log)、数据文件(.dbf/.ora)
数据文件:
-
数据文件时数据库的物理存储单位。
数据库的数据是存储在表空间中,真实在一个或者多个数据文件中,一旦数据文件被加入到某一个表空间后,就不能删除这个文件,如果要删除某个数据文件,只能删除期所属的表空间才可以 -
表的数据,是由用户放入某一个表空间的,而这个表空间会随机的把这些数据放到一个或者多个数据文件中。
-
oracle数据库由用户和表空间对数据进行管理和存放的。表不是由表空间查询的,而是由用户去查询。
逻辑结构:
段、区、块(Segments/Extents/DataBlocks)、表空间
从存储的角度只有段:
- 段存在于表空间中。段是区的集合。
- 区是数据块的集合。
- 数据块会映射到磁盘块。
表空间:
- 表空间是oracle对物理数据库上相关数据的逻辑映射,
- 一个数据库在逻辑上可以被划分为一个或者若干个表空间,每一个表空间包含了在逻辑上相关的一组结构。
- **每一个数据库实例至少有一个表空间(system表空间),每一个表空间有同一磁盘上的一个或多个文件组成,**这些文件叫数据文件,一个数据文件只能属于一个表空间
数据库的存储结构:
实例:
一个oracle实例有一系列的后台进程和内存结构组成,一个Oracle’数据库可以有n个实例
用户:
用户是建立在实例下的。不同的实例可以创建相同名字的用户
3、Oracle 12c创建 示例数据库
在12c之前,每一个oracle在安装的时候,如果指定了要安装示例数据库,则系统会默认创建一个用户scott/tiger.
创建用户:
使用超级管理员的身份登录
方式一:
新建命令窗口,使用命令创建
-- 创建scott用户
create user scott identified by tiger;
--为scoot赋予权限
Grant connect,RESOURCE,UNLIMITED TABLESPACE TO scott;
--设置用户使用的表空间
ALTER USER scott default tablespace users;
--设置用户的临时表空间
Alter user scott Temporary tablespace temp;
方式二:
在user中创建新用户
方式三:
4、表的相关操作
1 . 创建表
创建表必须指定表明 列明 数据类型 大小
前提是该用户必须具备create table的权限
Create table dept(
deptno Number(2),
dname Varchar2(20),
loc varchar2(100)
)
oracle 的数据类型
数据类型 | 描述 |
---|---|
varchar2(size) | 可变长字符串 |
char(size) | 定长字符串 |
number(p,n) | 可变长数值类型 |
date | 日期型 |
long | 可变长字符数据 最大可达2G |
clob | 字符数据 最大可达4G |
Bob | 二进制数据 最大可达4G |
2 . 修改表(alter table:)
-- 新增一列 追加的新列一定位于最后
alter table dept add(dnum number(2) default 10);
--修改现有列 数据类型 尺寸 默认值
alter table dept modify (dnum number(3) default 100);
--删除列
alter table dept drop COLUMN dnum;
--重命名列
alter table dept rename COLUMN loc to location;
3 . 删除表
--删除表
drop table department;
4 . 清空表中的数据
--清空表
delete from dept;
truncate table dept;
注意:
-
delete 删除表中的数据 删除的数据在未提交之前 可回滚 不释放占有的存储空间和资源
-
truncate 清空数据 删除表中的所有数据,删除之后 不可回滚 释放占有的存储空间和资源
5 . 重命名表
--重命名表
rename dept to department;
6 . 创建示例数据库及初始化表
-- 创建表
-- 部门表
create table dept(
deptno number(2) constraint pk_dept primary key,--部门编号
dname varchar2(14),--部门名称
loc varchar2(13)--部门的位置
);
-- 初始化表
-- 插入测试数据 —— dept
INSERT INTO dept VALUES (10,'ACCOUNTING','NEW YORK');
INSERT INTO dept VALUES (20,'RESEARCH','DALLAS');
INSERT INTO dept VALUES (30,'SALES','CHICAGO');
INSERT INTO dept VALUES (40,'OPERATIONS','BOSTON');