小男孩‘自慰网亚洲一区二区,亚洲一级在线播放毛片,亚洲中文字幕av每天更新,黄aⅴ永久免费无码,91成人午夜在线精品,色网站免费在线观看,亚洲欧洲wwwww在线观看

分享

SQL備忘錄

 昵稱2495488 2010-08-06

SQL備忘錄:

SQL 函數(shù)   AVG (平均) COUNT (計(jì)數(shù)) MAX (最大值) MIN (最小值) SUM (總合) 

 

UNION 指令的目的是將兩個(gè) SQL 語句的結(jié)果合并起來。

 

UNION ALL 這個(gè)指令的目的也是要將兩個(gè) SQL 語句的結(jié)果合并在一起。

UNION ALLUNION 不同之處在于 UNION ALL 會(huì)將每一筆符合條件的資料都列出來,無論資料值有無重復(fù)。 和 UNION 指令類似,

INTERSECT 也是對(duì)兩個(gè) SQL 語句所產(chǎn)生的結(jié)果做處理的。不同的地方是, UNION 基本上是一個(gè) OR (如果這個(gè)值存在于第一句或是第二句,它就會(huì)被選出),而 INTERSECT 則比較像 AND ( 這個(gè)值要存在于第一句和第二句才會(huì)被選出)。 UNION 是聯(lián)集,而 INTERSECT 是交集

MINUS 指令是運(yùn)用在兩個(gè) SQL 語句上。它先找出第一個(gè) SQL 語句所產(chǎn)生的結(jié)果,然后看這些結(jié)果有沒有在第二個(gè) SQL 語句的結(jié)果中。如果有的話,那這一筆資料就被去除,而不會(huì)在最后的結(jié)果中出現(xiàn)。如果第二個(gè) SQL 語句所產(chǎn)生的結(jié)果并沒有存在于第一個(gè) SQL 語句所產(chǎn)生的結(jié)果內(nèi),那這筆資料就被拋棄。

 

而我們要找出哪幾天有店面交易和網(wǎng)絡(luò)交易。要達(dá)到這個(gè)目的,我們用以下的 SQL 語句:

假設(shè)我們有以下的兩個(gè)表格,

 

Store_Information 表格

store_name Sales Date
Los Angeles $1500 Jan-05-1999
San Diego $250 Jan-07-1999
Los Angeles $300 Jan-08-1999
Boston $700 Jan-08-1999

 

Internet Sales 表格
Date Sales
Jan-07-1999 $250
Jan-10-1999 $535
Jan-11-1999 $320
Jan-12-1999 $750

 

 

SELECT Date FROM Store_Information
INTERSECT
SELECT Date FROM Internet_Sales

結(jié)果:

 

Date
Jan-07-1999

 

請(qǐng)注意,在 INTERSECT 指令下,不同的值只會(huì)被列出一次。

 

而我們要知道有哪幾天是有店面營(yíng)業(yè)額而沒有網(wǎng)絡(luò)營(yíng)業(yè)額的。要達(dá)到這個(gè)目的,我們用以下的 SQL 語句:

SELECT Date FROM Store_Information
MINUS
SELECT Date FROM Internet_Sales

結(jié)果:

 

Date
Jan-05-1999
Jan-08-1999

 

 

有的時(shí)候,我們有需要將由不同欄位獲得的資料串連在一起。每一種資料庫都有提供方法來達(dá)到這個(gè)目的:

  • MySQL: CONCAT()
  • Oracle: CONCAT(), ||
  • SQL Server: +

CONCAT() 的語法如下:

CONCAT(字串1, 字串2, 字串3, ...): 將字串1、字串2、字串3,等字串連在一起。請(qǐng)注意,Oracle的CONCAT()只允許兩個(gè)參數(shù);換言之,一次只能將兩個(gè)字串串連起來。不過,在Oracle中,我們可以用'||'來一次串連多個(gè)字串。

來看幾個(gè)例子。假設(shè)我們有以下的表格:

Geography 表格

region_name store_name
East Boston
East New York
West Los Angeles
West San Diego

 

例子1:

MySQL/Oracle:
SELECT CONCAT(region_name,store_name) FROM Geography
WHERE store_name = 'Boston';

結(jié)果

