0
0

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?

SQL 基礎文法

0
Posted at

SQL 基礎文法

  • データベースの列:カラム
  • データベースの行:レコード
  • データベースに送る命令:クエリ

データの取得

  • SELECT
    • どのカラムのデータを取得するかを選ぶ
    • SELECT カラム名
  • FROM
    • データベースにはテーブルが複数存在する場合があるので、FROMを用いて、SELECTで選んだカラムがどのテーブルのカラムかを指定する
SELECT name 
FROM purchases;

最後に、クエリの終わりをデータベースに伝えるために;セミコロンを加える。
また、SQLは大文字と小文字とを区別しないので、小文字で記述しても問題ない

複数のカラムからデータを取得する場合は、カラム名をカンマで区切る

SELECT name, price

全カラムのデータを取得する場合は、*の記号を用いる

SELECT *

WHERE

特定のデータを取得する場合は、WHEREを使用する

  • WHERE
    • どこのレコードを取得するかを選ぶ
    • 「=」を用いて「〇〇カラムが〇〇であるレコード」といった意味になるように条件を指定する
SELECT *
FROM purchases
WHERE category = '食費' 

「=」のほかにも比較演算子を用いて条件を指定することもできる

WHERE price >= 1000; 

日付データも使える
例:2026-04-22以前のデータを指定

WHERE purchased_at <= "2026-04-22";

データベースではカラムごとにデータ型を指定する
とりあえず覚えておくべきデータ型

データ型 例 特徴
テキスト ”こんにちは” ダブルコーテーションまたはシングルコーテーションで囲まれた文字
数値 10 整数値
日付 "2026-04-22" コーテーションで囲まれた日付(yyyy-mm-dd)

LIKE

WHERE name LIKE "%プリン%"

- LIKE演算子では「%」をワイルドカードとして扱う
- ワイルドカードとは
	- どんな文字列にも一致することを指す記号
- 前方一致
	- `WHERE name LIKE "プリン%"`
	- プリンで始まる文字列を検索する
- 後方一致
	- `WHERE name LIKE "%プリン"`
	- プリンで終わる文字列を検索
	- どんな文字列にも一致することを指す記号

### NOT

- 「〇〇を含まないデータ」や「〇〇に一致しないデータ」のような条件でデータを取得したい場合は「否定」を意味する「**NOT演算子**」を使用する
```SQL
WHERE NOT price > 1000;
WHERE NOT name LIKE "プリン%";
  • 「NULLではないデータ」を取得する場合は「〜がNULLでない」という意味になる「IS NOT NULL」を使用する
WHERE price IS NOT NULL;
  • 「NULLのデータ」や「NULLでないデータ」を取得したい場合、「=」は使うことができない
  • 以下はNG
WHERE price = NULL; NG

AND

  • AND演算子を使うと、WHEREに複数の条件を指定することができる
  • 「WHERE 条件1 AND 条件2」のようにすることで、条件1と条件2を共に満たすデータを検索することができる
SELECT * FROM purchases
WHERE character_name = 'ひつじ'
AND category = '食費';

OR

  • OR演算子は、AND演算子と同様に、複数の条件を扱う
  • 「WHERE 条件1 OR 条件2」のようにすることで、条件1または条件2のどちらかを満たすデータを検索することができる
SELECT * FROM purchases
WHERE character_name = 'ひつじ'
OR character_name = 'にんじゃわんこ'

ORDER BY

  • データを並び替えるためには、「〜順に並べる」という意味の「ORDER BY」を使用する
  • またデータを並び替えるためには、「(基準となる)並べ替えたいカラム名」と「並べ方」を指定
    • 並べ方は、「昇順」か「降順」を指定
    • SQLでは「昇順」は「ASC」、「降順」は「DESC」と指定
  • 「ORDER BY」はクエリの末尾に記述することで、取得結果を並び替える
  • 「ORDER BY」は「WHERE」と併用することが可能
SELECT *
FROM purchase
WHERE price IS NOT NULL
ORDER BY price DESC;

LIMIT

  • 「最大で何件取得するか」を指定するためには、「制限する」という意味の「LIMIT」を使用する
  • 「LIMIT」は左の図のように「データの件数」を指定
  • クエリの末尾に記述することで、取得するデータの数を制限
  • 「WHERE」と併用することが可能
SELECT *
FROM purchases
WHERE name = 'hoge'
LIMIT 5;
  • 「ORDER BY」と「LIMIT」を併用することも可能
  • その場合、「LIMIT」を末尾にする必要がある
SELECT *
FROM purchase
WHERE price IS NOT NULL
ORDER BY price DESC
LIMIT 5;
  • 「ある文字を含むデータ」を取得したい場合は、「〜のような」という意味を持つ、「LIKE演算子」を使用する
    • 「指定したカラムが〇〇を含む(〇〇のような)レコード」という条件になる
SELECT *
FROM purchases
0
0
0

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
0
0

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?