Oracle 表空间和数据对象
#表空间、数据库对象
#创建同义词并访问
create user XiaoMei identified by XiaoMei;
grant connect to XiaoMei;
grant resource to XiaoMei;
grant create synonym to XiaoMei;
#连接至XIAOMEI后
CREATE SYNONYM MyEmp FOR SCOTT.EM;
#删除同义词
DROP [PUBLIC] SYNONYM [schema.]sysnonym_name;
#序列
#创建一个从1开始,默认最大值,每次增长1的序列,要求NOCYCLE,缓存中有30个预先分配号的序列号
create sequence myseq
minvalue 1
start with 1
nomaxvalue
increment by 1
nocycle
cache 30
/
#通过伪列访问该序列的当前值和下一个值
select myseq.nextval from dual;
select myseq.currval from dual;
#修改序列
alter sequence
#删除序列
drop sequence myseq;
#视图(预定义查询)
#基于emp和dept建立视图
create or replace view empdetail
as
select empno,ename,job,hiredate,e.deptno,dname
from scott.emp e
join scott.dept
4000
d
on e.deptno = d.deptno
with read only
/
select * from empdetail;
#索引
#Oracle 数据库会为表的主键和包含唯一约束的列自动创建索引。索引可以提高查询的效 率,但是在数据增删改时需要更新索引,因此索引对增删改时会有负面影响
#为 EMP 表的 ENAME 列创建创建唯一索引,为 EMP 表的工资列创建普通索引,
把 JOB 列先变为小写再创建索引。
create unique index uq_ename_idx on scott.emp(ename);
CREATE INDEX IDX_SAL ON scott.EMP(SAL);
CREATE INDEX IDX_JOB_LOWER ON scott.EMP(LOWER(JOB));
#表空间
#系统表空间:SYSTEM,影响数据库性能
#临时表空间:TMEP,内存不足时将排序类数据临时写在该空间内
#用户自定义空间:用户可以通过 CREATE TABLESPACE 命令创建表空
#创建一个表空间,包含两个数据文件大小分别是 10MB,5MB,要求 extent 的
大小统一为 1M
create tablespace myspace
datafile ‘D:/A.ORA’ SIZE 10M,
‘D:/B.ORA’ SIZE 5M
EXTENT MANAGEMENT LOACL
UNIFORM SIZE 1M
/
#扩充表空间
ALTER TABLESPACE MYSPACE
ADD DATAFILE ‘D:/C.ORA’ SIZE 10M
/
#为某一用户指定默认表空间
CREATE USER ACONG IDENTIFIED BY ACONG
DEFAULT TABLESPACE MYSPACE
/
#为表指定表空间
CREATE TABLE SCORES
(
ID NUMBER,
TERM VARCHAR2(2),
STUID VARCHAR2(7) NOT NULL,
EXAMID VARCHAR2(7) NOT NULL,
WRITTENSCORE NUMBER(4,1) NOT NULL,
LABSCORE NUMBER(4,1) NOT NULL
)
TABLESPACE MYSPACE
/
#为索引指定表空间
CREATE INDEX UQ_ID ON SCORES(ID)
TABLESPACE MYSPACE
#回顾:创建同义词的命令是CREATE SYNONYM
#练习
#1.产生一个用于 DEPT 表的主键值的序列,序列起始值是 100,最大值是 500,增长步 长是 10
CREATE SEQUENCE DEPTSEQ
MINVALUE 100
MAXVALUE 500
INCREMENT BY 10
/
#2.用序列产生 DEPT 表的主键,向 DEPT 表中插入 3 条记录
#3.为 DEPT 表创建一个同义词
CREATE SYNONYM DEPT FOR SCOTT.DEPT;
#4.创建一个视图包括 EMP 表的 EMPNO,ENAME,JOB,部门表的 DNAME 列,只能包含 销售部的记录
CREATE OR REPLACE VIEW EMPDETAIL
AS
SELECT EMPNO,ENAME,JOB,DNAME
FROM SCOTT.EMP E
JOIN SCOTT.DEPT D
ON E.DEPTNO = D.DEPTNO
WHERE DNAME = ‘SALES’
/
SELECT * FROM EMPDETAIL
/
5.为 EMP 表的 ENAME 列创建唯一索引
CREATE UNIQUE INDEX EMP_IDX ON SCOTT.EMP(ENAME);
- oracle删除某用户下数据对象及表空间
- Oracle插入数据时出现ORA-01950:对象空间‘XXX’无权限问题
- 【基础】Oracle 表空间和数据文件
- Oracle数据空间的使用、监控和维护
- oracle 安装步骤,导入导出数据,创建表空间 创建用户
- Oracle自定义数据类型 2 (调用对象方法)
- Day59-Oracle03 - 创建表空间、创建表(子查询创建表)、表的约束、事务、数据库对象(视图、序列、索引、同义词)、PLSQL编程、(if,循环)、数据的导入导出备份
- Oracle创建表空间、创建用户、授权、授权对象的访问以及查看权限
- oracle导出对象结构和对象数据
- Oracle 表空间与数据文件
- oracle中的数据库、用户、方案、表空间、表对象之间的关系
- Oracle数据对象--视图
- oracle存储结构: 表空间/数据文件/段/分区/块
- oracle 不小心把表数据锁掉,sys查询被锁对象和解锁SQL语句
- ORACLE数据存储空间的管理
- oracle 不同表空间的数据迁移
- ORACLE常用的SQL语法和数据对象
- Oracle中对空间数据还原出错
- ORACLE 查询表空间中对象的大小
- oracle中的数据库、用户、方案、表空间、表对象之间的关系