SQLとは?
データベースを扱うことができる言語。分析もできる
データベースとは
テキストや数値などのデータを保存するためのツール
【例】
・TwitterなどのSNS:「投稿データ」をデータベースに保管
・Progate:「レッスンデータを」データベースに保管
データベースのしくみ
データベースは、以下のような表でデータを管理している。
この表のことを「テーブル」と呼ぶ
テーブルの構造
縦の列を「カラム」、横の列を「レコード」と呼ぶ
id | name | price |
1 | ハーゲンダッツ | 300 |
2 | チョコバッキー | 180 |
3 | ピノ | 100 |
4 | シマシマウマウマバー | 180 |
データベースに送る命令:クエリ
SELECT
データベースから、データを取得するためには「SELECT」を使う。
SELECTを用いて「どのカラム(縦)のデータを取得するか」を選ぶ。
FROM
データベースには複数のテーブルが存在する場合がある。
そのため、「FROM」を用いて、SELECTで選んだカラムが「どのテーブル(表)のカラムか」を指定する。
【書き方】
SELECT name ← ②どのカラム
FROM purchases; ← ①どのテーブルの
- 最後に「ここまでがクエリです」ということをデータベースに伝えるためのセミコロン(;)を加えて完成
複数のカラムからデータを取得する
カラム名をコンマ( , )で区切る。
【書き方①】
SELECT name,price
FROM purchases;
【書き方②:すべてのカラムからデータを取得する】
SELECT *
FROM purchases;
- リスト
- リスト
特定のデータを取得する:WHERE(どこ)
「WHERE」が意味するのは、「どこのレコード(横の行)を取得するか」になる。
【書き方:例「category」カラム(縦)が「食費」であるレコード(横列)】
SELECT *
FROM purchases;
WHERE category = “食費”; ←「食費」はクォーテーションで囲む!
データ型
テキストデータや数値データ、さらには日付データといったように「データの種類」を示すもの
データ型 | 例 | 特徴 |
テキスト | “もののけ姫” | ダブルクォーテーションorシングルクォーテーションで囲まれた文字 |
数値 | 1000 | 整数値 |
日付 | “2023-9-11” | クォーテーションで囲まれた日付(年‐月‐日) |
比較演算子
大小比較の記号を用いることができます。比較演算子を用いることで、
「priceカラムが1000以上であるレコード」などを取得することが可能。日付にも使える
LIKE演算子
「ある文字を含むデータ」を取得したい場合は、「〜のような」という意味を持つ、「LIKE演算子」を使う。
【書き方】
SELECT *
FROM purchases;
WHERE category LIKE “文字列”;
- 「指定したカラムが〇〇を含む(〇〇のような)レコード」という条件となる
ワイルドカード
「ワイルドカード」とは、どんな文字列にも一致することを指す記号
SQLでは「%」をワイルドカードとして扱う。
【書き方】
SELECT *
FROM purchases;
WHERE category LIKE “%アイス%“;
- これにより「アイス」を含むデータを全て取得している。
前方一致・後方一致
ワイルドカードを文字列の前後どちらかにのみ置くことも可能
【前方一致】
SELECT *
FROM purchases;
WHERE category LIKE “アイス%“;
- 「アイス」以降はどんな文字列にも一致する → 前方一致
【後方一致】
SELECT *
FROM purchases;
WHERE category LIKE “%アイス”;
否定のデータを取得する(○○以外)
「〇〇を含まないデータ」や「〇〇に一致しないデータ」のような条件でデータを取得したい場合は「否定」を意味する
「NOT演算子」を使う。
【書き方例①】
SELECT *
FROM purchases;
WHERE NOT category LIKE “%アイス%“;
- 「アイス」を含まないデータを取得する
【書き方例②】
SELECT *
FROM purchases;
WHERE NOT price > 1000;
1000円より大きい金額を含まない
NULL:中身に何も保存されていない
NULLのデータを取得する
NULLのデータを取得するためには「〜がNULLである」という意味になる、「IS NULL」を用いる。
【書き方例】
SELECT *
FROM purchases;
WHERE price IS NULL;
- 「指定したカラムがNULLであるデータ」を取得することが可能。
- 上記の場合、priceカラムの中で「NULL」であるデータを取得する
NULLではないデータを取得する
「NULLではないデータ」を取得する場合は「〜がNULLでない」という意味になる「IS NOT NULL」を用いる。
【書き方例】
SELECT *
FROM purchases;
WHERE price IS NOT NULL;
- priceカラムの中でNULLではないデータを取得する
- 「NULLのデータ」や「NULLでないデータ」を取得したい場合、「=」は使うことができないので注意する。
複数の条件からデータを取得する
AND演算子
AND演算子を使うと、WHEREに複数の条件を指定することができる。
【書き方例】
SELECT *FROM purchases
WHERE category = “食費”
AND price > 1000;
- 「WHERE 条件1 AND 条件2」のようにすることで、条件1と条件2を共に満たすデータを検索することができる。
- 上記の場合、食事categoryかつ値段が1000円より高いものとなる
OR演算子
OR演算子は、AND演算子と同様に、複数の条件を扱う。
【書き方例】
SELECT *FROM purchases
WHERE category = “食費”
OR category = “雑費”;
- 「WHERE 条件1 OR 条件2」のようにすることで、条件1または条件2のどちらかを満たすデータを検索することができる。
- 上記の場合、カテゴリーが食費または雑費のデータを取得できる
取得したデータを並び替える ORDER BY
データを並び替えるためには、「〜順に並べる」という意味の「ORDER BY」を用いる。
【書き方】
ORDER BY 並べ替えたいカラム(縦)名 並べ方;
- 並べ方は、昇順は「ASC」、降順「DESC」と指定する。
- クエリ(命令)の末尾に記述することで、取得結果を並び替える。
- WHEREと併用可能
「必要な数だけ」データを取得する LIMIT
「最大で何件取得するか」を指定するためには、「制限する」という意味の「LIMIT」を用いる。
【書き方】
LIMIT データの件数;
- LIMITはクエリの末尾に記述することで、取得するデータの数を制限する
- WHEREとの併用も可能
ORDER BYとLIMITの組み合わせ
「ORDER BY」と「LIMIT」を併用することも可能。
【書き方例】
SELECT *FROM purchases
ORDER BY price DESC
LIMIT 5;
- 「LIMIT」を末尾にする
- 2つを併用するで、priceが高いデータの上位5位を取得できる
コメント