doc: docs/oracle.md (#617)
This commit is contained in:
		
							
								
								
									
										129
									
								
								docs/oracle.md
									
									
									
									
									
								
							
							
						
						
									
										129
									
								
								docs/oracle.md
									
									
									
									
									
								
							@@ -8,14 +8,21 @@ Oracle 备忘清单
 | 
				
			|||||||
### SELECT 语句
 | 
					### SELECT 语句
 | 
				
			||||||
 | 
					
 | 
				
			||||||
```sql
 | 
					```sql
 | 
				
			||||||
SELECT * FROM beverages WHERE field1 = 'Kona' AND field2 = 'coffee' AND field3 = 122;
 | 
					SELECT * 
 | 
				
			||||||
 | 
					FROM beverages 
 | 
				
			||||||
 | 
					WHERE field1 = 'Kona' 
 | 
				
			||||||
 | 
					  AND field2 = 'coffee' 
 | 
				
			||||||
 | 
					  AND field3 = 122;
 | 
				
			||||||
```
 | 
					```
 | 
				
			||||||
<!--rehype:className=wrap-text-->
 | 
					<!--rehype:className=wrap-text-->
 | 
				
			||||||
 | 
					
 | 
				
			||||||
### SELECT INTO 语句
 | 
					### SELECT INTO 语句
 | 
				
			||||||
 | 
					
 | 
				
			||||||
```sql
 | 
					```sql
 | 
				
			||||||
SELECT name,address,phone_number INTO v_employee_name,v_employee_address,v_employee_phone_number FROM employee WHERE employee_id = 6;
 | 
					SELECT name, address, phone_number 
 | 
				
			||||||
 | 
					INTO v_employee_name, v_employee_address, v_employee_phone_number 
 | 
				
			||||||
 | 
					FROM employee 
 | 
				
			||||||
 | 
					WHERE employee_id = 6;
 | 
				
			||||||
```
 | 
					```
 | 
				
			||||||
<!--rehype:className=wrap-text-->
 | 
					<!--rehype:className=wrap-text-->
 | 
				
			||||||
 | 
					
 | 
				
			||||||
@@ -25,24 +32,35 @@ SELECT name,address,phone_number INTO v_employee_name,v_employee_address,v_emplo
 | 
				
			|||||||
使用 VALUES 关键字插入
 | 
					使用 VALUES 关键字插入
 | 
				
			||||||
 | 
					
 | 
				
			||||||
```sql
 | 
					```sql
 | 
				
			||||||
INSERT INTO table_name VALUES ('Value1', 'Value2', ... );
 | 
					INSERT INTO table_name 
 | 
				
			||||||
INSERT INTO table_name(Column1, Column2, ... ) VALUES ( 'Value1', 'Value2', ... );
 | 
					VALUES ('Value1', 'Value2', ... );
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					INSERT INTO table_name (Column1, Column2, ... ) 
 | 
				
			||||||
 | 
					VALUES ( 'Value1', 'Value2', ... );
 | 
				
			||||||
```
 | 
					```
 | 
				
			||||||
<!--rehype:className=wrap-text-->
 | 
					<!--rehype:className=wrap-text-->
 | 
				
			||||||
 | 
					
 | 
				
			||||||
使用 SELECT 语句插入
 | 
					使用 SELECT 语句插入
 | 
				
			||||||
 | 
					
 | 
				
			||||||
```sql
 | 
					```sql
 | 
				
			||||||
INSERT INTO table_name(SELECT Value1, Value2, ... from table_name );
 | 
					INSERT INTO table_name
 | 
				
			||||||
INSERT INTO table_name(Column1, Column2, ... ) ( SELECT Value1, Value2, ... from table_name );
 | 
					SELECT Value1, Value2, ...
 | 
				
			||||||
 | 
					FROM table_name;
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					INSERT INTO table_name (Column1, Column2, ...)
 | 
				
			||||||
 | 
					SELECT Value1, Value2, ...
 | 
				
			||||||
 | 
					FROM table_name;
 | 
				
			||||||
```
 | 
					```
 | 
				
			||||||
<!--rehype:className=wrap-text-->
 | 
					<!--rehype:className=wrap-text-->
 | 
				
			||||||
 | 
					
 | 
				
			||||||
### DELETE 语句
 | 
					### DELETE 语句
 | 
				
			||||||
 | 
					
 | 
				
			||||||
```sql
 | 
					```sql
 | 
				
			||||||
DELETE FROM table_name WHERE some_column=some_value
 | 
					DELETE FROM table_name 
 | 
				
			||||||
DELETE FROM customer WHERE sold = 0;
 | 
					WHERE some_column = some_value;
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					DELETE FROM customer 
 | 
				
			||||||
 | 
					WHERE sold = 0;
 | 
				
			||||||
```
 | 
					```
 | 
				
			||||||
 | 
					
 | 
				
			||||||
### UPDATE 语句
 | 
					### UPDATE 语句
 | 
				
			||||||
@@ -384,7 +402,8 @@ CREATE TABLE table_name
 | 
				
			|||||||
    column1 datatype null/not null,
 | 
					    column1 datatype null/not null,
 | 
				
			||||||
    column2 datatype null/not null,
 | 
					    column2 datatype null/not null,
 | 
				
			||||||
    ...
 | 
					    ...
 | 
				
			||||||
    CONSTRAINT constraint_name CHECK (column_name condition) [DISABLE]
 | 
					    CONSTRAINT constraint_name
 | 
				
			||||||
 | 
					    CHECK (column_name condition) [DISABLE]
 | 
				
			||||||
);
 | 
					);
 | 
				
			||||||
