ORACLE学习日记 联系客服

发布时间 : 星期二 文章ORACLE学习日记更新完毕开始阅读e48db5238762caaedd33d4ae

第十八讲

Exo userid=system/manager@myral1 owner=(system,scott) file;=d;system.dmp 导出数据库

Exp userid=system/manager@myor full=y inctype=complete file=d;\\\\x.dmp 导入用imp 语句(其他用户到入表的时候不能有主外键关系)

Inp userid=scott/m123@myoral1 tables=(emp) file=file=d;\\\\scott/dmp 数据字典和动态性视图

数据字典是oracle数据库中最重要的组成部分,他提供了数据的一些系统信息(静态) 数据字典是存放在基本表里,存在在system里面。其中基表存放数据库的基本信息,普通用户不能直接访问数据字典的基表,数据字典视图是基于数据字典基表所建立的视图,普通用户可以通过查询数据字典视图取得系统信息,数据字典视图主要包括user_xxx,all_xxx,dba_xxx三个类型

User_table 用于显示当前用户所拥有的所有表,它只返回用户所对应反感的所有表 Select table_name from user_tables

All_TABLE 显示当前用户可以访问的所有表,她不仅会返回当前用户可以访问的其他方案表 select table_name from all_tables \\DBA_TABLE

他会显示所有拥有的数据库表,但是查询这种数据库字典视图,必须是DBA角色或是拥有select any table系统权限 用户名,权限,角色

在建立用户,oracle会把用户的信息存放到数据字典中,当给用户授权或是角色时,oracle会将权限和角色的信息存放到数据字典中 显示数据库用户

Select username,from DBA_users?

DBA_SYS_PRIVS可以显示用户所具有的系统权限 DBA_TAB_PRIVS 可以显示用户所具有的对象权限 DBA_COL_PRIVS 可以显示用户具有的列权限 DBA_ROLE_PRIVS 可以显示用户所具有的角色

查看SCOTT具有的角色,可以查询DBA_ROLE_PRIVS Select * from DBA_ROLE_PRIVS WHERE =?SCOTT 如何查询一个角色包括的权限 Select * from ?

查询oracle中所有的系统权限,一般用DBA SELECT * FROM SYS_PRIVILEGE_MAP 查询oracle 中所有的角色,一般是DBA SELECT * FROM DBA_ROLES

查询oracle中所有对象权,一般是DBA

SELECT DISTNCT PRIVILEGE FROM DBA_TAB_PRIVS 查询数据的表空间

Select tablespace_name from DBA_TABLESPACES 查询一个用户包含的系统权限

Select * from dba_sys_privs where grantee=?DBA?

SELECT * FROM ROLE_SYS_PRIVS WHERE ROLE=?DBA? 如何究竟有多少中角色

SELECT * FROM DBA_ROLES

显示当前用户可以访问的所有数据字典视图

SELECT * FROM DICT WHERE COMMENT LIKE ?%RANT%? 显示当前数据全称

Select * from global_name

数据字典记录有ORACLE 数据库的所有系统信息,通过查询数据字典可以取得以下的系统信息,比如

A 对象定义情况 B 对象所占用空间大小 C 列信息 等 但因为这些个信息,可以通过PL/SQL DEVELOPER 动态性能视图记载了里程启动后的相关信息

动态性能视图用于记录当前历程的活动信息,启动oracle server时,系统会建立动态性能视图,当停止ORACLE SERVER 时,系统会删除动态性能视图 管理表空间和数据文件

介绍,表空间时数据库的逻辑组成部分,从物理上讲,数据库数据存放在数据文件中,从逻辑上讲,数据则是存放在表空间中,表空间由一个或是多个数据文件组成 ORACLE的逻辑结构报考表空间,段,区,和块 表空间由段构成,段由区构成,区由块构成

表空间用于从逻辑上组织数据库的数据,数据库逻辑上是由一个或是多个表空间组成的。 作用

A控制数据占用的磁盘空间

B DBA可以讲不同数据类型部署到不同的位置,这样由利于提高I/O性能

建立表空间 create tablespace 命令完成的,建表空间一般是特权用户或是DBA执行 的 建立数据库后方便管理,最好建立自己的表空间,

Create tablespace data01 datafile ?d:\\test\\data01.dbf? size 20m uniform size 128 使用数据表空间

Create table mypart(deptno number(4)),dname varchar2(14),loc varchar2(130) tablespace data01 查询所在表空间 改变表空间状态,表空间处于联机状态,此时表空间是可以访问的,并且空间执行各种语句, (1) 使用表空间脱机

