資料類型和變數

----start一:資料類型Data Types |---Numeric | |---Integer | | |---SMALLINT | | |---INTEGER | | |---BIGINT | |---DECIMAL | |---Floating Point | | |---REAL | |

DB2安全性概述

----startDB2 的安全性由兩方面組成:認證和授權認證認證就是系統驗證使用者身份的過程。說的簡單點,就是驗證使用者名稱和密碼,因為DB2使用者同時也是作業系統使用者,所以,首先必須得到作業系統的認可。在預設情況下,DB2使用的就是基於作業系統的使用者認證。當然,你也可以指定其它認證方式。DBM CFG 的AUTHENTICATION參數決定在哪裡進行使用者認證。AUTHENTICATION可以設定為以下值:SERVER (default) 認證在伺服器端執行CLIENT

內聯 SQL PL(Inline SQL PL)

----start    通常SQL PL只能使用在預存程序、觸發器、使用者自訂函數中,但是有一部分SQL PL也可以直接在命令列編輯器或指令碼中使用,它們是:DECLARE <variable>SETCASEFORGET DIAGNOSTICSGOTOIFRETURNSIGNALWHILEITERATELEAVE 以下SQL PL不能直接在命令列編輯器或指令碼中使用,它們只能在預存程序、觸發器、使用者自訂函數中使用:ALLOCATE CURSORASSOCIATE

GROUPING SETS、ROLLUP、CUBE

----start    大家對GROUP BY應該比較熟悉,如果你感覺自己並不完全理解GROUP BY,那麼本文不適合你。還記得當初學習SQL的時候,總是理解不了GROUP BY的作用,經過好長時間才終於明白GROUP BY的真諦。當然,這和我本人笨也有關係,但是GROUP BY的確不好理解。本文將介紹DB2 GROUPING SETS、ROLLUP、CUBE的使用方法,這些關鍵字比GROUP BY更難理解,所以閱讀本文的時候,一定要慢,仔細的分析,你理解的越多,需要記憶的就越少。  

DB2 中刪除資料

