【SQL】『スッキリわかるSQL入門』1〜3章の読書メモ

f:id:hira98:20190530154131j:plain

【結論】

  • 『スッキリわかるSQL入門』の1〜3章の要点をまとめた。

【目次】

基本文法

コメント

--もしくは/* */で記述します。

SELECT * FROM 俺のスキル; -- 「俺のスキル」テーブルの内容を全て出力

/*
「俺のスキル」テーブルから、
 スキル名と経験年数を出力する。
*/
SELECT スキル名, 経験年数 FROM 俺のスキル;

命令文

1命令の終了は;で表すため、途中で改行や半角の空白を入れても問題ないです。

以下の例1、2の実行結果は同じになります。

-- 例1
SELECT 費目, 出金学 FROM 家計簿 WHERE 出金学 > 3000;

-- 例2
SELECT 費目, 出金学
  FROM 家計簿
 WHERE 出金学 > 3000;

4大命令

4大命令は検索/更新既存/新規の2つの方法で分類できます。

命令文(用途) 検索/更新 既存/新規
SELECT(検索) 検索 既存
UPDATE(更新) 更新 既存
DELETE(削除) 更新 既存
INSER(追加) 更新 新規

SELECT文

SELECT 列名1,列名2,列名3 AS 別名
 FROM テーブル名 
(WHER修飾)
(その他の修飾)

ASを使うことで、実行結果の列名(FROMに書けばテーブル名)を変更できます。

UPDATE文

UPDATE テーブル名
  SET 列名1 = 値1, 列名2 = 値2...
(WHER修飾)

※WHER指定がないと全件更新になってしまうので注意が必要です。

DELETE文

DELETE
  FROM テーブル名
(WHER修飾)

※WHER指定がないと全件削除になってしまうので注意が必要です。

INSERT INTO文

INSERT INTO テーブル名
            (列名1, 列名2, 列名3...)
     VALUES (値1, 値2, 値3...)

※全列に値を追加する場合は、列名の指定を省略可能です。

WHER句で使用する演算子

基本比較演算子

JavaやCとほとんど同じで、=<><=>=<>(Javaだと!=)があります。

論理演算子

複数の条件を組み合わせて条件式を作る際に使用する演算子です。

以下のサイトを見ると、MySQLではAND(もしくは&&)、OR(もしくは||)、XORNOT(もしくは!)が利用できるようです。

https://www.dbonline.jp/mysql/ini/index8.html#section4

NULL判定

NULLはデータが空であること表し、次のように記述します。

  • NULLであることを判定する場合→ 列名 IS NULL

  • NULLでないことを判定する場合→ 列名 IS NOT NULL

LIKE演算子

文字列をパターンマッチ(要は正規表現)で比較したい時に使用します。

-- 構文
式 LIKE パターン文字列

動作検証はしていないですが、下表の正規表現が使えるはずです。

http://gimite.net/help/devas-ja/all_regex.html

IN・NOT IN演算子

複数の値と比較する場合に使用します。

構文は以下になります。

式 IN (値1, 値2, 値3...)
式 NOT IN (値1, 値2, 値3...)

IN演算子は式が値1,2,3のいずれかと合致する時にTRUEを返します。

NOT IN演算子は式が値1,2,3のいずれとも合致しない時にTRUEを返します。

ANY・ALL演算子

複数の値との比較を一度に行いたい時に使用します。

式 基本比較演算子 ANY (値1, 値2, 値3...)
式 基本比較演算子 ALL (値1, 値2, 値3...)

ANY演算子は値1,2,3それぞれと比較して、いずれかがTRUEならTRUEを返します。

ALL演算子は値1,2,3それぞれと比較して、すべてTRUEならTRUEを返します。

参考情報

スッキリわかるSQL入門 ドリル215問付き!

正規表現一覧

最後に

復習用のノートとしてブログを活用していくスタイルです。