朝活のブログ

朝活のアウトプットを投稿します。

データの取得【SQL】

f:id:morning-output:20201008081408j:plain

 SQLエスキューエル)とは、データベースに送るクエリ(命令)を書くための言語です。拡張子は「.sql」です。

データベース

f:id:morning-output:20201009082535p:plain

データベースとは、テキストや数値などのデータを保存するためのツールです。上のような表でデータを管理しています。

表のことを「テーブル」、縦の列のことを「カラム」、横の行のことを「レコード」と呼びます。テーブルは複数作成することができます。

SELECT

SELECT category, price

SELECT カラム名」を用いると、どのカラムのデータを取得するか選ぶことができます。複数のカラムを指定する場合は「,(コンマ)」で区切ります。

 

SELECT *

全てのカラムを取得する場合「*(アスタリスク)」を使います。

FROM

SELECT category, price
FROM morning;

FROM テーブル名」を用いると、どのテーブルのカラムかを選ぶことができます。SQLでは、文末には「;(セミコロン)」を付けます。

WHERE

SELECT *
FROM morning;
WHERE category = "ブログ";

WHERE カラム名」を用いると、どこのレコードを取得するかの条件を決めることができます。上の記述では「category」が「ブログ」であるレコードを取得します。

データ型というルールに則り、テキストは「"(ダブルクォーテーション)」で囲みます。

データ型

  • 数値データ「1000」
  • 日付データ「"2020-05-01"」
  • テキストデータ「"こんにちは"」

データ型とは、データの種類を表すものです。日付データはテキストデータと同様に「"(ダブルクォーテーション)」で囲みます。

比較演算子

SELECT *
FROM morning;
WHERE price >= 500;

WHEREの条件では、比較演算子を使うことができます。

▼比較演算子の振り返り

  • A > B   AはBより大きい
  • A >= B AはB以上
  • A < B   AはBより小さい
  • A <= B AはB以下
SELECT *
FROM morning;
WHERE morning_at <= "2020-05-01";

日付データにも比較演算子を使うことができます。

上の記述は「2020-05-01 以前のデータ」を検索します。

LIKE演算子

SELECT *
FROM morning;
WHERE menu LIKE "文字列";
 

LIKE演算子を用いると、指定した文字を含むデータを取得することができます。

ワイルドカード

SELECT *
FROM morning;
WHERE menu LIKE "%コーヒー%";

ワイルドカードとは、どんな文字列にも一致することを指す記号です。

上記のように文字(コーヒー)をワイルドカード(%)で囲んで使用しています。

▼「コーヒー」を含むデータを全て取得します。

前方一致

SELECT *
FROM morning;
WHERE menu LIKE "コーヒー%";

「〇〇%」とした場合は、指定した文字で始まるデータを取得します。

  • コーヒー
  • コーヒー牛乳

後方一致

SELECT *
FROM morning;
WHERE menu LIKE "%コーヒー";

「%〇〇」とした場合は、指定した文字で終わるデータを取得します。

NOT演算子

SELECT *
FROM morning;
WHERE NOT menu LIKE "%コーヒー%";

NOT演算子を用いると、条件を満たさないデータを取得することができます。

上記の場合は「コーヒー」含む値以外が取得されます。

SELECT *
FROM morning;
WHERE NOT price > 500;

比較演算子にも使用可能です。

NULL

SELECT *
FROM morning;
WHERE price IS NULL;

NULLとは、データが何も保存されていないことを示します。

カラム名 IS NULL」を用いると、指定したカラムがNULLであるデータを取得することができます。

SELECT *
FROM morning;
WHERE price IS NOT NULL;

カラム名 IS NOT NULL」を用いると、NULLではないデータを取得します。

AND演算子

SELECT *
FROM morning;
WHERE category = "朝活"
AND place = "ドトール";

WHERE 条件1 AND 条件2」のように「AND」を用いると、複数の条件を指定することができます。

OR演算子

SELECT *
FROM morning;
WHERE place = "ドトール"
OR place = "スタバ";

WHERE 条件1 OR 条件2」のように「OR」用いると、2つの条件のどちらかを満たすデータを検索することができます。

ORDER BY

SELECT *
FROM morning;
ORDER BY price DESC;

ORDER BY」を用いると、カラムの並べ替えをすることができます。

  • ASC(昇順): 1,2,3...100 小 → 大
  • DESC(降順): 100...3,2,1 大 → 小
SELECT *
FROM morning;
WHERE 条件
ORDER BY price DESC;

「ORDER BY」は「WHERE」との併用可能です。

LIMIT

SELECT *
FROM morning;
LIMIT 10;

LIMIT」を用いると、取得するデータ数を制限することができます。

SELECT *
FROM morning;
WHERE 条件
LIMIT 10;

「LIMIT」も「WHERE」との併用可能です。