```sql
-- 连接,只能查询匹配记录
SELECT select_list FROM table_name1 INNER JOIN table_name2 ON condition;
-- 左外连接
SELECT select_list FROM table_name1 LEFT JOIN table_name2 ON condition;
-- 右外连接
SELECT select_list FROM table_name1 RIGHT JOIN table_name2 ON condition;
-- 全外连接
SELECT select_list FROM table_name1 FULL JOIN table_name2 ON condition;
```
```sql
DROP TABLESPACE tablespace_name
[INCLUDING CONTENTS AND DATAFILES] 数据文件删除
[CASCADE CONSTRAINTS]; 完整性删除
```
查看表空间大小
```sql
SELECT TABLESPACE_NAME,FILE_NAME,BYTES FROM DBA_DATA_FILES WHERE TABLESPACE_NAME=tablespace_name;
```
查看表空间剩余 空间
```sql
SELECT TABLESPACE_NAME,BYTES FROM DBA_FREE_SPACES;
```
创建/修改用户
```sql
CREATE|ALTER
USER user_name
IDENTIFIED BY password
[DEFAULT TABLESPACE tablespace_name ]
[QUOTA size|UNLIMITED ON tablespace_name ] 用户使用表空间的最大值
[PROFILE profile ] 概要文件
[PASSWORD EXPIRE ] 用户密码过期
[ACCOUNT LOCK|UNLOCK]; 默认锁定状态
```
删除用户
```sql
DROP USER user_name CASCADE;
```
授予系统权限
```sql
GRANT
system_privileges|ALL PRIVILEGES 权限
TO {user IDENTIFIED BY password|role } 用户/角色
[WITH ADMIN OPTION]; 授予其他用户或角色系统权限
```
授予对象权限
```sql
GRANT
object_privilege|ALL 权限
ON schema.object 对象
TO user_name|role_name 用户/角色
[WITH ADMIN OPTION ] 授予其他用户或角色系统权限
[WITH THE GRANT ANY OBJECT]; 授予其他用户或角色对象权限
```
撤销系统权限
```sql
REVOKE system_privilege FROM
user|role;
```
撤销对象权限
```sql
REVOKE
object_privilege |ALL
ON schema.object FROM
user_name|role_name
[CASCADE CONSTRAINTS];
```
数据字典
数据
字典
系统权限
DBA_SYS_PRIVS
对象权限
DBA_TAB_PRIVS
用户角色
DBA_ROLE_PRIVS
创建角色
```sql
CREATE|ALTER //创建/修改
ROLE role_name
[NOT IDENTIFIED|IDENDIFIED BY [password]];
GRANT //填充权限
system_privilege|ALL PRIVILEGES
TO role_name
[WITH ADMIN OPTION];
-- 角色创建完成后不能直接使用,需将角色赋予用户才能使用
GRANT role_name TO user_name;
SET ROLE role_name -- 设置角色生效
SET ROLE ALL -- 设置所有角色生效
SET ROLE ALL EXCEPT role_name -- 设置只有role_name失效
SET ROLE NONE -- 设置所有角色失效
```
删除角色
```sql
DROP ROLE role_name;
```
脱机备份(冷备份)/恢复
```sql
关闭数据库服务后直接复制需要的文件,包括数据文件和控制文件
```
联机备份(热备份)
```sql
ARCHIVE LOG LIST 查看本机数据库的日志状态
ALTER SYSTEM SET LOG_ARCHIVE_START=TRUE SCOPE=SPFILE; 设置日志模式为归档
SHUTDOWN IMMEDIATE; 关闭数据库
STARTUP MOUNT; 启动mount实例
ALTER DATABASE ARCHIVELOG; 更改数据库为归档日志模式
ALTER DATABASE OPEN; 更改数据库状态为打开模式
ALTER TABLESPACE tablespace_name BEGIN BACKUP; 开始备份数据库
复制文件到其他目录
ALTER TABLESPACE tablespace_name END BACKUP; 结束备份操作
```
恢复
```sql
ALTER SYSTEM ARCHIVE LOG CURRENT; 归档当前日志
ALTER SYSTEM SWITCH LOGFILE; 切换日志文件
SELECT * FROM v$RECOVER_FILE 获取文件编号
ALTER DATABASE DATAFILE file_id OFFLINE DROP; 把要恢复的数据文件脱机
ALTER DATABASE OPEN; 更改数据库状态为打开模式
RECOVER DATAFILE file_id; 恢复数据文件
ALTER DATABASE DATAFILE file_id ONLINE; 设置数据文件联机
```