MySQLでデータを取得する SELECT構文

テーブルから全ての列のデータを取得

SELECT * FROM テーブル名;

テーブルから特定の列を取得

SELECT 列名 FROM テーブル名;

テーブルから複数の列を取得

SELECT 列名A,列名B,列名C FROM テーブル名;

※列名の順はテーブル定義順に沿う必要はない

重複したレコードを予め取り除く

SELECT DISTINCT 列名 FROM テーブル名;

条件に合致したレコードだけを取得

SELECT 列名 FROM テーブル名 WHERE 条件式;

※条件式は比較演算子を用いる

比較演算子

・=
・<>
・>
・<
・>=
・<=
・LIKE
・NOT LIKE
・IS NULL
・IS NOT NULL
・IN
・NOT IN
・BETWEEN
・NOT BETWEEN

「=」の使用例

name = '鈴木'

「LIKE」3パターンの例

・name LIKE '鈴木%'
・name LIKE '%鈴木'
・name LIKE '%鈴木%'

→上から、「鈴木」で始まる文字列、「鈴木」で終わる文字列、「鈴木」を含む文字列という条件

「IN」の使用例

name IN ('鈴木','山田')

→鈴木か山田のいずれかであるという条件

「BETWEEN」の使用例

age BETWEEN 10 AND 20

→10と20の間であるという条件

条件を複数指定するには

論理演算子を使用する

論理演算子

・AND
・OR

「AND」の使用例

WHERE name IN ('鈴木','山田') AND age >= 10

ANDとORを同時に使用した場合の優先解釈

ANDによる結合が優先的に解釈される

※ORにようる結合を優先解釈させる場合、括弧でくくる

括弧による優先解釈指定の例

WHERE ( name = '鈴木' OR name = '山田' ) AND age >= 10

ひらがなカタカナ/半角全角混合検索

・where namae collate utf8_unicode_ci like '%サトウ%'
・文字コードの照合順序を「utf8_unicode_ci」にする →予期せぬ文字の受付リスク有り

特定範囲のレコードのみを取得

SELECT 列名 FROM テーブル名 ORDER BY ソート条件 LIMIT 開始行, 行数;

※「開始行,」は省略可。その場合、0行目が開始行
※MySQLのみ。他言語は若干構文が異なる