Alter tablespace biaokongjian offline B 使用表空间脱机

Alter tablespace biaokongjian o C 只读 表空间或写,用write

ALTER TABLESPACE BIAOGONGJIAN READ ONLY 知道表空间名,显示该空间包括的所有的表

Select * from all_tables where tablespace_name=?biaokongjianming? 知道表名,查看该表属于哪个空间

Select tablespace_name ,table_name from user_tables where table_name=?emp? 删除表空间

Drop tablesspace “biaokongjianming ” including contents and datafiles 扩展表空间

表空间是由数据文件组成,表空间的大小实际上就是数据文件相加的大小,那么我们可以想象

Show users

Insert into mypart select * from mypart 拓展表空间由三种 增加数据文件

Alter table tablespace sp01 add datafile ?d;\\test\\sp01.dbf? size 20m 增加数据文件大小

Alter table tablespace biaokongjianming ?d;\\test\\sp01.dbf? size 20m 设置文件的自动增长

Alter table tablespace biaokongjianming ?d;\\test\\sp01.dbf“ autoextend on next 10M maxsize 500M

移动数据文件

确定数据文件所在的表空间

Select tablespace_name from dba_data_files where file_name=? d;\\test\\sp01.dbf? 使表空间脱机

Alter tablespace sp01 offline

使用命令移动数据文件到指定位置

Host move d;\\test\\sp01.dbf c;\\test\\sp01.dbf 移动数据文件

Alter tablespace sp01 rename datafile ?d;\\test\\sp01.dbf?to “c;\\test\\sp01.dbf? 使空间联机

Alter tablespace sp001 online 其他表空间 索引表空间 Undo 表空间 临时表空间

非标准块的表空间 第二十一讲

数据的完整性用于确保数据遵从一定的商业和逻辑规则,数据完整性可以使用约束,触发器,应用程序,三种方法。

约束用于确保数据库数据满足特定的商业规则, 约束包括 Not null 不为空

Unique 唯一 可以为空

Primary key 主键 唯一的标示表行的数据,不能重复而且不能为空 只能一个主键 Foreign key 外键 外键列数据必须在主表的主键列存在或是为NULL Check 检查 强制执行数据必须满足的条件 增加约束

ALTER TABLE 命令

在增加not null 用midify

Alter table goods modify goosname not null

Alter table customer add constraint aa unique(cardID) 删除约束

Alter table emp drop constraint 约束名称

删除主键约束时候,存在主从关系,那么要在删除主表的主键约束的时候 必须带上CASCADE

Alter table emp drop primary key cascade

显示约束信息

通过查询user_constraints 可以显示所有约束信息

Select constraint_name,constraint_type,from user_constraints where table_name=表名 索引是用于加速数据存取的数据对象,合理使用索引可以大大的降低io的次数 创建索引

Create index suoyi on customer (列名1,列名2) 使用原则 1 在大表上建立索引才有意义

2 在WHERE 子句或是链接跳上 经常用的列

缺点,建立索引,系统要占用大约表的1.2倍的硬盘和内存空间来保存索引 更新数据的时候,系统必须要有额外的时间来同时对索引进行更新。以维持数据和索引的一致性。 权限和角色 创建和授予

Create user ken identified by ken

Grant create session,create table to ken with admin option 对象权限,常用有

Alter 修改 delete 删除 select查询 insert 添加 Update 修改 index 索引 references 引用 execute 希望monkey 授权Scott 可以查询 Grant select on emp to monkey

With grant option 只能授予用户,不能授予角色 第23讲

预定义角色,是指oracle所提供的角色 1 connect角色 2 resource 角色 3 DBA 角色

自定义角色 一般是DBA设定

建立角色 create role jueseming not identified (不验证) Create role 角色名 identity by SHUNP 赋予权限

Grant create session to jueseming with admin option Conn scott/tiger@myoral

Grant select on scott,emp to jueseming Grant insert,update,delete on scott.emp 分配角色给某个用户 Conn system/manager

Grant jueseming to blake with admin option 删除 角色 Drop role juese 第25讲

PL/SQL是oracle在标准语言上的扩展,不仅允许嵌入SQL语言还可以定义变量和常量。 过程,函数,触发器是PL/sql编写,过程,函数,触发器是在oracle中,PL/QSL是非常强大的数据库语言,过程函数,可以在JAVA程序中可以调用。 编写一个存储过程,该过程可以插入