Select 構文
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 は、1 つ以上のテーブルから選択された行を復元するために使用され、UNIONステートメントとサブクエリを結合できます。 各 select_expr は復元する列を示し、table_references はどのテーブルから行が復元されるかを示します。
単純なクエリ
SELECT columna columnb FROM mytable;
ORDER BYクエリ
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; --要以相反的顺序进行分类,应把DESC(降序)关键字添加到ORDER BY子句中的列名称中。默认值为升序;该值可以使用ASC关键词明确地指定。 SELECT a, COUNT(b) FROM test_table ORDER BY a DESC;
GROUP BYクエリ
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不能用于应被用于WHERE子句的条目,不能编写如下语句: SELECT col_name FROM tbl_name HAVING col_name > 0; --而应该这么编写 SELECT col_name FROM tbl_name WHERE col_name > 0; --HAVING子句可以引用总计函数,而WHERE子句不能引用: SELECT user, MAX(salary) FROM users GROUP BY user HAVING MAX(salary)>10;
LIMITクエリ
SELECT * FROM tbl LIMIT 10; # Retrieve rows 0-9; SELECT * FROM tbl LIMIT 5,10; # Retrieve rows 6-15; --如果要恢复从某个偏移量到结果集合的末端之间的所有的行,您可以对第二个参数是使用比较大的数。 --以下语句可以恢复从第96行到最后的所有行: SELECT * FROM tbl LIMIT 95,18446744073709551615;
選択...OUTFILE へ
選択.. .INTO OUTFILE SELECT の 'file_name' 形式では、選択した行をファイルに書き込むことができます。ファイルはサーバー ホスト上に作成されるため、この構文を使用するには FILE 権限が必要です。 file_name をオリジナルのファイルにすることはできません。
SELECT...INTO OUTFILE ステートメントの主な機能は、テーブルをサーバー マシンに非常に迅速にダンプできるようにすることです。結果ファイルをサーバー ホスト以外のクライアント ホストに作成する場合、SELECT...INTO OUTFILE は使用できません。この場合、クライアント ホストで「mysql -e "SELECT ..." > file_name」などのコマンドを使用してファイルを生成する必要があります。
SELECT...INTO OUTFILE は LOAD DATA INFILE を補完するもので、ステートメントの exort_options 部分に使用される構文には、LOAD DATA INFILE ステートメントと同時に使用される部分的な FIELDS 句と LINES 句が含まれています。
以下の例では、各値をカンマで区切ってファイルが生成されます。この形式は多くのプログラムで使用できます
SELECT a,b,a+b INTO OUTFILE '/tmp/result.text' FIELDS TERMINATED BY ',' OPTIONALLY ENCLOSED BY '"' LINES TERMINATED BY '\n' FROM test_table;
UNIONUNION は、多くの SELECT ステートメントの結果を結果セットに結合するために使用されます。構文は次のとおりです。
SELECT ... UNION [ALL | DISTINCT] SELECT ... [UNION [ALL | DISTINCT] SELECT ...]
UNION に対してキーワード ALL を使用しない場合、返される行はすべて、結果セット全体に対して DISTINCT を使用したかのように一意になります。 ALL を指定すると、使用されたすべての SELECT ステートメントから一致するすべての行が取得されます。
同じクエリ内で UNION ALL と UNION DISTINCT を混在させることができます。混合 UNION 型は、DISTIC 共用体がその左側にあるすべての ALL 共用体をカバーするように処理されます。 DISTINCT 共用体は、UNION DISTINCT を使用して明示的に生成することも、UNION を使用して暗黙的に(後に続く DISTINCT または ALL キーワードなしで)生成することもできます。
簡単な例:
(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、および DISTINCTROWALL、DISTINCT および DISTINCTROW オプションは、重複行を返すかどうかを指定します。これらのオプションが指定されていない場合、デフォルト値は ALL (一致するすべての行が返されます) です。 DISTINCT と DISTINCTROW は同義語で、結果セット内の重複行を
削除する必要があることを指定するために使用されます。
りー
以上がmysql での select ステートメント操作の例を理解するの詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。