用户:
登录SQL Plus
SQL Plus是Oracle自带的一款工具,是在Dos界面下使用sql语句的方式来操作管理我们的数据库,也是被很多系统管理员使用的产品
系统用户:
sys,system
这两个是权限比较高的用户 sys权限高于system
我们是用sys登录的时候必须使用管理员或者系统操作人员权限才能登陆,而system可以直接登录
sysman
来操作我们的企业管理器来使用的,也是管理员级别的和用户
scott
使oracle创始人之一的名字
前三个密码是自己设置的,都基本上是统一的密码
最后一个密码默认是tiger
注:不说只能通过系统用户来登录SQL Plus,可以自己创建用户来登录
使用系统用户登录
[username/password][@server][as sysdba|sysoper]
system/wodemima @orcl as sysdba
orcl就是自己设置的服务名,或者是ip地址 在本机可以缺省
如果是sys用户具有管理员权限sysdba或者sysoper
例子:system/toor
例子:connect sys/toor as sysdba
SQL语句不区分大小写
查看登录用户
show user命令
注:在sql plus输入命令不需要以分号结尾,但是输入sql语句要以分号结束
dba_users数据字典 数据字典数据库提供的表,用于查看数据库的信息 和我们数据表一样由很多字段组成的
我们可以通过DESC查看包含哪些字段
desc dba_users
select username from dba_username;
查看到很多的用户,系统用户
启用用户:alter username account unlock;
登录后启用scott用户
alter scott account unlock;
scott:登录 connect scott/tiger
查看用户 show user
用户与表空间
表空间:是数据库的逻辑存储空间,我们可以把表空间理解为在数据库开辟的一个空间,用于存储我们数据库的对象。一个数据库可以有多个表空间构成。Oracle的表空间的概念实际上也是与我们sqlserver和mysql的主要区别。并且Oracle的很多优化都是由我们表空间来实现的。
表空间是由一个或多个数据文件来构成的。那么数据文件的位置或者大小可以由我们用户自己来定义。我们存储的表,数据库,数据库当中的一些其他的对象都是存放到表空间的数据文件中的。
表空间分类:永久表空间 临时表空间 UNDO表空间
永久表空间:存放永久化存放的对象,比如说表,试图,存储过程
临时表空间:数据库操作构成当中中间执行的过程。当执行结束后,之中的内容就会被释放掉不进行永久性保存
UNDO表空间:事务修改的旧址,也就是说修改之前的表数据 当我们对一张表修改,我们可以对数据进行保存,这样就可以对数据进行回滚也就是undo操作
查看用户表空间:oracle使用不同用户,登陆之后他们对应的表空间也有所不同
数据字典:dba_tablespaces、user_tablespaces数据字典
dba_tablespaces:我们系统管理员级别来查看的数据字典
user_tablespaces普通用户登录来查看的字典
desc dba_tablespaces
看到字段
select tablespaces_name from dba_tablespaces;
发现6个表空间
SYSTEM:主要用于存放我们sys用户的表视图,以及存储过程这样的一些数据库对象。被我们成为系统表空间
SYSAUX:作为我们EXAMPLE的辅助表空间
EXAMPLE:用于安装ORACLE数据库事例来使用的表空间
UNDOTBS1 : 用于存储一些撤销信息
TEMP:存储SQL语句处理的表和索引信息的临时表空间
USERS:永久性表空间, 存储数据库用户常见的数据库对象,和我们SYSTEM差不多的,只不过我们的SYSTEM是用来存储系统信息的
我们看下我们普通用户的表空间:
desc user_tablespaces
select tablespaces_name from user_tablespaces;
看到也是这6个表空间,当然也可以用scott登录查看
connect scott/tiger
我们发现查不到dba_tablespaces
但是可以查询user_tablespaces
dba_users和user_users数据字典
dba_users:系统管理员级可以查看的数据字典
user_users:普通用户登录,只能查询这个
权限大的查询权限小的
desc dba_users
每一个用户下面可以对应默认表空间和临时表空间。默认表空间就是将来这个用户之后,在这个用户登录之后,在这个用户下面创建对象所存放的位置
临时表空间和我们临时是一样的,存放临时信息,正常情况下,只有一个临时表空间TEMP如果想使用其他临时表空间需要自己创建
查看SYSTEM默认表空间:select default_tablespace,temporary_tablespace from dba_users where username='SYSTEM';
看到SYSTEM的默认表空间的USERS
临时表空间是:TEMP
实际上默认情况下:SYSTEM的默认表空间是SYSTEM ,而这些不重要,我们要学会如何更改默认表空间和临时表空间,这样方便我们数据的备份和恢复使用
设置用户的默认或临时表空间
ALTER USER username DEFAULT|TEMPORARY TABLESPACE tablespace_name;
默认情况下每一个用户下面只有一个临时表空间因此我们就不更改临时表空间了,我们就更改SYSTEM的默认表空间
ALTER USER system DEFAULT TABLESPACE system;
注:【普通用户没有修改默认表空间权限,如果要修改必须设置权限,否则就需要管理员级别用户为我们普通用户设置默认表空间或者临时表空间】
创建表空间:
CREATE [TEMPORARY] TABLESPACE tablespace_name TEMPFILE|DATAFILE 'xx.dbf' SIZE xx;
永久表空间:CREATE TABLESPACE tablespace_name DATAFILE 'xx.dbf' SIZE xx;
DATAFILE就是表空间当中,数据文件的名字,文件名.dbf SIZE表示大小
如果没有指定数据文件路径,会存放到ORACLE默认安装目录下面
如果要创建临时表空间:CREATE TEMPORARY TABLESPACE tablespace_name TEMPFILE 'xx.dbf' SIZE xx;
在SYSTEM
例子:创建永久表空间:CREATE TABLESPACE test1_tablespace DATAFILE 'test1file.dbf' SIZE 10m;
创建临时表空间:CREATE TEMPORARY TABLESPACE temptest1_tablespace TEMPFILE 'tempfile1.dbf' SIZE 10m;
我们如何查看表空间文件的具体路径
desc dba_data_files
我们看到tablespace和文件名
SELECT FILE_NAME FROM dba_data_files WHERE TBALESPACE_NAME = 'TEST1_TABLESPACE';
默认情况下的文件位置
查看临时表空间
SELECT FILE_NAME FROM dba_temp_files WHERE TBALESPACE_NAME = 'TEMPTEST1_TABLESPACE';
修改表空间:这里的表空间都是指永久表空间
修改表空间状态:
设置联机或脱机状态:ALTER TABLESPACE table_spacename ONLINE|OFFLINE;
当我们创建表空间之后,默认状态是联机状态
ALTER TABLESPACE test1_tablespace OFFLINE;
查看表空间状态:desc dba_tablespaces
SELECT STATUS FROM dba_tablespaces WHERE TABLESPACE_NAME = 'TEST1_TABLESPACE';
设置只读或可读写状态:ALTER TABLESPACE table_spacename READ ONLY|READ WRITE;
默认是READ WRITE状态,不管要设置只读还是可读写都是在线状态 只能是联机状态才能使只读或者是读写,脱机状态是不能更改属性的。
修改表空间数据文件:
增加数据文件:ALTER TABLESPACE tablespace_name ADD DATAFILE 'xx.dbf' SIZE xx;
删除数据文件:ALTER TABLESPACE tablespace_name DROP DATAFILE 'filename.dbf';
删除数据文件不能删除第一个数据文件,如果要删除的话就需要把整个表空间删掉
删除表空间:DROP TABLESPACE tablespace_name [INCLUDING CONTENTS]
[]表示是否要连文件一起删除