<rt id="bn8ez"></rt>
<label id="bn8ez"></label>

  • <span id="bn8ez"></span>

    <label id="bn8ez"><meter id="bn8ez"></meter></label>

    gembin

    OSGi, Eclipse Equinox, ECF, Virgo, Gemini, Apache Felix, Karaf, Aires, Camel, Eclipse RCP

    HBase, Hadoop, ZooKeeper, Cassandra

    Flex4, AS3, Swiz framework, GraniteDS, BlazeDS etc.

    There is nothing that software can't fix. Unfortunately, there is also nothing that software can't completely fuck up. That gap is called talent.

    About Me

     

    SQL語法參考手冊

     
     
    SQL (Structured Query Language),是一種非常口語化、既易學又易懂的語法。此一語言幾乎是每個資料庫系統都必須提供的,用以表示關連式的操作,包含了資料的定義(DDL)以及資料的處理(DML)。SQL原來拼成SEQUEL,這語言的原型以“系統 R“的名字在 IBM 圣荷西實驗室完成,經過IBM內部及其他的許多使用性及效率測試,其結果相當令人滿意,并決定在系統R 的技術基礎發展出來 IBM 的產品。而且美國國家標準學會(ANSI)及國際標準化組織(ISO)在1987遵循一個幾乎是以 IBM SQL 為基礎的標準關連式資料語言定義。

    一、資料定義 DDL(Data Definition Language)
    資料定語言是指對資料的格式和形態下定義的語言,他是每個資料庫要建立時候時首先要面對的,舉凡資料分哪些表格關系、表格內的有什麼欄位主鍵、表格和表格之間互相參考的關系等等,都是在開始的時候所必須規劃好的。

    1、建表格:
    CREATE TABLE table_name(
    column1 DATATYPE [NOT NULL] [NOT NULL PRIMARY KEY],
    column2 DATATYPE [NOT NULL],
    ...)
    說明: 
    DATATYPE --是資料的格式,詳見表。
    NUT NULL --可不可以允許資料有空的(尚未有資料填入)。
    PRIMARY KEY --是本表的主鍵。

    2、更改表格 
    ALTER TABLE table_name
    ADD COLUMN column_name DATATYPE
    說明:增加一個欄位(沒有刪除某個欄位的語法。
    ALTER TABLE table_name
    ADD PRIMARY KEY (column_name)
    說明:更改表得的定義把某個欄位設為主鍵。
    ALTER TABLE table_name
    DROP PRIMARY KEY (column_name)
    說明:把主鍵的定義刪除。

    3、建立索引 
    CREATE INDEX index_name ON table_name (column_name)
    說明:對某個表格的欄位建立索引以增加查詢時的速度。

    4、刪除 
    DROP table_name
    DROP index_name

    二、的資料形態 DATATYPEs
    smallint
    16 位元的整數。
    interger
    32 位元的整數。
    decimal(p,s)
    p 精確值和 s 大小的十進位整數,精確值p是指全部有幾個數(digits)大小值,s是指小數
    點後有幾位數。如果沒有特別指定,則系統會設為 p=5; s=0 。
    float
    32位元的實數。
    double
    64位元的實數。
    char(n)
    n 長度的字串,n不能超過 254。
    varchar(n)
    長度不固定且其最大長度為 n 的字串,n不能超過 4000。
    graphic(n)
    和 char(n) 一樣,不過其單位是兩個字元 double-bytes, n不能超過127。這個形態是為
    了支援兩個字元長度的字體,例如中文字。
    vargraphic(n)
    可變長度且其最大長度為 n 的雙字元字串,n不能超過 2000。
    date
    包含了 年份、月份、日期。
    time
    包含了 小時、分鐘、秒。
    timestamp
    包含了 年、月、日、時、分、秒、千分之一秒。

    三、資料操作 DML (Data Manipulation Language)
    資料定義好之後接下來的就是資料的操作。資料的操作不外乎增加資料(insert)、查詢資料(query)、更改資料(update) 、刪除資料(delete)四種模式,以下分 別介紹他們的語法:

    1、增加資料:
    INSERT INTO table_name (column1,column2,...)
    VALUES ( value1,value2, ...)
    說明:
    1.若沒有指定column 系統則會按表格內的欄位順序填入資料。
    2.欄位的資料形態和所填入的資料必須吻合。
    3.table_name 也可以是景觀 view_name。

    INSERT INTO table_name (column1,column2,...)
    SELECT columnx,columny,... FROM another_table
    說明:也可以經過一個子查詢(subquery)把別的表格的資料填入。

    2、查詢資料:
    基本查詢
    SELECT column1,columns2,...
    FROM table_name
    說明:把table_name 的特定欄位資料全部列出來
    SELECT *
    FROM table_name
    WHERE column1 = xxx
    [AND column2 > yyy] [OR column3 <> zzz]
    說明:
    1.'*'表示全部的欄位都列出來。
    2.WHERE 之後是接條件式,把符合條件的資料列出來。

    SELECT column1,column2
    FROM table_name
    ORDER BY column2 [DESC]
    說明:ORDER BY 是指定以某個欄位做排序,[DESC]是指從大到小排列,若沒有指明,則是從小到大
    排列

    組合查詢
    組合查詢是指所查詢得資料來源并不只有單一的表格,而是聯合一個以上的
    表格才能夠得到結果的。
    SELECT *
    FROM table1,table2
    WHERE table1.colum1=table2.column1
    說明:
    1.查詢兩個表格中其中 column1 值相同的資料。
    2.當然兩個表格相互比較的欄位,其資料形態必須相同。
    3.一個復雜的查詢其動用到的表格可能會很多個。

    整合性的查詢:
    SELECT COUNT (*)
    FROM table_name
    WHERE column_name = xxx
    說明:
    查詢符合條件的資料共有幾筆。
    SELECT SUM(column1)
    FROM table_name
    說明:
    1.計算出總和,所選的欄位必須是可數的數字形態。
    2.除此以外還有 AVG() 是計算平均、MAX()、MIN()計算最大最小值的整合性查詢。
    SELECT column1,AVG(column2)
    FROM table_name
    GROUP BY column1
    HAVING AVG(column2) > xxx
    說明:
    1.GROUP BY: 以column1 為一組計算 column2 的平均值必須和 AVG、SUM等整合性查詢的關鍵字
    一起使用。
    2.HAVING : 必須和 GROUP BY 一起使用作為整合性的限制。

    復合性的查詢
    SELECT *
    FROM table_name1
    WHERE EXISTS (
    SELECT *
    FROM table_name2
    WHERE conditions )
    說明:
    1.WHERE 的 conditions 可以是另外一個的 query。
    2.EXISTS 在此是指存在與否。
    SELECT *
    FROM table_name1
    WHERE column1 IN (
    SELECT column1
    FROM table_name2
    WHERE conditions )
    說明: 
    1. IN 後面接的是一個集合,表示column1 存在集合里面。
    2. SELECT 出來的資料形態必須符合 column1。

    其他查詢
    SELECT *
    FROM table_name1
    WHERE column1 LIKE 'x%'
    說明:LIKE 必須和後面的'x%' 相呼應表示以 x為開頭的字串。
    SELECT *
    FROM table_name1
    WHERE column1 IN ('xxx','yyy',..)
    說明:IN 後面接的是一個集合,表示column1 存在集合里面。
    SELECT *
    FROM table_name1
    WHERE column1 BETWEEN xx AND yy
    說明:BETWEEN 表示 column1 的值介於 xx 和 yy 之間。

    3、更改資料:
    UPDATE table_name
    SET column1='xxx'
    WHERE conditoins
    說明:
    1.更改某個欄位設定其值為'xxx'。
    2.conditions 是所要符合的條件、若沒有 WHERE 則整個 table 的那個欄位都會全部被更改。

    4、刪除資料:
    DELETE FROM table_name
    WHERE conditions
    說明:刪除符合條件的資料。

    說明:關于WHERE條件后面如果包含有日期的比較,不同數據庫有不同的表達式。具體如下:
    (1)如果是ACCESS數據庫,則為:WHERE mydate>#2000-01-01#
    (2)如果是ORACLE數據庫,則為:WHERE mydate>cast('2000-01-01' as date)
    或:WHERE mydate>to_date('2000-01-01','yyyy-mm-dd')
    在Delphi中寫成:
    thedate='2000-01-01';
    query1.SQL.add('select * from abc where mydate>cast('+''''+thedate+''''+' as date)');

    如果比較日期時間型,則為:
    WHERE mydatetime>to_date('2000-01-01 10:00:01','yyyy-mm-dd hh24:mi:ss')  

    posted on 2007-09-21 11:26 gembin 閱讀(952) 評論(1)  編輯  收藏

    評論

    # re: SQL語法參考手冊 2007-09-22 00:12 千里冰封

    不錯,有時間好好研究一下  回復  更多評論   


    只有注冊用戶登錄后才能發表評論。


    網站導航:
    博客園   IT新聞   Chat2DB   C++博客   博問  
     

    導航

    統計

    常用鏈接

    留言簿(6)

    隨筆分類(440)

    隨筆檔案(378)

    文章檔案(6)

    新聞檔案(1)

    相冊

    收藏夾(9)

    Adobe

    Android

    AS3

    Blog-Links

    Build

    Design Pattern

    Eclipse

    Favorite Links

    Flickr

    Game Dev

    HBase

    Identity Management

    IT resources

    JEE

    Language

    OpenID

    OSGi

    SOA

    Version Control

    最新隨筆

    搜索

    積分與排名

    最新評論

    閱讀排行榜

    評論排行榜

    free counters
    主站蜘蛛池模板: 日韩av无码免费播放| 视频免费在线观看| 手机在线免费视频| 猫咪免费人成网站在线观看| 国产精一品亚洲二区在线播放| 精品亚洲AV无码一区二区| 美女免费视频一区二区三区| 久久午夜无码免费| 免费国产不卡午夜福在线| 亚洲视频中文字幕| 无码日韩精品一区二区免费暖暖| 亚洲bt加勒比一区二区| 日韩在线视频免费| 免费A级毛片无码无遮挡内射| 亚洲午夜精品在线| 久久午夜伦鲁片免费无码| 亚洲成片观看四虎永久| 亚洲欧洲日产国码www| 国产免费久久精品99久久| 亚洲欧洲美洲无码精品VA| 香港一级毛片免费看| 亚洲一区二区三区无码中文字幕| 七色永久性tv网站免费看| 亚洲国产精品久久久久秋霞影院| 成熟女人特级毛片www免费| 国产精品亚洲色图| 亚洲线精品一区二区三区| 1000部夫妻午夜免费| 亚洲AV日韩AV无码污污网站| 免费播放特黄特色毛片| 久久精品电影免费动漫| 亚洲综合一区国产精品| 激情97综合亚洲色婷婷五 | 亚洲精品国自产拍在线观看| 亚洲免费综合色在线视频| 久久亚洲精品无码观看不卡| 7x7x7x免费在线观看| 亚洲黄色在线观看网站| 女性无套免费网站在线看| 亚洲色无码国产精品网站可下载| 亚洲精品无码日韩国产不卡?V|