```
 | 
					```
 | 
				
			||||||
 | 
					
 | 
				
			||||||
@@ -410,7 +429,8 @@ CREATE TABLE table_name
 | 
				
			|||||||
    column1 datatype null/not null,
 | 
					    column1 datatype null/not null,
 | 
				
			||||||
    column2 datatype null/not null,
 | 
					    column2 datatype null/not null,
 | 
				
			||||||
    ...
 | 
					    ...
 | 
				
			||||||
    CONSTRAINT constraint_name UNIQUE (column1, column2, column_n)
 | 
					    CONSTRAINT constraint_name 
 | 
				
			||||||
 | 
					    UNIQUE (column1, column2, column_n)
 | 
				
			||||||
);
 | 
					);
 | 
				
			||||||
```
 | 
					```
 | 
				
			||||||
 | 
					
 | 
				
			||||||
@@ -421,7 +441,8 @@ CREATE TABLE customer
 | 
				
			|||||||
(
 | 
					(
 | 
				
			||||||
    id   integer not null,
 | 
					    id   integer not null,
 | 
				
			||||||
    name varchar2(20),
 | 
					    name varchar2(20),
 | 
				
			||||||
    CONSTRAINT customer_id_constraint UNIQUE (id)
 | 
					    CONSTRAINT customer_id_constraint
 | 
				
			||||||
 | 
					    UNIQUE (id)
 | 
				
			||||||
);
 | 
					);
 | 
				
			||||||
```
 | 
					```
 | 
				
			||||||
 | 
					
 | 
				
			||||||
@@ -431,14 +452,18 @@ CREATE TABLE customer
 | 
				
			|||||||
 | 
					
 | 
				
			||||||
```sql
 | 
					```sql
 | 
				
			||||||
ALTER TABLE [table name]
 | 
					ALTER TABLE [table name]
 | 
				
			||||||
    ADD CONSTRAINT [constraint name] UNIQUE( [column name] ) USING INDEX [index name];
 | 
					    ADD CONSTRAINT [constraint name] 
 | 
				
			||||||
 | 
					    UNIQUE([column name]) 
 | 
				
			||||||
 | 
					    USING INDEX [index name];
 | 
				
			||||||
```
 | 
					```
 | 
				
			||||||
 | 
					
 | 
				
			||||||
