見出し画像

SQLでデータを取得する

SQLとは


 データベースに送る命令である「クエリ」を書くための言語。データベース言語と呼ぶ。

SQLでデータベースからデータを取得する方法


SELECT カラム名
FROM テーブル名; 
  1.  FROM:どのテーブルからデータを取得するかを指定する。

  2.  SELECT:指定したテーブルのどのカラムのデータを取得するかを指定する。

  3.  「;」セミコロンをつけてクエリを完結させる。

複数のカラムからデータを取得する方法


SELECT カラム1, カラム2
FROM テーブル名;

カラム名を「,」コンマで区切る。

SELECT *
FROM テーブル名;

全てのカラムからデータを取得する場合は、「*」を記述する。

特定のデータを取得する


SELECT *
FROM テーブル名
WHERE カラム名 = "○○";

WHERE:指定したカラム名が〇〇であるレコード(行)を取得する

SELECT * 
FROM purchases 
WHERE user_name = "太郎"; 
  1. purchasesテーブルの

  2. user_nameカラムが

  3. 「太郎」のレコードを

  4. 全て取得する

比較演算子を利用してデータを取得する


SELECT *
FROM purchases
WHERE price >= 500;
  1. purchasesテーブルから

  2. priceカラムの値が500円以上のレコードを

  3. 全て取得する

SELECT *
FROM purchases
WHERE purchased_at <= "2023-01-01";
  1. purchasesテーブルから

  2. purchased_atカラムの値が「2023−01−01」以前のレコードを

  3. 全て取得する

日付は「””」ダブルクオーテーションで囲む。

ある文字を含むデータを取得する


SELECT *
FROM テーブル名
WHERE name LIKE 文字列;
SELECT *
FROM purchases
WHERE name LIKE "%りんご%"
  1. purchasesテーブルから

  2. 「りんご」という文字列を含むレコードを

  3. 全て取得する

「%」は「ワイルドカード」と呼び、どんな文字列も一致することを指す記号。ここでは「プリン」の前後にどのような文字列があっても良いことを示す。

  • "%りんご%":「りんご」が含まれる文字列

  • " りんご%":「りんご」から始まる文字列(前方一致)

  •  "%りんご":「りんご」で終わる文字列(後方一致)

否定条件でデータを取得する


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;
  1. purchasesテーブルから

  2. user_nameカラムが「太郎」であるレコードを

  3. 全て取得し

  4. priceカラムの値が大きい順に並べる

出力するデータ件数を指定する


SELECT *
FROM purchases
LIMIT 5;

「LIMIT」で任意のデータ数を指定する。クエリの末尾に記述する。
「WHERE」と併用が可能。

SELECT *
FROM purchases
WHERE user_name = "太郎"
LIMIT 5;
  1. purchasesテーブルから

  2. user_nameカラムが「太郎」のレコードを

  3. 全て取得し

  4. 5件表示する

以上、SQLでの基本的なデータの取得方法のまとめです。