----start 大家對如何刪除資料都不陌生,我們習慣性的這麼寫:DELETE FROM <TABLE_NAME> WHERE <CONDITION>; 其實這麼寫效能並不好,尤其是刪除大量資料的時候,要想獲得更好的效能,可以採用如下方式:DELETE FROM(SELECT * FROM <TABLE_NAME> WHERE
----start所謂的特殊寄存器,其實就是一些變數,這些變數顯示了DB2的一些狀態資訊,我們可以查看所有這些變數,也可以更新其中的一部分變數。查看方法:SELECT CURRENT TIME FROM sysibm.sysdummy1;VALUES CURRENT TIME; 更新方法:SET CURRENT SCHEMA = 'DB2ADMIN'; 以下是所有的特殊寄存器列表,關於其中每個變數的具體含義可以參考db2 資訊中心。SPECIAL
----start 我們可以建立五種類型的使用者自訂函數:1、有源(或模板)2、SQL 標量、表或行3、外部標量4、外部表格5、OLE DB 外部表格 一:有源函數:Sourced Function 顧名思義,有源函數是從一個已經存在的函數中構造出來的函數。它通常應用於操作使用者自訂資料類型。因為現有的函數和操作符(+ - * /)不支援使用者自訂的資料類型,所以當我們需要操作使用者自訂資料類型時,就可以根據現有函數定義一個有源函數。1、文法:CREATE FUNCTION
----start 在開始本文之前,我們先看條SQL語句,如下:SELECT <field_name> FROM <...> WHERE <field_name> IN( SELECT DISTINCT <field_name> FROM <...>);怎麼樣?看上去是不是很熟悉,可能你曾經寫過 或者
----start 如果我們想將 SQL 過程從一個伺服器轉移到另一個伺服器,或者分享給他人又不想讓他知道內容,那麼,我們可以將預存程序的內容加密,可以通過 PUT ROUTINE 和 GET ROUTINE 命令來實現。一:GET ROUTINE命令GET ROUTINE 是一個 DB2 命令,它從資料庫中提取一個 SQL 過程,並將它轉換成一個 SAR(SQL Archive)檔案。文法:GET ROUTINE INTO <file_name> FROM SPECIFIC
----start我們經常需要對資料庫進行插入、更新、刪除等操作,如果我們想在更新資料的同時查看一下更新後的值,該怎麼辦呢?怎麼樣?是不是不太明白我說的話,不要緊,考慮下面的情況:CREATE TABLE USER(NAME VARCHAR(20) NOT NULL,--姓名SALARY FLOAT NOT NULL--工資);INSERT INTO USER (NAME,SALARY) VALUES('張三', 1000),('李四', 2000),('王五', 2400),('趙六', 28
----start 我們經常會遇到這樣的情況,想看看某個表中的若干條資料,如10條、20條等。在DB2中,我們可以這麼寫:SELECT * FROM <TABLE_NAME> FETCH FIRST 10 ROWS ONLY; 不知道你注意到沒有,以上這條語句無論你執行多少遍,結果集是不變的。那麼我想每次隨機的查詢10條記錄看看,該怎麼處理呢?可以使用下面的SQL:SELECT * FROM <TABLE_NAME> ORDER BY RAND() FETCH
----start假設現在有如下表:CREATE TABLE USER(NAME VARCHAR(20) NOT NULL,---姓名BIRTHDAY DATE---生日); 現在,要求你把 生日是1980-8-8,學曆是 碩士的人找出來,很簡單,我們可以這麼寫:SELECT * FROM USER WHERE BIRTHDAY='1980-8-8' AND DEGREE='碩士'; 我們還可以這麼寫:SELECT * FROM USER WHERE (BIRTHDAY,DEGREE)=('19
----start查看目前時間VALUES CURRENT TIME; 查看當前日期VALUES CURRENT DATE; 查看目前時間戳VALUES CURRENT TIMESTAMP; 查看當前時區VALUES CURRENT TIMEZONE; 查看使用者VALUES USER; 查看系統使用者VALUES SYSTEM_USER; 查看串連使用者VALUES SESSION_USER; 查看目前使用者VALUES CURRENT USER; 查看當前用戶端的賬戶名稱VALUES
----startSELECT * FROM <TABLE-NAME>; 看到上面的語句了嗎?這是我們在熟悉不過的一條語句,我們中的大多人學習SQL正是從這條語句開始的。所以大多數人認為FROM語句後只能接一個表或視圖(或者壓根就沒多想),有這種想法的人我非常能理解,因為我曾經也是這其中的一員。其實FROM後面可以接任何集合(表)。說到這,關於集合和表,我特別想多少幾句。SQL的理論基礎是數學中的集合理論,所以SQL關注的就是如何對集合進行操作,基於以上原因,我特別喜歡名詞