\ プログラミング学習奮闘記録 /

Progate学習メモ SQL①【基本】

目次

SQLとは?

データベースを扱うことができる言語。分析もできる

データベースとは

テキストや数値などのデータを保存するためのツール

【例】

・TwitterなどのSNS:「投稿データ」をデータベースに保管

・Progate:「レッスンデータを」データベースに保管

データベースのしくみ

データベースは、以下のような表でデータを管理している。

この表のことを「テーブル」と呼ぶ

テーブルの構造

の列を「カラム」、の列を「レコード」と呼ぶ

idnameprice
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位を取得できる
よかったらシェアしてね!
  • URLをコピーしました!
  • URLをコピーしました!

コメント

コメントする

CAPTCHA


目次