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のみ。他言語は若干構文が異なる