例如:
 | 
					例如:
 | 
				
			||||||
 | 
					
 | 
				
			||||||
```sql
 | 
					```sql
 | 
				
			||||||
ALTER TABLE employee
 | 
					ALTER TABLE employee
 | 
				
			||||||
    ADD CONSTRAINT uniqueEmployeeId UNIQUE(employeeId) USING INDEX ourcompanyIndx_tbs;
 | 
					    ADD CONSTRAINT uniqueEmployeeId 
 | 
				
			||||||
 | 
					    UNIQUE(employeeId) 
 | 
				
			||||||
 | 
					    USING INDEX ourcompanyIndx_tbs;
 | 
				
			||||||
```
 | 
					```
 | 
				
			||||||
 | 
					
 | 
				
			||||||
### 添加外部约束
 | 
					### 添加外部约束
 | 
				
			||||||
@@ -447,14 +472,19 @@ foregin 约束的语法是:
 | 
				
			|||||||
 | 
					
 | 
				
			||||||
```sql
 | 
					```sql
 | 
				
			||||||
ALTER TABLE [table name]
 | 
					ALTER TABLE [table name]
 | 
				
			||||||
    ADD CONSTRAINT [constraint name] FOREIGN KEY (column,...) REFERENCES table [(column,...)] [ON DELETE {CASCADE | SET NULL}]
 | 
					    ADD CONSTRAINT [constraint name] 
 | 
				
			||||||
 | 
					    FOREIGN KEY (column,...) 
 | 
				
			||||||
 | 
					    REFERENCES table [(column,...)] 
 | 
				
			||||||
 | 
					    [ON DELETE {CASCADE | SET NULL}];
 | 
				
			||||||
```
 | 
					```
 | 
				
			||||||
 | 
					
 | 
				
			||||||
例如:
 | 
					例如:
 | 
				
			||||||
 | 
					
 | 
				
			||||||
```sql
 | 
					```sql
 | 
				
			||||||
ALTER TABLE employee
 | 
					ALTER TABLE employee
 | 
				
			||||||
    ADD CONSTRAINT fk_departament FOREIGN KEY (departmentId) REFERENCES departments(Id);
 | 
					    ADD CONSTRAINT fk_departament 
 | 
				
			||||||
 | 
					    FOREIGN KEY (departmentId) 
 | 
				
			||||||
 | 
					    REFERENCES departments(Id);
 | 
				
			||||||
```
 | 
					```
 | 
				
			||||||
 | 
					
 | 
				
			||||||
### 删除约束
 | 
					### 删除约束
 | 
				
			||||||
@@ -482,13 +512,17 @@ INDEXES
 | 
				
			|||||||
 | 
					
 | 
				
			||||||
```sql
 | 
					```sql
 | 
				
			||||||
CREATE [UNIQUE] INDEX index_name
 | 
					CREATE [UNIQUE] INDEX index_name
 | 
				
			||||||
    ON table_name (column1, column2, . column_n)
 | 
					    ON table_name (
 | 
				
			||||||
 | 
					        column1,
 | 
				
			||||||
 | 
					        column2,
 | 
				
			||||||
 | 
					        . 
 | 
				
			||||||
 | 
					        column_n
 | 
				
			||||||
 | 
					    )
 | 
				
			||||||
    [ COMPUTE STATISTICS ];
 | 
					    [ COMPUTE STATISTICS ];
 | 
				
			||||||
```
 | 
					```
 | 
				
			||||||
 | 
					
 | 
				
			||||||
`UNIQUE` 表示索引列中值的组合必须是唯一的
 | 
					- `UNIQUE` 表示索引列中值的组合必须是唯一的
 | 
				
			||||||
 | 
					- `COMPUTE STATISTICS` 告诉 Oracle 在创建索引期间收集统计信息。然后优化器使用这些统计信息来选择执行语句时的最佳执行计划。例如:
 | 
				
			||||||
`COMPUTE STATISTICS` 告诉 Oracle 在创建索引期间收集统计信息。 然后优化器使用这些统计信息来选择执行语句时的最佳执行计划。例如:
 | 
					 | 
				
			||||||
 | 
					
 | 
				
			||||||