----start    大家對如何刪除資料都不陌生,我們習慣性的這麼寫:DELETE FROM <TABLE_NAME> WHERE <CONDITION>; 其實這麼寫效能並不好,尤其是刪除大量資料的時候,要想獲得更好的效能,可以採用如下方式:DELETE FROM(SELECT * FROM <TABLE_NAME> WHERE

GET DIAGNOSTIC 語句

----start    GET DIAGNOSTIC 語句用於擷取前面執行的 SQL 陳述式的相關資訊,它可以擷取以下資訊:1、前面執行的 SQL 陳述式處理的行數2、前面執行的 SQL 陳述式返回的 DB2 錯誤或警告訊息文本3、與前一個 CALL 語句相關聯的過程返回的狀態值 一:文法:GET DIAGNOSTICS <sql-variable-name>=[ROW_COUNT | DB2_RETURN_STATUS |

DB2 函數概覽

 ----startDB2 內建的函數真的是很多,要精通每個函數幾乎是不可能的,所以本文並不打算介紹每個函數的具體用法,而是提供一個概覽,讓您瞭解每個函數的功能,這樣,當你感覺你需要某些功能的函數時,再學習它們的具體用法也不遲。  DB2內建函數大體分為以下幾類:彙總函式類型轉換函式數學函數字串函數日期時間函數XML

在預存程序之間傳遞資料

----start    預存程序之間可以相互調用,如何在它們之間傳遞資料呢?有以下3種方法。一:通過輸入輸出參數傳遞資料    這是最簡單的一種方式,不過值得注意的是,預存程序中的RETURN語句和其它程式設計語言中的return語句含義是不同的。預存程序中的return語句放回sqlcode值。二:通過會話全域變數傳遞資料--串連資料庫CONNECT TO SAMPLE!--建立會話全域變數CREATE VARIABLE MYVAR INTEGER DEFAULT

SOME,ANY,All,EXISTS,IN

----start  這幾個關鍵字有一個共同點,那就是它們一般應用於子查詢中。大家對 IN 都比較熟悉,這裡我們就不介紹了,下面我們看一看其他幾個關鍵字的使用,首先,我們定義如下表:--學生CREATE TABLE STUDENT(ID VARCHAR(8),---學號NAME VARCHAR(20),---姓名CLASS VARCHAR(20),---班級CHINESE FLOAT,---語文成績MATH FLOAT---數學成績);INSERT INTO STUDENT (ID, NAME,

DB2 特殊寄存器(Special Registers)

----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

IN 與 DISTINCT

----start    在開始本文之前,我們先看條SQL語句,如下:SELECT <field_name> FROM <...> WHERE <field_name> IN( SELECT DISTINCT <field_name> FROM <...>);怎麼樣?看上去是不是很熟悉,可能你曾經寫過 或者

UNION, INTERSECT, EXCEPT

----start  這幾個關鍵字是用來操作集合的。UNION用來求兩個集合的並集,INTERSECT用來求兩個集合的交集,EXCEPT用來求在第一個集合中存在,而在第二個集合中不存在的記錄。每個關鍵字後面都可以接ALL(UNION ALL, INTERSECT ALL,  EXCEPT ALL),如果不接ALL,操作集合將會去掉重複值,下面我們通過一個例子來對比一下它們直接的不同。---UNIONVALUES ('A'), ('A'), ('B'), ('B'),

遷移預存程序

----start    如果我們想將 SQL 過程從一個伺服器轉移到另一個伺服器,或者分享給他人又不想讓他知道內容,那麼,我們可以將預存程序的內容加密,可以通過 PUT ROUTINE 和 GET ROUTINE 命令來實現。一:GET ROUTINE命令GET ROUTINE 是一個 DB2 命令,它從資料庫中提取一個 SQL 過程,並將它轉換成一個 SAR(SQL Archive)檔案。文法:GET ROUTINE INTO <file_name> FROM SPECIFIC

複合陳述式(compound statement)

----start   大多數程式設計語言使用大括弧來定義複合陳述式,將大括弧中的語句看做一個整體,SQL PL也可以定義複合陳述式,格式如下:文法:label: BEGIN [ATOMIC | NOT ATOMIC]--變數聲明、過程邏輯等END label樣本1:P1:BEGIN DECLARE var1 INT; DECLARE var1 INT;END P1樣本2:BEGIN ATOMIC DECLARE var1 INT; DECLARE var1

在操作資料的同時查看操作前或操作後的值

----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

更多簡單而實用的 DB2 SQL 陳述式

----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

巢狀表格運算式(Nested Table Expression)

----startSELECT * FROM <TABLE-NAME>; 看到上面的語句了嗎?這是我們在熟悉不過的一條語句,我們中的大多人學習SQL正是從這條語句開始的。所以大多數人認為FROM語句後只能接一個表或視圖(或者壓根就沒多想),有這種想法的人我非常能理解,因為我曾經也是這其中的一員。其實FROM後面可以接任何集合(表)。說到這,關於集合和表,我特別想多少幾句。SQL的理論基礎是數學中的集合理論,所以SQL關注的就是如何對集合進行操作,基於以上原因,我特別喜歡名詞

總頁數: 61357 1 .... 19007 19008 19009 19010 19011 .... 61357 Go to: 前往

聯繫我們

該頁面正文內容均來源於網絡整理,並不代表阿里雲官方的觀點,該頁面所提到的產品和服務也與阿里云無關,如果該頁面內容對您造成了困擾,歡迎寫郵件給我們,收到郵件我們將在5個工作日內處理。

如果您發現本社區中有涉嫌抄襲的內容,歡迎發送郵件至: info-contact@alibabacloud.com 進行舉報並提供相關證據,工作人員會在 5 個工作天內聯絡您,一經查實,本站將立刻刪除涉嫌侵權內容。

A Free Trial That Lets You Build Big!

Start building with 50+ products and up to 12 months usage for Elastic Compute Service

  • Sales Support

    1 on 1 presale consultation

  • After-Sales Support

    24/7 Technical Support 6 Free Tickets per Quarter Faster Response

  • Alibaba Cloud offers highly flexible support services tailored to meet your exact needs.