UnsplashのWillian Justen de Vasconcellosが撮影した写真
目次
以下のコマンドで全レコードを取得できます。
SELECT [取得するカラム] FROM [テーブル名];
例)SELECT name, mail FROM users;
※取得するカラムに「*」を指定すると、全カラムを取得できます。
「WHERE」を使うと指定した条件に合ったレコードを抽出できます。
WHEREは以下のように使います。
SELECT [取得するカラム] FROM [テーブル名] WHERE [条件]
「WHERE [カラム名] [比較演算子] [値]」の形で使います。
SELECT [取得するカラム] FROM [テーブル名] WHERE [カラム名] [比較演算子] [値];
例)SELECT * FROM users WHERE created_at >= "2023-10-15";
使用できる比較演算子については以下をご参照ください。
https://dev.mysql.com/doc/refman/8.0/ja/comparison-operators.html
あいまい検索には「LIKE」と「% もしくは _」を使います。
以下はnameカラムに「company」が入っているレコードを抽出し、取得します。
SELECT [取得するカラム] FROM [テーブル名] WHERE [検索カラム名] LIKE '%[検索文字列]%';
例)SELECT * FROM users WHERE name LIKE '%company%';
※ %:任意の0文字以上の文字列
※ _ :任意の1文字
SELECT [取得するカラム] FROM [テーブル名] WHERE [検索カラム名] IS NULL;
例)SELECT * FROM users WHERE hobby IS NULL;
※「NULL」の代わりに「NOT NULL」とするとNULLでないレコードを取得することもできます。
■OR
SELECT [取得するカラム] FROM [テーブル名] WHERE [条件1] OR [条件2];
■AND
SELECT [取得するカラム] FROM [テーブル名] WHERE [条件1] AND [条件2];
■条件の優先順位の指定
条件に優先順位をつけるには「()」を使います。
SELECT [取得するカラム] FROM [テーブル名] WHERE ([条件1] AND [条件2]) OR [条件3];
以下は「%」をエスケープする例です。
例)SELECT * FROM users WHERE name LIKE '%company#%' ESCAPE '#';
上の例では「company%」の文字列を検索する例です。
エスケープ記号を指定し、エスケープしたい記号の直前に置きます。
レコード数のカウントや抽出したレコードの合計を求めるなどで使えるコマンドです。
■レコード数のカウント
SELECT COUNT(*) FROM [対象テーブル];
■平均、合計、最小、最大を求める
以下は平均を求める例です。
SELECT AVG(対象カラム) FROM [対象テーブル]
「平均、合計、最小、最大」求めたい値に応じて以下を使用してください。
平均:AVG
合計:SUM
最小:MIN
最大:MAX
■グループ化する:GROUP BY
指定したカラムの値が同じものでまとめて集計するには「GROUP BY」を使います。
SELECT [表示するカラム] FROM [テーブル名] GROUP BY [グループ化に使うカラム名];
■取得したレコードをソートする
SELECT * FROM [テーブル名] ORDER BY [カラム名] ASC;
※昇順:ASC
※降順:DESC
■取得するレコード数を指定する
SELECT * FROM [テーブル名] LIMIT [取得するレコード数];
例)SELECT * FROM users LIMIT 3;
■検索開始レコードの位置を指定する
SELECT * FROM [テーブル名] OFFSET [開始レコード位置];
例)SELECT * FROM users OFFSET 4;
SELECTについては以上です。