IT未経験入社のわたしがSQL4大命令を勉強してみた
はじめに
こんにちは。SHIFT QAエンジニアの佐久間です。
皆様は「SQL」をご存じでしょうか。
恥ずかしながらIT未経験で入社した私は英語3文字の並びはすべて同じように見えていました。
しかし実際にプロジェクトに参画し働いていく中でSQLがわかるようになったら便利だと思い勉強しました。
このブログを読むとDMLの基礎がわかる人になれます!(DMLはこれからのお楽しみ)
SQLとは
SQLとはデータベースと会話するための言語です。
とはいっても初心者の私からすると頭の中に?が浮かんでいる状態でした。
そこで図書館をイメージしてみてください。
図書館には複数の本があります。
図書館に複数の本があるように、データベースは情報の集合体です。
データベース = 図書館、情報 = 本なのです。
データーベースには現在いくつか種類がありますが、今回は一般的なデータベースであるリレーショナルデータベース(RDB)を対象としています。
複数の情報が集まったデータベースには門番がいます。(これはデータベース管理システムと結びついていくのですが、また別の機会に・・・)
その門番と話すときに使う言語の種類がSQLです。
門番は日本語でも英語でもなく「SQL」語を使用しているというイメージです。
その門番にSQLを用いて話しかけると欲しいデータを取ってきてくれたり、不要となったデータを削除してくれたりします。
データベースに落とし込んで再度復習しておきましょう。
データベースの中には情報の入った「テーブル(表)」が存在していて、このテーブルを対象にデータベースを操作する言語がSQLです。
(テーブルは先ほどの例で言うと本棚ですね)
SQLの4大命令
SQLには4大命令と呼ばれる主要な4つの文章が存在します。
(ちょこっとプラス知識:SQLで書かれた命令文は「クエリ」と言います)
データの検索ができるSELECT文
データの更新ができるUPDATE文
データの追加ができるINSERT文
データの削除ができるDELETE文
1~4の4大命令は「DML」(=データ操作言語)の仲間です。(DMLの正体はデータ操作言語だったのですね!)
この4つの文について学校の名簿をイメージしながら詳しく見ていきましょう。
何年何組の名簿か:テーブル名、出席番号/氏名/係:列名です。
SELECT文 -データの検索-
SELECTから始まる文ではデータの検索ができます。
SELECT文の基本形は SELECT A FROM B です。
Aには「列名」、Bは「テーブル名」が入ります。
SELECT 氏名 FROM 1年1組 ⇒ 「1年1組のテーブル(名簿)から氏名を取り出してほしい」という文です。
ほしい情報の列名をAに、情報を取ってくるテーブル名をBに入れるだけで該当の情報を取り出してくれました!
「いきもの係の人の氏名だけ取り出せないかな・・・?」というときもあるかと思います。
そんなときに使えるのが WHERE です。
入れる場所は一番最後で SELECT A FROM B WHERE C となります。
Cには条件を示す文が入ります。今回の場合だと 係 = 'いきもの' です。
ここで注意しておきたいことが2つあります。
①データベースの門番が悩んでしまうので条件文は答えがYES or NO のどちらかになるものを設定してください。
②SQLのルールとして文字列は'(シングルクォーテーション)でくくってください。
では SELECT 氏名 FROM 1年1組 WHERE 係 = 'いきもの' を送ってみます。
すると、いきもの係の人のみの氏名が返ってきました!
UPDATE文 -データの更新-
UPDATEから始まる文ではデータの更新ができます。
UPDATE文の基本形は UPDATE A SET B =C です。
Aには「テーブル名」、Bは「列名」、Cは「更新したいデータ内容」が入ります。
1年1組のしふと二郎さんの係がいきもの係から給食係になった場合のUPDATE文を考えてみましょう。
UPDATE 1年1組 SET 係 = 給食
これで実行すると1年1組の名簿はこうなります。
WHEREを使用して対象を絞らなかったため、Bで入力した列(=係)のすべてのデータがC(=給食)に置き換わってしまいました。
そこでWHEREを用いて対象を絞ったUPDATE文を実行しましょう。
UPDATE 1年1組 SET 係 = 給食 WHERE 出席番号 = 2 (2は文字列ではないのでシングルクォーテーションが不要!)
WHEREを使用して対象を指定することでしふと二郎さんの係のみ更新することに成功しました!
INSERT文 -データの追加-
そろそろSQLに慣れてきたころでしょうか。 INSERT文ではデータの追加ができます。
INSERT文の基本形は INSERT INTO A ( B ) VALUES ( C ) です。
Aには「テーブル名」、Bは「列名」、Cは「新しいデータ内容」が入ります。
INSERT文はテーブルに新しいデータを追加する文のため、対象を指定するために使用する「WHERE」は一度おやすみです。
1年1組に転校生のしふと奈子さんを追加しましょう。係は給食係になりました。
INSERT INTO 1年1組 ( 出席番号 , 氏名 , 係 ) VALUES ( 6 , 'しふと 奈子' , '給食' )
この文を実行すると出席番号6のしふと奈子さんが追加されました!
DELETE文 -データの削除-
最後にデータの削除ができるDELETE文をご紹介します。
DELETET文の基本形は DELETE FROM A WHERE B です。
SELECT文のときと同様に「WHERE」で対象を絞らないとテーブル内の全データを削除してしまうため、
「WHERE」もセットで覚えておくと安心です!
Aには「テーブル名」、Bは「削除したいレコードを指定する条件文」が入ります。
1年1組の名簿からしふと三郎さんのレコードを削除してみましょう。
DELETE FROM 1年1組 WHERE 出席番号 = 3
この文を実行すると出席番号3のしふと三郎さんが削除されました。
おわりに
IT未経験の方からすると「SQL」と聞くだけで難しそう・・・と思うかもしれません。
しかしSQLの世界を覗いてみると、学生時代に習った英語の文法のような世界だな~と私は感じました。
基本文を覚えて、ほしい情報がもらえるようピースを当てはめていく。
こう考えると使えそうな気がしてきませんか?
しかもSQLの基本文はこの4つがメイン!4つ使えるだけでデータベースと会話を始められます!
ぜひ皆さんもSQLを一緒に学びましょう!
お問合せはお気軽に
SHIFTについて(コーポレートサイト)
https://www.shiftinc.jp/
SHIFTのサービスについて(サービスサイト)
https://service.shiftinc.jp/
SHIFTの導入事例
https://service.shiftinc.jp/case/
お役立ち資料はこちら
https://service.shiftinc.jp/resources/
SHIFTの採用情報はこちら
PHOTO:UnsplashのSergi Kabrera