1. 程式人生 > >Oracle——02表的基本操作+merge+truncate

Oracle——02表的基本操作+merge+truncate

(1)建立表的基本語法如下:

	create table tableName(columnName dataType [default expression][column columnStraint],...n) [tablespace tableSpaceName]
 

(2)修改表的基本語法如下:

	alter table tableName
	[add(columnName dataType [default expression][column columnStraint],...n)] --新增列
	[modify(columnName [dataType][default expression][columnStraint],...n)] --修改列
	[drop drop_clause] --刪除列或約束條件 drop column columnName
 

(3)刪除表的語法:drop table tableName.

(4)在往表中插入記錄時,如果需要插入某列的值為空,則值必須置為null,如果列值指定為該列的預設值,則用default。

(5)merge語句,使用該語句可以實現對錶的更新或插入。語法格式如下:

	merge into tableName using tableName on(join_condition) when matched then update set...
		when not matched then insert(...) values(...)
 

這個語句的意思是把using表合併到into表,合併條件是on(condition),當條件滿足時只能是更新into表中的對應的記錄,當條件不滿足時,則也只能是往into表裡面新增對應的資料,而該資料中也只能使用using表中當前記錄對應的資料。

示例如下:

假設有一個student表,那麼以下語句就可以實現當a的id大於b的id的時候把所有student的年齡加2,否則就新增一條記錄。

		merge into student a using student b on(a.id>b.id) when matched then update set age=age+2 when not matched then insert(id,name,age,sex,no) 
		values(b.id+100,b.name,b.age,b.sex,b.no);
 

(6)刪除表記錄之delete和truncate。

delete的語法格式如下:

delete from tableName [where condition] 

該語句的意思是刪除tableName表中滿足condition條件的記錄,當condition省略時則刪除表中所有記錄。

truncate的語法格式如下:

truncate table tableName

該語句的意思是刪除tableName表中的所有記錄,使用truncate可以釋放佔用的資料塊表空間。truncate刪除是不能回滾的,而delete刪除是可以回滾的。正因為如此使用truncate刪除所有記錄的速度比用delete刪除所有記錄的速度快。