DDL—數據庫定義語言:直接提交的。
CREATE:用於創建數據庫對象。
DECLARE:除了是創建只在過程中使用的臨時表外,DECLARE語句和CREATE語句非常相似。唯一可以被聲明的對象是表。並且必須放入用戶臨時表空間。
DROP:可以刪除任何用CREATE(數據庫對象)和DECLARE(表)創建的對象。
ALTER:允許修改某些數據庫對象的信息。不能修改索引。
下面主要基於對象介紹基本的語法:
1、數據庫:
創建數據庫:CREATE DATABASE database-name [USING CODESET codeset TERRITORY territory]
注:代碼頁的問題。
刪除數據庫:drop database dbname
2、表:
創建新表:
create table tabname(col1 type1 [not null] [primary key],col2 type2 [not null],..)
根據已有的表創建新表:
A:create table tab_new like tab_old
B:create table tab_new as select col1,col2… from tab_old definition only
修改表:
增加一個列:
Alter table tabname add column col type
注:列增加后將不能刪除。DB2中列加上后數據類型也不能改變,唯一能改變的是增加varchar類型的長度。添加主鍵:
Alter table tabname add primary key(col)
刪除主鍵:
Alter table tabname drop primary key(col)
刪除表:drop table tabname
3、表空間:
創建表空間:create tablespace tbsname pagesize 4k managed by database using (file ‘file’ size)
表空間加入容器:alter tablespace tablespace_name add(file 'filename' size)
注:該操作是不可逆的,加入容器后將不能將其刪除,因此在加入的時候注意。
刪除表空間:drop tablespace tbsname
4、索引:
創建索引:create [unique] index idxname on tabname(col….)
刪除索引:drop index idxname
注:索引是不可更改的,想更改必須刪除重新建。
5、視圖:
創建視圖:create view viewname as select statement
刪除視圖:drop view viewname
注:視圖唯一能修改的是引用類型列,改變列的范圍。其他定義好了都不能修改。當視圖基於的基表drop后,視圖變為無效。