```sql
 | 
					```sql
 | 
				
			||||||
CREATE INDEX customer_idx
 | 
					CREATE INDEX customer_idx
 | 
				
			||||||
@@ -604,7 +638,8 @@ DBA 相关
 | 
				
			|||||||
创建用户的语法是:
 | 
					创建用户的语法是:
 | 
				
			||||||
 | 
					
 | 
				
			||||||
```sql
 | 
					```sql
 | 
				
			||||||
CREATE USER username IDENTIFIED BY password;
 | 
					CREATE USER username
 | 
				
			||||||
 | 
					    IDENTIFIED BY password;
 | 
				
			||||||
```
 | 
					```
 | 
				
			||||||
 | 
					
 | 
				
			||||||
例如:
 | 
					例如:
 | 
				
			||||||
@@ -642,53 +677,87 @@ ALTER USER brian IDENTIFIED BY brianpassword;
 | 
				
			|||||||
```
 | 
					```
 | 
				
			||||||
 | 
					
 | 
				
			||||||
### 查看表空间的名称以及大小
 | 
					### 查看表空间的名称以及大小
 | 
				
			||||||
 | 
					<!--rehype:wrap-class=col-span-2-->
 | 
				
			||||||
 | 
					
 | 
				
			||||||
```sql
 | 
					```sql
 | 
				
			||||||
select t.tablespace_name, round(sum(bytes/(1024*1024)),0) ts_size from dba_tablespaces t, dba_data_files d where t.tablespace_name = d.tablespace_name group by t.tablespace_name;
 | 
					SELECT t.table_name,
 | 
				
			||||||
 | 
					       ROUND(SUM(bytes / (1024 * 1024)), 0) AS ts_size
 | 
				
			||||||
 | 
					FROM dba_tablespaces t,
 | 
				
			||||||
 | 
					     dba_data_files d
 | 
				
			||||||
 | 
					WHERE t.table_name = d.table_name
 | 
				
			||||||
 | 
					GROUP BY t.table_name;
 | 
				
			||||||
```
 | 
					```
 | 
				
			||||||
 | 
					
 | 
				
			||||||
### 查看还没提交的事务
 | 
					### 查看还没提交的事务
 | 
				
			||||||
 | 
					
 | 
				
			||||||
```sql
 | 
					```sql
 | 
				
			||||||
select * from v$locked_object;
 | 
					select * from v$locked_object;
 | 
				
			||||||
select * from v$transaction;
 | 
					select * from v$transaction;
 | 
				
			||||||
```
 | 
					```
 | 
				
			||||||
 | 
					
 | 
				
			||||||
### 查看数据库库对象
 | 
					### 查看数据库库对象
 | 
				
			||||||
 | 
					<!--rehype:wrap-class=col-span-2-->
 | 
				
			||||||
 | 
					
 | 
				
			||||||
```sql
 | 
					```sql
 | 
				
			||||||
select owner, object_type, status, count(*) count# from all_objects group by owner, object_type, OJIB status;
 | 
					SELECT owner, object_type, status, COUNT(*) AS count#
 | 
				
			||||||
 | 
					FROM all_objects
 | 
				
			||||||
 | 
					GROUP BY owner, object_type, status;
 | 
				
			||||||
```
 | 
					```
 | 
				
			||||||
 | 
					
 | 
				
			||||||
### 查看数据库的版本
 | 
					### 查看数据库的版本
 | 
				
			||||||
 | 
					
 | 
				
			||||||
```sql
 | 
					```sql
 | 
				
			||||||
Select version FROM Product_component_version where SUBSTR(PRODUCT,1,6) = 'Oracle';
 | 
					SELECT version
 | 
				
			||||||
 | 
					FROM Product_component_version
 | 
				
			||||||
 | 
					WHERE SUBSTR(PRODUCT, 1, 6) = 'Oracle';
 | 
				
			||||||
