SQLでデータを取得する
SQLとは
データベースに送る命令である「クエリ」を書くための言語。データベース言語と呼ぶ。
SQLでデータベースからデータを取得する方法
SELECT カラム名
FROM テーブル名;
FROM:どのテーブルからデータを取得するかを指定する。
SELECT:指定したテーブルのどのカラムのデータを取得するかを指定する。
「;」セミコロンをつけてクエリを完結させる。
複数のカラムからデータを取得する方法
SELECT カラム1, カラム2
FROM テーブル名;
カラム名を「,」コンマで区切る。
SELECT *
FROM テーブル名;
全てのカラムからデータを取得する場合は、「*」を記述する。
特定のデータを取得する
SELECT *
FROM テーブル名
WHERE カラム名 = "○○";
WHERE:指定したカラム名が〇〇であるレコード(行)を取得する
SELECT *
FROM purchases
WHERE user_name = "太郎";
purchasesテーブルの
user_nameカラムが
「太郎」のレコードを
全て取得する
比較演算子を利用してデータを取得する
SELECT *
FROM purchases
WHERE price >= 500;
purchasesテーブルから
priceカラムの値が500円以上のレコードを
全て取得する
SELECT *
FROM purchases
WHERE purchased_at <= "2023-01-01";
purchasesテーブルから
purchased_atカラムの値が「2023−01−01」以前のレコードを
全て取得する
日付は「””」ダブルクオーテーションで囲む。
ある文字を含むデータを取得する
SELECT *
FROM テーブル名
WHERE name LIKE 文字列;
SELECT *
FROM purchases
WHERE name LIKE "%りんご%";
purchasesテーブルから
「りんご」という文字列を含むレコードを
全て取得する
「%」は「ワイルドカード」と呼び、どんな文字列も一致することを指す記号。ここでは「プリン」の前後にどのような文字列があっても良いことを示す。
"%りんご%":「りんご」が含まれる文字列
" りんご%":「りんご」から始まる文字列(前方一致)
"%りんご":「りんご」で終わる文字列(後方一致)
否定条件でデータを取得する
SELECT *
FROM purchases
WHERE NOT name LIKE "%りんご%";
NOT演算子を用いることで、条件を満たさないレコードを取得する。
カラムに値が保存されていないデータを取得する
SELECT *
FROM purchases
WHERE カラム名 IS NULL;
「IS NULL」とすることで、指定したカラム名で値が保存されていないレコードを取得する。
逆に、「IS NOT NULL」とすると、指定したカラム名で値が保存されているレコードを取得する。
「NULL」に関連するデータを取得する際は、「=」は使えない。
複数の条件を満たすデータを取得する
SELECT *
FROM purchases
WHERE 条件1 AND 条件2;
SELECT *
FROM purchases
WHERE user_name = "太郎" AND category = "食費";
AND演算子を使うことで複数の条件に当てはまるレコードが取得できる。
SELECT *
FROM purchases
WHERE user_name = "太郎" OR category = "食費";
OR演算子を使うことで、複数の条件のどちらか一方に当てはまるレコードが取得できる。
取得したデータを並び替える
SELECT *
FROM purchases
ORDER BY カラム名 並べ方;
昇順(小さいものから並べる):ASC
降順(大きものから並べる):DESC
「ORDER BY」はクエリの末尾に記述する。
SELECT *
FROM purchases
WHERE 条件
ORDER BY カラム名 並べ方;
「WHERE」と併用が可能。
SELECT *
FROM purchases
WHERE user_name = "太郎"
ORDER BY price DESC;
purchasesテーブルから
user_nameカラムが「太郎」であるレコードを
全て取得し
priceカラムの値が大きい順に並べる
出力するデータ件数を指定する
SELECT *
FROM purchases
LIMIT 5;
「LIMIT」で任意のデータ数を指定する。クエリの末尾に記述する。
「WHERE」と併用が可能。
SELECT *
FROM purchases
WHERE user_name = "太郎"
LIMIT 5;
purchasesテーブルから
user_nameカラムが「太郎」のレコードを
全て取得し
5件表示する
以上、SQLでの基本的なデータの取得方法のまとめです。