Oracle Database,又名Oracle RDBMS,或简称Oracle。是甲骨文公司的一款关系数据库管理系统。它是在数据库领域一直处于领先地位的产品。可以说Oracle数据库系统是目前世界上流行的关系数据库管理系统,系统可移植性好、使用方便、功能强,适用于各类大、中、小、微机环境。它是一种高效率、可靠性好的 适应高吞吐量的数据库解决方案。
对于开发来说,了解和学习Oracle数据库是非常有必要的。
这篇文章仅仅是对Oracle做了一个简单的总结,后续如果用到或接触到的知识点,都会做补充
show user 命令
SQL> show user
通过 dba_users 这个表查看登陆的用户信息,那么在查询之前我们先看看 dba_users 这个表的表结构,可以通过 desc dba_users
这个命令查看指定表的表结构
SQL> desc dba_users
可看到该表结构中包含用户名、用户的ID和密码等内容
现在我们查看系统中用户的信息
select * from dba_users;
Oracle中 dba_users 和 user_users 都可以查询用户的信息,这两张表都是查看表空间信息的表,它们的区别是:前者是只供管理员用户查询的,后者是管理员用户和普通用户都可以查询的。
Oracle中有那么几个典型的用户,它们是在安装Oracle的时候默认创建的,分别具有不同的作用。下面我们介绍Oracle中sys,system,scott,hr用户:
超级用户分两种 SYSDBA和SYSOPT
SYSOPT 后面3个字母是operator的意思,也就是操作数据库的人,而SYSDBA 则是管理数据库的人;
SYSDBA比SYSOPT的权限还要大,而SYS用户就完全是个SYSDBA,但SYSTEM用户默认是SYSOPT,不过它也能以SYSDBA的权限登陆。
它们之间的不同之处可以下载Oracle中sys-system-scott-hr用户的区别 这份文档了解学习。
Oracle中有个scott用户默认是被锁定的
如果要解锁它,我们首先需要登陆其他用户,并通过SQL语句alter user scott account unlock;
解锁它。
alter user scott account unlock;
scott用户的默认密码为 tiger
接下来通过 ‘connect scott/tiger’ 来登陆scott用户。如果scott用户密码过期的话,系统会提示你更改密码
或者通过SQL语句更改scott用户的密码
alter user scott identified by tiger;
在前面我们提到的 dba_users 表中有两个字段
这两个字段分别代表用户的默认表空间和临时表空间。
比如我们要查看system用户的默认表空间和临时表空间
这里有两张表
这两张表都是查看表空间信息的表,它们的区别是:前者是只供管理员用户查询的,后者是管理员用户和普通用户都可以查询的。
ALTER USER username DEFAULT|TEMPORARY TABLESPACE tablespace_name;
CREATE [TEMPORARY] TABLESPACE tablespace_name TEMPFILE|DATAFILE 'xxx.dbf' SIZE xxx;
表空间创建完毕后,我们可以查看表空间的位置在哪,比如我们查看表空间名称为SYSTEM的位置
SELECT file_name FROM dba_data_files WHERE tablespace_name='SYSTEM';
注意,如果要查看创建的临时表空间的数据文件的地址,就不能查表 dba_data_files 了,而要查 dba_temp_file 表。
SELECT file_name FROM dba_temp_files WHERE tablespace_name='TEMPORARY_TABLESPACE';
设置表空间的联机或脱机状态
ALTER TABLESPACE tablespace_name ONLINK|OFFLINK;
设置表空间的只读或可读写的状态
ALTER TABLESPACE tablespace_name READ ONLY|READ WRITE;
表空间为脱机状态,那么系统不允许修改该表空间的读写状态。表空间联机的状态,默认该表空间为可读写的状态。
增加数据文件
ALTER TABLESPACE tablespace_name ADD DATAFILE|TEMPFILE 'xxx.dbf' SIZE xxx;
删除数据文件
ALTER TABLESPACE tablespace_name DROP DATAFILE 'filename.dbf';
DROP TABLESPACE tablespace_name [INCLUDING CONTENTS];
如果只删除表空间而不删除数据文件,那么不用加上[]里面的内容。
数据的完整性用于确保数据库数据遵从一定的商业和逻辑规则。在Oracle中,数据完整性可以使用约束、触发器、应用程序(过程、函数)三种方法来实现,在这三种方法中,因为约束易于维护,并且具有最好的性能,所以作为维护数据完整性的首选。
约束用于确保数据库数据满足特定的商业规则。在Oracle中,约束包括:not null、unique、primary key, foreign key和check五种。
ALTER TABLE 旧表名 RENAME TO 新表名;