DB2_SQL_常用知識點&實踐


一、刪除表中的數據(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 identity3 ---不允許指定,只能由數據庫自動分配並插入
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 ...

 

 


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM