<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
    主站蜘蛛池模板: 免费看片在线观看| 亚洲一区二区三区91| 特色特黄a毛片高清免费观看| 日韩毛片免费无码无毒视频观看| 亚洲国产高清视频在线观看| 91免费福利精品国产| 久久精品国产亚洲AV香蕉| 青青草无码免费一二三区| 亚洲久本草在线中文字幕| 久久国产乱子伦免费精品| 亚洲日韩图片专区第1页| aⅴ在线免费观看| 亚洲人成综合网站7777香蕉| 最新欧洲大片免费在线| 亚洲精品无码少妇30P| 国产午夜无码视频免费网站| 色婷婷亚洲一区二区三区| 亚洲av无码成人精品区在线播放 | 美女黄网站人色视频免费国产| 亚洲国产精品免费观看| 精品久久免费视频| 成人国产网站v片免费观看| 中文字幕亚洲天堂| 99爱在线精品视频免费观看9| 亚洲美女中文字幕| 成人毛片免费观看| rh男男车车的车车免费网站| 亚洲成a人片在线观看无码 | 成年午夜视频免费观看视频| 日韩欧美亚洲国产精品字幕久久久| 凹凸精品视频分类国产品免费| 午夜免费国产体验区免费的| 午夜影视日本亚洲欧洲精品一区| 中文字幕在线免费| 亚洲精华国产精华精华液网站| 久久影视综合亚洲| 99久久国产热无码精品免费| 羞羞网站在线免费观看| 亚洲一区二区三区首页| 国产又粗又长又硬免费视频 | 亚洲伊人久久大香线蕉结合|