Oracle——02表的基本操作+merge+truncate
阿新 • • 發佈:2019-02-07
(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刪除所有記錄的速度快。