Oracle数据库开发必备利器之SQL基础——用户与表空间

用户与表空间

用户

系统用户

sys(管理员/系统操作员) > system(可直接登录)
sysman(操作企业管理器 - 管理员级别)
scott(默认密码tiger)

用户登录语句

  [username/password] [@sever] [as sysdba|sysoper]

这里写图片描述

system登录:
这里写图片描述
sys登录:
这里写图片描述

这里写图片描述

查看登录用户

 show user

这里写图片描述
不是sql语句,可以不加分号结束。

查看数据字典

desc dba_users

这里写图片描述

查看所有用户

select username from dba_users;

是sql语句,需要加分号结束。
这里写图片描述

启用用户的语句

alter user username account unlock;

例子对scott用户解锁

alter user scott account unlock;

这里写图片描述

锁定用户的语句

alter user username account lock;

使用scott用户登录SQL Plus

这里写图片描述

表空间

数据库与表空间

表空间是数据库的逻辑存储空间。可以理解为在表空间中开辟一个空间用来存储数据库的对象。一个数据库可以由多个表空间构成。可用过表空间进行优化

表空间与数据文件

表空间是由一个或多个数据文件构成,数据文件的位置,大小可由用户定义。

表空间的分类

1.永久表空间:用于存放数据库当中永久化存放的数据库对象,例如表、视图、存储过程等等。
2.临时表空间:用于存放数据库操作中的中间执行的过程,当执行结束之后,存放的内容会被自动释放掉,它不进行永久性保存。
3.UNDO表空间: 保存事务所修改的旧值,修改前的数据(利于撤销等方便回滚)

查看用户表空间

  • dba_tablespaces(系统用户)
  • user_tablespaces (普通用户)

这里写图片描述
dba_tablespaces默认表空间共六个
这里写图片描述
简要介绍一下这六个表空间的职能范围:

  • SYSTEM: 是系统表空间;
  • SYSAUX: 是EXAMPLE的辅助表空间;
  • UNDOTBS1:存储一些撤销信息的表空间;
  • TEMP: 用于存储临时表空间;
  • USERS: 是永久性表空间,当用户创建了对象,就会保存在这里,和SYSTEM表空间作用类似,不过SYSTEM保存的是系统信息;
  • EXAMPLE:安装oracle实例的表空间。

在scott用户下访问dba_tablespaces是会报错的。这说明了不同的登录用户有着不同的使用权限!

这里写图片描述
user_tablespaces 默认表空间共六个
这里写图片描述

查看用户

  • dba_users
  • user_users

在scott用户下访问 dba_users是会报错的。
因为权限的问题,必须切换登录用户为SYSTEM.(connect system/口令)
然后重复 dba_users,则可以得到system用户的一些信息。如图所示:
这里写图片描述
现在来查看一下它的默认表空间和临时表空间是什么(分别是用户创建对象后默认存放的地点和临时信息存放的空间地点,并且默认只有一个临时表格空间),语句如下:

select default_tablespace, temporary_tablespace from dba_users where username='SYSTEM';

特别要注意,SYSTEM必须要大写!
这里写图片描述

设置用户的默认或临时表空间

ALTER USER username
DEFAULT|TEMPORARY
TABLESPACE tablespace_name

同时应该知道,普通用户是没有权限修改默认表格空间的。

创建表空间

CREATE [TEMPORARY] TABLESPACE
tablespace_name
TEMPFILE|DATAFILE 'xxx.dbf' SIZE xx

不指定路径,默认安装到oracle安装目录下。

  • 创建永久表空间:

    这里写图片描述

  • 创建临时表空间

    这里写图片描述

查看表空间具体路径

  • 查看数据字典字段

    desc dba_data_file

    这里写图片描述

  • 查看永久表空间路径

    select file_name from dba_data_file where tablespace_name='表空间名字要大写';

    这里写图片描述

  • 查看临时表空间路径

    select file_name from dba_temp_file where tablespace_name='表空间名字要大写';

    这里写图片描述

修改表空间的状态

  • 设置联机或脱机状态
    这里写图片描述
    脱机状态是不能使用的

这里写图片描述

  • 查看表空间状态

    select status from dba_tablespaces where tablespace_name='xxx'; //表空间名字要大写

    这里写图片描述

  • 设置只读或者可读写状态

    表空间必须为联机状态,联机状态默认为读写状态
    这里写图片描述

这里写图片描述

这里写图片描述

这里写图片描述

修改表空间的数据文件

  • 添加数据文件

    这里写图片描述

    这里写图片描述

    这里写图片描述

  • 删除数据文件
    不能删除表空间的第一个数据文件。
    这里写图片描述

这里写图片描述

删除表空间

这里写图片描述

  • 删除表空间,不包括数据文件:

    drop tablespace tablespace_name
  • 删除表空间及数据:

    drop tablespace tablespace_name[including contents];

    这里写图片描述

猜你喜欢

转载自blog.csdn.net/cckevincyh/article/details/80819081
今日推荐