`

Oracle 数据库对象

 
阅读更多

准备数据:

赋予scott创建各种资源的权限。
grant resource to scott;

create table staff (id varchar2(2),name varchar2(10),sex varchar2(2),corpid varchar2(2));
insert into staff(id,name,sex,corpid) values('01','李成','男','01');
insert into staff(id,name,sex,corpid) values('02','赵兰','女','05');
insert into staff(id,name,sex,corpid) values('03','刘丰','男','03');
insert into staff(id,name,sex,corpid) values('04','钱峰山','男','04');
insert into staff(id,name,sex,corpid) values('05','张凯','男','02');
insert into staff(id,name,sex,corpid) values('07','李想','男','04');
insert into staff(id,name,sex,corpid) values('06','刘丽','女','02');
insert into staff(id,name,sex,corpid) values('09','周恒久','男','04');
insert into staff(id,name,sex) values('08','孙小萍','女');

create table corp (id varchar2(2),name varchar2(10));
insert into corp(id,name) values('01','办公室');
insert into corp(id,name) values('02','财务科');
insert into corp(id,name) values('03','质量科');
insert into corp(id,name) values('04','生产部');
insert into corp(id,name) values('05','销售部');
insert into corp(id,name) values('06','后勤科');

01、表
⑴定义表
create table student (
id number(8) primary key,
name varchar2(20) constraint student_name_nn not null,
sex number(1) constraint staff_check_sex check(sex=1 or sex=0);
age number(3),
register_date date,
grade number(2) default 1,
class number(4),
email varchar2(50)),
constraint student_name_email_uni unique(email, name)
constraint student_class_fk foreign key (class) references class(id)
);

create table class (
id number(4) primary key,
name warchar2(20) not null
);

⑵约束表
列约束,写在列名后,不能将多个约束联合起来,只有表级约束可以组合多个约束条件。
五种约束:非空,检查,唯一,主键,外键。外键约束中被引用的列必须是主键。

⑶修改表
alter table add(addr varchar2(100));
alter table student drop (addr);
alter table student modify (addr varchar2(150));
alter table student drop constraint student_pk;
alter table student constraint student_pk primary key(id);
alter table student drop constraint student_class_fk;
alter table student add constraint student_class_fk foreignkey (class) references class(id);

⑷删除表
drop table student;
删除后,检查列表:
select * from tab;
会发现有一些名为BIN$....==$0 的表,这是10g的新特性“闪回表”。
purge recyclebin; --用来删除回收站中所有的表
purge table class; --用来删除class表
flashback table student to before drop; --用来闪回被删除的表
drop table student purge; --彻底删除表

⑸系统对象
desc dictionary;
select table_name from dictionary where table_name like 'USER%';

desc dba_constraints;
desc all_constraints;
desc user_constraints;
select constraint_name,constraint_type from user_constraints where table_name='STAFF';

desc user_tables;
select table_name from user_tables;

02、索引
添加主键约束/唯一约束时自动建立索引
索引,高效读,低效写,慎重使用索引

create unique index staff_unique_index on staff(id);
create index idx_student_email on student(email);
drop index idx_student_email;

desc user_indexes;
select index_name from user_indexes;

03、视图
将常用子查询创建为视图,简化查询,保护私有数据;但也增加了维护成本。
create or replace view myview
as
select empno,ename,job,mgr,sal,comm,deptno from emp where deptno>20;

scott 权限不足,执行本语句前,先赋权限:
grant create view to scott;

执行视图:
select * from myview;

create or replace view myview
as
select * from abc where c>10 whith check option ;

带有check option,则插入数据时,如果c小于10,则不允许插入。


create or replace view scview(id,name,sex,corpid,company)
as
select s.id,s.name,s.sex,c.id,c.name from staff s,corp c where s.corpid=c.id;

在这里,视图中不能有重名的列,否则创建失败。
create or replace view scview
as
select s.id,s.name,s.sex,c.id as corpid,c.name as corp from staff s,corp c where s.corpid=c.id;

只读视图
create or replace view staff_ro_view
as
select id,name from staff with read only ;

存储视图对象的系统表:
dba_views;
all_views;
user_views;

desc user_views;
select view_name from user_views;

查看视图文本,视图名必须用大写:
select text from user_views where view_name='STAFF_RO_VIEW' ;

04、同义词
一个用户访问另一个用户数据对象时,一定要加上用户名前缀:
select deptno,dname,loc from scott.dept;
为了使用非前缀形式,需要创建同义词。同义词分两类:
公共同义词:dba建立
私有同义词:当前用户建立(默认)

create synonym dept for scott.dept;
create public synonym t_staff for tom.t_staff;

sys 授权scott创建同义词
grant create any synonym to scott;

scott为tom用户创建同义词:
create synonym t_staff for tom.t_staff;

sys:创建公共同义词
drop sysnonym t_staff;
create public synonym t_staff for tom.t_staff;

存储同义词的系统表:
desc dba_synonyms
desc user_synonyms;
select synonym_name,table_name,table_owner from user_synonyms;


05、序列
用来产生唯一的不间断的数字序列,一般用来做主键

create sequence myseq
start with 1 --开始,默认为1
increment by 1 --递增,默认为1
order --排序
nocycle; --禁止循环

select myseq.nextval from dual;
select myseq.currval from dual;
drop sequence myseq;

使用了nextval之后,currval才会有效。

create table auto(a number,b varchar2(10));
insert into auto values(myseq.nextval,'test...');

alter sequence myseq increment by 3;
可以修改序列递增量,不能修改当前值。

desc dba_sequences; /all_sequences/user_sequences
select sequence_name,sequence_owner from dba_sequences where sequence_owner='TOM';


06、表空间
一个表空间对应多个数据文件。
conn / as sysdba;

create tablespace myts
datafile 'c:/oracle/product/10.2.0/oradata/orcl/myts.dbf' size 10M;
alter user tester default tablespace myts;

grant unlimited tablespace,dba to tester;
conn tester/test;

create table tre(t char(10),re number);
create table ty(t char(10),y varchar2(10)) tablespace users;

通过OEM管理:http://localhost:1158/em/
OEM-表空间,编辑myts,myts脱机,用于备份。
OEM—表-方案:TESTER,对象tre/ty,可以检查它们的表空间。
OEM-创建表空间-本地管理:该区每个数据文件保留一个位图,跟踪记录块的使用状态,空闲状态。每个位对象一个/组块。
字典管理用于老旧版本中,现在一般采用本地管理。

分享到:
评论

相关推荐

    Oracle数据库对象管理及备份与恢复.pdf

    首先,关于Oracle数据库对象管理,主要包括创建和修改表结构、管理索引、维护表分区、创建和管理视图及序列等操作。创建表(CREATE TABLE)是数据库管理中最基础的操作,涉及到数据类型、存储参数和数据块管理等特性...

    oracle数据库对象导出脚本

    ### Oracle数据库对象导出脚本知识点解析 #### 标题:Oracle数据库对象导出脚本 此标题指明了本文档的主题是关于如何通过编写脚本来导出Oracle数据库中的对象定义。在Oracle数据库中,对象是指数据库表、视图、...

    oracle数据库对象管理笔记.doc

    Oracle数据库对象管理笔记 Oracle 数据库对象管理是 Oracle数据库中的一项重要功能,它允许用户在数据库中创建、管理和维护不同的对象,例如表、索引、存储过程、函数等。本笔记将为您详细讲解 Oracle 数据库对象...

    Oracle数据库对象操作

    一份简洁、明了的Oracle数据库对象操作

    IBM-ETP-Oracle04第四章 数据库对象管理

    在Oracle数据库对象管理中,权限和角色的概念也很重要。**权限** 控制用户对数据库对象的操作,而**角色** 是一组权限的集合,便于权限管理。我们可以用`GRANT`和`REVOKE`来赋予和撤销权限,`CREATE ROLE`和`DROP ...

    oracle数据库对象管理实用教案.pptx

    oracle数据库对象管理实用教案.pptx

    Oracle数据库对象PPT教案.pptx

    Oracle数据库对象PPT教案.pptx

    oracle数据库对象管理PPT课件.pptx

    oracle数据库对象管理PPT课件.pptx

    Toad完成Oracle数据库对象管理技术教程.docx

    Toad完成Oracle数据库对象管理技术教程.docx

    oracle数据库对象管理学习教案.pptx

    oracle数据库对象管理学习教案.pptx

    A07_DDL与Oracle数据库对象.pptx

    A07_DDL与Oracle数据库对象.pptx

    Oracle数据库入门教材(PDF)

    五、Oracle数据库对象 Oracle数据库中的对象包括表、索引、视图、存储过程、触发器、游标等。学习如何创建、修改和删除这些对象是掌握Oracle数据库操作的基础。 六、数据管理 Oracle提供了强大的数据管理工具,如...

    Oracle数据库课件

    三、Oracle数据库对象 Oracle支持多种类型的数据库对象,如: 1. 表(Table):存储数据的基本单元,由列和行组成。 2. 视图(View):虚拟表,基于一个或多个表的查询结果。 3. 索引(Index):提高数据查询速度的...

    Oracle数据库工具安装包(免安装)

    1. **SQL*Plus**:这是一个强大的命令行工具,用于执行SQL语句和PL/SQL块,管理数据库对象,以及执行数据库脚本。SQL*Plus在Oracle Client中扮演着核心角色,是数据库管理员和开发人员常用的工具。 2. **OCI ...

    Oracle数据库体系结构( 中文详细版)

    1. **数据文件**(Data Files):数据文件是Oracle数据库存储实际数据的地方,包含了表、索引、视图等对象的数据。每个表空间由一个或多个数据文件组成,每个数据文件中包含一系列的数据块,这是Oracle数据存储的...

    Oracle数据库总结

    Oracle 数据库总结 Oracle 数据库是甲骨文公司的一款关系数据库管理系统,是目前世界上流行的关系数据库管理系统,系统可移植性好、使用方便、功能强,适用于各类大、中、小、微机环境。下面是 Oracle 数据库的总结...

    Oracle数据库经典学习教程

    1. Oracle数据库对象 67 2. 同义词 67 3. 序列 70 4. 视图 72 5. 索引 74 6. 表空间 75 7. 本章总结 79 8. 本章练习 80 PL/SQL程序设计 83 1. PL/SQL简介 84 2. PL/SQL块 85 3. PL/SQL数据类型 89 4. PL/SQL条件控制...

    Oracle 数据库应用:第9章 管理数据库对象.ppt

    总之,理解并熟练掌握这些Oracle数据库对象的管理技巧,对于提升数据库性能、保障数据安全和优化数据操作流程具有重要意义。通过本章的学习,用户将能够更高效地管理和维护Oracle数据库中的各种对象,进一步提升...

    Oracle数据库系统应用与开发

    此外,了解SQL语法,包括DML(数据操纵语言)用于插入、更新和删除数据,以及DDL(数据定义语言)用于创建和修改数据库对象,都是必不可少的。 三、Oracle数据库安装与配置 安装Oracle数据库涉及选择适当的版本(如...

Global site tag (gtag.js) - Google Analytics