```
 | 
					```
 | 
				
			||||||
 | 
					
 | 
				
			||||||
### 查看数据库的创建日期和归档方式
 | 
					### 查看数据库的创建日期和归档方式
 | 
				
			||||||
 | 
					
 | 
				
			||||||
```sql
 | 
					```sql
 | 
				
			||||||
select created, Log_Mode, Log_Mode From v$Database;
 | 
					SELECT created, Log_Mode, Log_Mode 
 | 
				
			||||||
 | 
					FROM v$Database;
 | 
				
			||||||
```
 | 
					```
 | 
				
			||||||
 | 
					
 | 
				
			||||||
### 查看控制文件
 | 
					### 查看控制文件
 | 
				
			||||||
 | 
					
 | 
				
			||||||
```sql
 | 
					```sql
 | 
				
			||||||
select name from v$controlfile;
 | 
					select name from v$controlfile;
 | 
				
			||||||
```
 | 
					```
 | 
				
			||||||
 | 
					
 | 
				
			||||||
### 查看日志文件
 | 
					### 查看日志文件
 | 
				
			||||||
 | 
					
 | 
				
			||||||
```sql
 | 
					```sql
 | 
				
			||||||
select member from v$logfile;
 | 
					select member from v$logfile;
 | 
				
			||||||
```
 | 
					```
 | 
				
			||||||
 | 
					
 | 
				
			||||||
### 查看表空间的使用情況
 | 
					### 查看表空间的使用情況
 | 
				
			||||||
 | 
					<!--rehype:wrap-class=col-span-2-->
 | 
				
			||||||
 | 
					
 | 
				
			||||||
```sql
 | 
					```sql
 | 
				
			||||||
select sum (bytes)/(1024*1024) as free_space, tablespace_name from dba_free_space group by tablespace_name;
 | 
					SELECT SUM(bytes)/(1024*1024) AS free_space,
 | 
				
			||||||
 | 
					       tablespace_name
 | 
				
			||||||
 | 
					FROM dba_free_space
 | 
				
			||||||
 | 
					GROUP BY tablespace_name;
 | 
				
			||||||
```
 | 
					```
 | 
				
			||||||
 | 
					
 | 
				
			||||||
### 捕捉运行很久的SOL
 | 
					### 捕捉运行很久的SOL
 | 
				
			||||||
```sql
 | 
					 | 
				
			||||||
column username format a12
 | 
					 | 
				
			||||||
column opname format a16
 | 
					 | 
				
			||||||
column progress format a8
 | 
					 | 
				
			||||||
 | 
					
 | 
				
			||||||
select username,sid,opname,round(sofar* 100 / totalwork,0) || '%' as progress,time_remaining,sqL_text from v$session_longops,v$sql where time_remaining <> 0 and sql_address = address and sql_hash_value = hash_value
 | 
					```sql
 | 
				
			||||||
 | 
					COLUMN username FORMAT A12
 | 
				
			||||||
 | 
					COLUMN opname FORMAT A16
 | 
				
			||||||
 | 
					COLUMN progress FORMAT A8
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					SELECT username,
 | 
				
			||||||
 | 
					       sid,
 | 
				
			||||||
 | 
					       opname,
 | 
				
			||||||
 | 
					       ROUND(sofar * 100 / totalwork, 0) || '%' AS progress,
 | 
				
			||||||
 | 
					       time_remaining,
 | 
				
			||||||
 | 
					       sql_text
 | 
				
			||||||
 | 
					FROM v$session_longops, v$sql
 | 
				
			||||||
 | 
					WHERE time_remaining <> 0
 | 
				
			||||||
 | 
					  AND sql_address = address
 | 
				
			||||||
 | 
					  AND sql_hash_value = hash_value;
 | 
				
			||||||
```
 | 
					```
 | 
				
			||||||
 | 
					
 | 
				
			||||||
另见
 | 
					另见
 | 
				
			||||||
 
 | 
				
			|||||||
		Reference in New Issue
	
	Block a user