开讲Oracle系列片之前还是要厚脸皮提一下"口碑"的事!没办法,领导施加压力,天天催口碑的事,要完成部门任务,我也没办法!!Holly也想好好静下心研究技术和大家一起分享,但是“口碑任务“完不成,就没法静心搞技术!我每天上10节课,早8:30到晚8:30,下班了,在写微信公众号,整理知识点!有点小辛苦,有点累,但是还是要每天坚持做自己该做的事!教学要做,个人提升要做,团队任务也要完成,毕竟在一个团队里,每个人不可能只做自己喜欢做的,但是不想做的事这也是我的工作内容的一部分,也需要完成!所以各位小伙伴们,如果你身边有想学java的,UI设计,前端,大数据,.net,记得联系holly老师!

(三)oracle 表、表空间、权限管理_数据库

 1.3 数据库相关操作

 1.3.1  创建数据库

  1.组成

   表空间由一个或多个数据文件组成;从逻辑上讲,是数据库中最大的逻辑单元,可进一步划分为小的逻辑存储单元。一个Oracle数据库至少包含一个表空间。

  2.数据库结构分类:

   (1) 逻辑结构:指数据库创建之后形成的逻辑概念之间的关系。

   (2) 物理结构:数据库中的一组操作系统文件。

  3.oracle物理组件:

   (1) 数据文件:存储数据库文件,比如表、索引等。

   (2) 日志文件:用于记录对数据库进行的详细的修改信息,在数据库所做的详细修改都被放在日志中。

   (3)控制文件:是记录数据库物理结构的二进制文件,该文件包含维护和验证数据库完整性的一些必要信息。

  4.创建:

   安装时自动创建,安装成功后,通过配置助手创建

  5.创建数据库步骤:

   (1)配置和移植工具→Database Configuration Assistant

   (2)配置和移植工具→Net Configuration Assistant

 1.3.2 SQL语言

  1.简介

   (1)非过程化查询语言

   (2)是沟通数据库服务器和客户端的重要工具

   (3)查询、更新和管理关系数据库系统

  2.分类:

   (1)数据定义语言(DDL):

    CREATE(创建)、ALTER(更改)和DROP(删除)命令。

   (2) 数据操纵语言(DML):

    INSERT(插入)、DELETE(删除)和UPDATE(修改)命令。

   (3)事务控制语言(TCL):

    COMMIT(提交)、SAVEPOINT(保存点)和ROLLBACK(回滚)命令。

   (4)数据控制语言(DCL):

    GRANT(授予)和REVOKE(回收)命令。

   (2) 数据操纵语言(DQL):

    SELECT(选择)

 1.3.3. 表空间

  1.3.3.1.概念:

   表空间是oracle数据库存储数据的逻辑单元

   一个表空间向上可以存放各种应用对象。

   一个表空间向下由多个数据文件组成。

   表空间是最大的逻辑存储结构,它对应一个或多个数据文件 ,表空间的大小是它所对应的数据文件大小的总和。

  1.3.3.2.表空间分类:

   (1)永久性表空间:

    一般保存基表、视图、过程和索引等数据。SYSTEM、SYSAUX、USERS、EXAMPLE表空间是默认安装的。

   (2)临时表空间:

    用于保存系统中短期活动的数据,如排序数据等。

   (3)撤销表空间:

    用来帮助回退末提交的事务数据,已经提交的数据再这里是不可以恢复的。一般不需要建立临时表空间和撤销表空间,除非把他们转移其他磁盘中以便提高性能。

  1.3.3.3.表空间的目的:

   (1) 对不同用户分配不同的表空间,对不同的模式对象分配不同的表空间,方便对用户操作,对模式对象管理。

   (2)可以将不同数据库文件创建到不同的磁盘中,有利于管理磁盘空间,有利于提高I/O性能,有利于备份和恢复数据等。

  1.3.3.4.数据库存储结构的组成:

   (1)SYSTEM表空间:

    SYSTEM表空间用于存放ORACLE系统内部表和数据字典的数据,如表名、列名、用户名等。不建议用户创建的表和索引放在该表空间下.

   (2)SYSAUX表空间:

    该表空间下存放系统内部的常用样例用户的对象。一般不存储用户的数据,由ORACLE系统内部自动维护。

   (3)撤销表空间:

    该表空间用于存放撤销信息。用来存放增删改操作前的数据。当增删改完成后,会释放该表空间的部分空间,一般创建oracle实例后,会创建一个叫UNDOTBS1的撤销表空间

   (4)USERS表空间:

    建议用户使用该表空间。可以在改表空间创建各种对象、表、索引等。oracle的基本样例用户SCOTT对象就存放在USERS表空间中。

   (5)TEMP表空间:

    存放临时数据的表空间。

  1.3.3.5.创建表空间

   1.语法:

    CREATE TABLESPACE  tablespacename  DATAFILE 'filename'  [SIZE  integer [K|M] [AUTOEXTEND  [OFF| ON] ];

   2.语法说明:

    (1)CREATE 创建

    (2)TABLESPACE 表空间

    (3)tablespacename 表空间的名称

    (4)DATAFILE 指定一个或多个表空间的数据文件,当有多个数据文件时用逗号隔开

    (5)filename 是表空间中数据文件的路径和名称,默认以.dbf结尾

    (6) SIZE 用来指定文件大小,K表示指定千字节大小,M用于指定兆字节大小。

    (7)AUTOEXTEND用来启用或禁用数据文件的自动扩展,on为自动扩展

   3.案例

    create tablespace tab_tb111

    datafile 'C:\oracle\product\10.2.0\oradata\orcl\holly.dbf'

    size 30m autoextend on;

  1.3.3.6 调整表空间大小   

1.语法:

    ALERT DATABASE  DATAFILE '<数据库文件全路径>'  RESIZE <新的大小>

  1.3.3.7 改变表空间的读写状态:

   1.使表空间只读

    ALERT TABLESPACE <表空间> READ ONLY;

   2.使表空间可读写

    ALERT TABLESPACE <表空间> READ WRITE;

   3.online在线

   3.offline离线

  1.3.3.8  删除表空间:

   1.删除表空间不删除.dbf物理文件:

    ① 语法: DROP TABLESPACE  表空间名称;

    ② 注意:此时只能删除表空间,不能删除表空间下的.dbf文件;

    ③  例如:表空间是房间,你可以把房间四周墙进行破拆,但是房子原来里面的内容还在原位

   2.删除表空间时一起删除.dbf物理文件:

    ①语法:drop tablespace 表空间名 including contents  and datafiles;

    ② 注意:删除表空间时删除表空间下的.dbf文件;

    ③  例如:表空间是房间,拆迁时把原来房间内容一起移除

  1.3.3.9 查询存在的表空间:

   select tablespace_name,status from dba_tablespaces;

   查询已经存在的表空间名称和状态(注字段是死的)

  示例1:

--1.表空间操作

--1.1 创建表空间

create tablespace tab_tb111

datafile 'C:\oracle\product\10.2.0\oradata\orcl\holly.dbf'

size 30m autoextend on;

 

--1.2 修改变空间大小

alter database datafile

'C:\oracle\product\10.2.0\oradata\orcl\holly.dbf'

resize 50m;

 

--1.3 删除表空间(不能删除空间下的.dbf数据文件)

drop tablespace tab_tb111;

 

--1.4 再次创建

create tablespace tab_tb111

datafile 'C:\oracle\product\10.2.0\oradata\orcl\holly.dbf'

size 30m autoextend on;

 

--1.5 删除表空间(同时删除数据文件:优选)

drop tablespace tab_tb111 including contents  and datafiles;

 

--1.6 查看所有表空间

select tablespace_name,status from dba_tablespaces;

 1.3.4 用户权限管理

  1.3.4.1 用户

   1.默认用户:

    (1) 系统用户:SYS,SYSTEM

    (2)测试账户:SCOTT

   2.创建用户并指定使用的表空间

    语法:CREATE USER <用户名> IDENTIFIED BY <口令>  DEFAULT  TABLESPACE <表空间名> TEMPORARY TABLESPACE <临时表空间名>  QUOTA 100M ON <表空间名>;

   3.修改用户

    语法:ALTER USER <用户名>  <属性名>  <属性值>

   4.删除用户

    语法:DROP USER <用户名> CASCADE;

   案例

create tablespace tbs_holly

datafile 'C:\oracle\product\10.2.0\oradata\orcl\tb111.dbf'

size 30m autoextend on;

 

--2.1 创建用户并赋密码

create user holly identified by sys default tablespace tbs_holly;

 

--2.2 删除用户

drop user holly cascade;

  1.3.4.2 权限

   1.分类:

    (1) 系统权限

     ①CREATE  SESSION:连接到数据库

     ②CREATE TABLE:创建表

     ③CREATE  VIEW:创建视图

     ④CREATE  SEQUENCE:创建序列

    (2) 对象权限

     ①管理员直接向用户授予权限

     ②管理员将权限授予角色,然后再将角色授予给一个或多个用户。

     

    (3)系统角色:

     ①CONNECT:连接数据库

     ②RESOURCE:创建表、触发器、存储过程等。

     ③DBA:数据库管理员角色,拥有管理数据库的最高权限。

   2.授权:

    语法:GRANT  权限或角色 TO 用户名;

   3.撤销权限:

    语法:REVOKE 权限或角色   FROM   用户名;

 

有问题或更好建议可以联系holly老师,让我们共同学习:

每周会不定期的进行: 斗鱼直播讲堂(房间号672217)

直播时间会在前一天的微信公众号通知!

希望大家天天关注微信公众号哦!

博客园: 红酒人生(有大量技术帖子)

想高薪就业 就学习java,安卓,大数据,数据库,web开发,前端开发 ,可以来" 北大青鸟南京中博软件学院" 找 Holly老师 哦!!!Holly老师欢迎您来咨询!

长按下方二维码关注Holly老师公众号,一起学java吧!

(三)oracle 表、表空间、权限管理_数据_02