欧美bbbwbbbw肥妇,免费乱码人妻系列日韩,一级黄片

mysql select語句操作實例

 更新時間:2014年12月02日 10:46:15   投稿:junjie  
這篇文章主要介紹了mysql select語句操作實例,本文給出了ORDER BY查詢、GROUP BY查詢、LIMIT查詢、UNION等語句的實例,需要的朋友可以參考下

Select的語法

復(fù)制代碼 代碼如下:

SELECT
    [ALL | DISTINCT | DISTINCTROW ]
      [HIGH_PRIORITY]
      [STRAIGHT_JOIN]
      [SQL_SMALL_RESULT] [SQL_BIG_RESULT] [SQL_BUFFER_RESULT]
      [SQL_CACHE | SQL_NO_CACHE] [SQL_CALC_FOUND_ROWS]
    select_expr, ...
    [INTO OUTFILE 'file_name' export_options
      | INTO DUMPFILE 'file_name']
    [FROM table_references
    [WHERE where_definition]
    [GROUP BY {col_name | expr | position}
      [ASC | DESC], ... [WITH ROLLUP]]
    [HAVING where_definition]
    [ORDER BY {col_name | expr | position}
      [ASC | DESC] , ...]
    [LIMIT {[offset,] row_count | row_count OFFSET offset}]
    [PROCEDURE procedure_name(argument_list)]
    [FOR UPDATE | LOCK IN SHARE MODE]]

SELECT用于恢復(fù)從一個或多個表中選擇的行,并可以加入UNION語句和子查詢。

每個select_expr都指示一個您想要恢復(fù)的列, table_references指示行從哪個表或哪些表中被恢復(fù)。

簡單查詢

復(fù)制代碼 代碼如下:

SELECT columna columnb FROM mytable;

ORDER BY查詢

復(fù)制代碼 代碼如下:

SELECT college, region, seed FROM tournament  ORDER BY region, seed;
SELECT college, region AS r, seed AS s FROM tournament ORDER BY r, s;
SELECT college, region, seed FROM tournament  ORDER BY 2, 3;

--要以相反的順序進(jìn)行分類,應(yīng)把DESC(降序)關(guān)鍵字添加到ORDER BY子句中的列名稱中。默認(rèn)值為升序;該值可以使用ASC關(guān)鍵詞明確地指定。
SELECT a, COUNT(b) FROM test_table ORDER BY a DESC;

GROUP BY查詢

復(fù)制代碼 代碼如下:

SELECT a, COUNT(b) FROM test_table GROUP BY a DESC;
SELECT COUNT(col1) AS col2 FROM t GROUP BY col2 HAVING col2 = 2;

-- HAVING不能用于應(yīng)被用于WHERE子句的條目,不能編寫如下語句:
SELECT col_name FROM tbl_name HAVING col_name > 0;
--而應(yīng)該這么編寫
SELECT col_name FROM tbl_name WHERE col_name > 0;

--HAVING子句可以引用總計函數(shù),而WHERE子句不能引用:
SELECT user, MAX(salary) FROM users GROUP BY user HAVING MAX(salary)>10;

LIMIT查詢

復(fù)制代碼 代碼如下:

SELECT * FROM tbl LIMIT 10;  # Retrieve rows 0-9;
SELECT * FROM tbl LIMIT 5,10;  # Retrieve rows 6-15;

--如果要恢復(fù)從某個偏移量到結(jié)果集合的末端之間的所有的行,您可以對第二個參數(shù)是使用比較大的數(shù)。
--以下語句可以恢復(fù)從第96行到最后的所有行:
SELECT * FROM tbl LIMIT 95,18446744073709551615;

SELECT...INTO OUTFILE

SELECT...INTO OUTFILE 'file_name'形式的SELECT可以把被選擇的行寫入一個文件中。該文件被創(chuàng)建到服務(wù)器主機上,因此您必須擁有FILE權(quán)限,才能使用此語法。file_name不能是一個原有的文件。

SELECT...INTO OUTFILE語句的主要作用是讓您可以非??焖俚匕岩粋€表轉(zhuǎn)儲到服務(wù)器機器上。如果您想要在服務(wù)器主機之外的部分客戶主機上創(chuàng)建結(jié)果文件,您不能使用SELECT...INTO OUTFILE。在這種情況下,您應(yīng)該在客戶主機上使用比如“mysql –e "SELECT ..." > file_name”的命令,來生成文件。

SELECT...INTO OUTFILE是LOAD DATA INFILE的補語;用于語句的exort_options部分的語法包括部分FIELDS和LINES子句,這些子句與LOAD DATA INFILE語句同時使用。

在下面的例子中,生成一個文件,各值用逗號隔開。這種格式可以被許多程序使用

復(fù)制代碼 代碼如下:

SELECT a,b,a+b INTO OUTFILE '/tmp/result.text'
FIELDS TERMINATED BY ','
OPTIONALLY ENCLOSED BY '"'
LINES TERMINATED BY '\n'
FROM test_table;

如果您使用INTO DUMPFILE代替INTO OUTFILE,則MySQL只把一行寫入到文件中,不對任何列或行進(jìn)行終止,也不執(zhí)行任何轉(zhuǎn)義處理。如果您想要把一個BLOB值存儲到文件中,則這個語句是有用的。

UNION

UNION用于把來自許多SELECT語句的結(jié)果組合到一個結(jié)果集合中,語法如下:

復(fù)制代碼 代碼如下:

SELECT ...
UNION [ALL | DISTINCT]
SELECT ...
[UNION [ALL | DISTINCT]
SELECT ...]

列于每個SELECT語句的對應(yīng)位置的被選擇的列應(yīng)具有相同的類型。(例如,被第一個語句選擇的第一列應(yīng)和被其它語句選擇的第一列具有相同的類型。)在第一個SELECT語句中被使用的列名稱也被用于結(jié)果的列名稱。

如果您對UNION不使用關(guān)鍵詞ALL,則所有返回的行都是唯一的,如同您已經(jīng)對整個結(jié)果集合使用了DISTINCT。如果您指定了ALL,您會從所有用過的SELECT語句中得到所有匹配的行。

您可以在同一查詢中混合UNION ALL和UNION DISTINCT。被混合的UNION類型按照這樣的方式對待,即DISTICT共用體覆蓋位于其左邊的所有ALL共用體。DISTINCT共用體可以使用UNION DISTINCT明確地生成,或使用UNION(后面不加DISTINCT或ALL關(guān)鍵詞)隱含地生成。

簡單例子:

復(fù)制代碼 代碼如下:

(SELECT a FROM tbl_name WHERE a=10 AND B=1)
UNION
(SELECT a FROM tbl_name WHERE a=11 AND B=2)
ORDER BY a LIMIT 10;

ALL, DISTINCT和DISTINCTROW

ALL, DISTINCT和DISTINCTROW選項指定是否重復(fù)行應(yīng)被返回。如果這些選項沒有被給定,則默認(rèn)值為ALL(所有的匹配行被返回)。DISTINCT和DISTINCTROW是同義詞,用于指定結(jié)果集合中的重復(fù)行應(yīng)被刪除。

復(fù)制代碼 代碼如下:

SELECT DISTINCT a FROM table_name;
SELECT COUNT(DISTINCT a) FROM table_name;

相關(guān)文章

最新評論