'EastBoston'

例子2:

Oracle:
SELECT region_name || ' ' || store_name FROM Geography
WHERE store_name = 'Boston';

結(jié)果

'East Boston'

例子3:

SQL Server:
SELECT region_name + ' ' + store_name FROM Geography
WHERE store_name = 'Boston';

結(jié)果

'East Boston'

 

SQL 中的 substring 函數(shù)是用來抓出一個(gè)欄位資料中的其中一部分。這個(gè)函數(shù)的名稱在不同的資料庫中不完全一樣:

  • MySQL: SUBSTR(), SUBSTRING()
  • Oracle: SUBSTR()
  • SQL Server: SUBSTRING()

最常用到的方式如下 (在這里我們用SUBSTR()為例):

SUBSTR(str,pos): 由<str>中,選出所有從第<pos>位置開始的字元。請(qǐng)注意,這個(gè)語法不適用于SQL Server上。

SUBSTR(str,pos,len): 由<str>中的第<pos>位置開始,選出接下去的<len>個(gè)字元。

假設(shè)我們有以下的表格:

Geography 表格

region_name store_name
East Boston
East New York
West Los Angeles
West San Diego

 

例1:

SELECT SUBSTR(store_name, 3)
FROM Geography
WHERE store_name = 'Los Angeles';

結(jié)果:

's Angeles'

例2:

SELECT SUBSTR(store_name,2,4)
FROM Geography
WHERE store_name = 'San Diego';

結(jié)果:

'an D'

 

 

LIKE 是另一個(gè)在 WHERE 子句中會(huì)用到的指令。基本上,LIKE 能讓我們依據(jù)一個(gè)套式 (pattern) 來找出我們要的資料。相對(duì)來說,在運(yùn)用 IN 的時(shí)候,我們完全地知道我們需要的條件;在運(yùn)用 BETWEEN 的時(shí)候,我們則是列出一個(gè)范圍。 LIKE 的語法如下:

SELECT "欄位名"
FROM "表格名"
WHERE "欄位名" LIKE {套式}

{套式} 經(jīng)常包括野卡 (wildcard). 以下是幾個(gè)例子:

 

  • 'A_Z': 所有以 'A' 起頭,另一個(gè)任何值的字原,且以 'Z' 為結(jié)尾的字串。 'ABZ' 和 'A2Z' 都符合這一個(gè)模式,而 'AKKZ' 并不符合 (因?yàn)樵?A 和 Z 之間有兩個(gè)字原,而不是一個(gè)字原)。

     

  • 'ABC%': 所有以 'ABC' 起頭的字串。舉例來說,'ABCD' 和 'ABCABC' 都符合這個(gè)套式。

     

  • '%XYZ': 所有以 'XYZ' 結(jié)尾的字串。舉例來說,'WXYZ' 和 'ZZXYZ' 都符合這個(gè)套式。

     

  • '%AN%': 所有含有 'AN' 這個(gè)套式的字串。舉例來說, 'LOS ANGELES' 和 'SAN FRANCISCO' 都符合這個(gè)套式。

    我們將以上最后一個(gè)例子用在我們的 Store_Information 表格上:

    Store_Information 表格

    store_name Sales Date
    LOS ANGELES $1500 Jan-05-1999
    SAN DIEGO $250 Jan-07-1999
    SAN FRANCISCO $300 Jan-08-1999
    BOSTON $700 Jan-08-1999

     

    我們就打入,

    SELECT *
    FROM Store_Information
    WHERE store_name LIKE '%AN%'

     

    • 本站是提供個(gè)人知識(shí)管理的網(wǎng)絡(luò)存儲(chǔ)空間,所有內(nèi)容均由用戶發(fā)布,不代表本站觀點(diǎn)。請(qǐng)注意甄別內(nèi)容中的聯(lián)系方式、誘導(dǎo)購買等信息,謹(jǐn)防詐騙。如發(fā)現(xiàn)有害或侵權(quán)內(nèi)容,請(qǐng)點(diǎn)擊一鍵舉報(bào)。
      轉(zhuǎn)藏 分享 獻(xiàn)花(0

      0條評(píng)論

      發(fā)表

      請(qǐng)遵守用戶 評(píng)論公約

      類似文章 更多