一、刪除表中的數據(delete或truncate)
1 truncate table T_USER immediate;
說明:Truncate是一個能夠快速清空資料表內所有資料的SQL語法。並且能針對具有自動遞增值的字段,做計數重置歸零重新計算的作用;
TRUNCATE TABLE 比 DELETE 速度快,且使用的系統和事務日志資源少;
DELETE 語句每次刪除一行,並在事務日志中為所刪除的每行記錄一項。TRUNCATE TABLE 通過釋放存儲表數據所用的數據頁來刪除數據,並且只在事務日志中記錄頁的釋放。
范例:
1 truncate table T_USER where USERNAME <> 'admin';
說明:"<>"符號是不等於的意思,即"!="
1 DELETE FROM T_USER WHERE ID = <condition>;
二、顯示數據庫中所有表
1 SELECT * from syscat.tables where tabschema = 'SCTS';
三、db2自動增長列
1 ---默認自增,允許手工修改 2 generated by default as identity; 3 ---不允許指定,只能由數據庫自動分配並插入 4 generated always as identity;
說明:第一種方式在插入數據時允許手工指定自增字段的值,只要不重復即可,並且數據庫會自動設置下一個值;
第二種方式則不允許指定,只能由數據庫自動分配並插入。
范例:
1 ---定義id為int類型主鍵,並且不為空,自增長(從1開始,每次遞增1) 2 id INTEGER NOT NULL generated by default as identity (START WITH 1, INCREMENT BY 1);
四、DB2 單引號(')轉義
比如:未轉義之前,看下面的sql幾個value?3.5個?
1 INSERT INTO T_VCARD VALUES('11112','male','Let's Go!');
上面這句在DB里面執行肯定是錯誤的,實際上需要轉義才是正確的:單引號轉義符為單引號(')
1 INSERT INTO T_VCARD VALUES('11112','male','Let''s Go!');
五、連接字符串
兩種方式:用運算法、利用函數
1 ---利用運算法 2 select ID || CREATE_TIME FROM T_TOPIC_TEMPER; 3 ---利用拼接函數 4 select CONCAT(ID,CREATE_TIME) FROM T_TOPIC_TEMPER;
說明:一般來說,當要連接多個字符串的時候,使用運算符要簡單一點。
六、DB默認值default
1 "CREATE_TIME" TIMESTAMP DEFAULT CURRENT TIMESTAMP NOT NULL, 2 "MANUAL_ORDER" INTEGER default '0',
七、主鍵
1 constraint "P_Identifier_1" primary key ("ID");
八、索引
1 CREATE UNIQUE INDEX T_USER_IDX ON T_USER (ID, TOPIC_ID)ALLOW REVERSE SCANS;
九、視圖
1 CREATE VIEW 2 IM.T_TOPIC_CLASSIFY_MAPS_TEMPER_VIEW 3 ( 4 TOPIC_ID, 5 CLASSIFY_ID, 6 MANUAL_ORDER, 7 SCORE 8 ) AS 9 SELECT 10 B.TOPIC_ID AS TOPIC_ID, 11 A.CLASSIFY_ID AS CLASSIFY_ID, 12 A.MANUAL_ORDER AS MANUAL_ORDER, 13 B.SCORE AS SCORE 14 FROM 15 IM.T_TOPIC_CLASSIFY_MAPS A, 16 IM.T_TOPIC_TEMPER B, 17 IM.T_TOPIC C 18 WHERE 19 A.TOPIC_ID=B.TOPIC_ID 20 AND C.ID=B.TOPIC_ID 21 AND C.STATE =1;
十、修改字段屬性、添加字段等
修改字段長度:
1 --============================================================== 2 -- 修改話題avatar的字段長度: Table: T_TOPIC 3 --============================================================== 4 alter table T_TOPIC ALTER COLUMN AVATAR SET DATA TYPE VARCHAR(256);
添加字段:
1 --============================================================== 2 -- 給T_TOPIC表增加TOPIC_PHOTO_NAME字段: Table: T_TOPIC 3 --============================================================== 4 ALTER TABLE T_TOPIC ADD COLUMN TOPIC_PHOTO_NAME VARCHAR (256);
十一、INSERT 語句
DB2的INSERT語句有三種格式:即一次插入一行,一次插入多行和從SELECT語句中插入。
現在要求插入一行數據,我們這么寫:
1 INSERT INTO USER(NAME,AGE) VALUES ('Jack','25');
現在要求插入三行數據(可以一行一行寫,不再舉例),推薦一次插入多行的寫法:
1 INSERT INTO USER(NAME,AGE) VALUES 2 ('Jack','25'), 3 ('Tom','26'), 4 ('Jucie','27');
那么一次插入多行的好處是什么呢?有兩點好處:
1、性能更好;
2、由於一條語句,所以它們是一個處理單元,要么都插入,要么都不插入。
第三種,我們還可以從SELECT中插入,格式如下:
1 INSERT INTO USER (NAME,AGE) 2 SELECT <COLUMN1>,<COLUMN2> FROM <TABLE_NAME> WHERE ...
