動画でプログラミング入門をしようはじめにSQL(読み:エスキューエル)という言葉を聞いたことがあるでしょうか。聞いたことはあるが何か知らない、または何となくデータベースを操作するための言語だとは知っているけれど、いまいち理解できていない...この記事では、そんな方々へ向けてSQLとは何なのか?どういった使い方をするのか?を詳しく説明します。SQLはエンジニアの必須知識ですので、ぜひこの記事を読んでしっかりと理解を深め、他の人にも教えてあげられるようになることを目指してください。SQLとは?SQLは1970年代にIBM社によって開発されたSEQUEL(読み:シークェル)という言語を原型とするデータベース操作言語です。読み方は「エスキューエル」が一般的ですが、上記の理由から「シークェル」と読まれることもあります。そもそもデータベースとは?ここで、データベースというのは、検索や貯蓄が簡単に高速にできるように整理されたデータの集まりのことです。紙の名刺帳を想像してください。面倒くさがりの人は特にルールを決めずにもらった名刺を適当にファイリングするでしょう。かたや、まめな人ならば五十音順にインデックスをつけてファイリングしていき、後から名前で探したり新たに追加したりするのが簡単にできるようにしていますね。広義ではこの後者の名刺帳もデータベースと呼べます。データベースと聞いてピンとこない方はこれをイメージしながら考えていくと概念を掴みやすいです。プログラミングの世界でのデータベースは紙ではなく電子的な情報の集まりを指します。「名刺帳」という名の電子的なデータベースを作った時、新たにもらった名刺データを追加したり、登録済みの名刺データを検索したりするには、データベースに対して追加・検索等の操作が必要ですね。この操作をするための言語がSQLなのです。SQLはリレーショナルデータベースという種別のデータベースを管理するシステム(RDBMS)でのみ使用されます。参考:RDBMSとNoSQLの違いここでまた聞き慣れない言葉(RDBMS)が出てきました。データベース管理システムは大まかに2種類:RDBMSとNoSQLに分けられ、SQLは前者のRDBMSでのみ使用されます。ここからはRDBMSとNoSQLの違いについて簡単に説明しますので、とりあえずSQLについて先に知りたい方はこの項を読み飛ばしていただいても問題ありません。System)は、リレーショナルデータベースを管理するためのシステムのことです。リレーショナルデータベースとは、関連性を持った複雑なデータ群を指します。そこに載っていない情報、例えば「この会社って資本金はいくらくらいなのかな?」と疑問が沸いたとしましょう。データが揃っていれば、名刺に書いてある「会社名」をもとに辿って資本金を確認することができますね。このように、複数のデータ群が関連性を持った形で整理されていて膨大で複雑なデータを管理できるようになっているのがリレーショナルデータベースです。データが複雑である分、操作も複雑になるためSQLを用いて行う必要があります。他方のNoSQL(読み:ノーエスキューエル)は、SQLを用いずにデータベースを管理するシステムの総称です。NoSQLはRDBMSと比較しデータ構造が単純なため、操作に特別な言語が必要ありません。先ほどの名刺帳の例のように、取引先の個々の担当者情報や企業情報等を網羅的に管理しようとすればRDBMSを使わざるを得ませんが、そうではなく取引先1社につき1人の営業担当がいて、それが誰であるかのみ管理できればいいとしましょう。この場合は名刺帳や企業情報ではなく、「取引先会社名-営業担当者氏名」という情報が1対1で紐づくデータ群さえあればいいことになります。このように単純な構造を持つのがNoSQLであり、繰り返しになりますがSQLでの操作が必要ないのがRDBMSとの大きな違いです。SQLの基本的な使い方ここからは具体的にSQLがどう使われるのか見ていきましょう。データベース用語まずは覚えるべき用語を確認しておきましょう。リレーショナルデータベースでは、データは表計算ソフト(Excel等)のように表の構造をしています。名刺帳の例なら下記の通りです。info@ZZZ.co.jpこのそれぞれの項目について、データベースの世界では下記の用語で呼びます。テーブル:表そのものを指す。レコード:各行のこと。この例では名刺1枚のが情報が1レコードで表される。列ごとにデータの形式が定義される。(メールアドレスは@を含む英数字の文字列、等)フィールド:レコードの中の1項目のこと。...)SQLの文法種別SQLの文法は大きく下記の三種類があります。※トランザクション:データベースの整合性を保つために、ばらばらに実行すべきでない複数の処理をまとめて一括処理すること以下、順番に具体例を見ていきましょう。データ定義言語データ本体であるテーブルや、データベースを利用するユーザ等のデータを定義するための文です。CREATE(作成)やDROP(削除)、ALTER(定義変更)等があります。下記はテーブルを新規作成する例です。varchar(50)}データ操作言語テーブルに対するデータ操作を行うための文です。テーブルにデータを挿入するINSERT、更新するUPDATE、削除するDELETE、検索するSELECT等があります。下記はテーブルから条件に合うレコードを検索する例です。'Yamada';データ制御言語データベース全体に関わる処理を制御するための文です。ユーザーに特定の作業権限を与えるGRANT、権限を剥奪するREVOKE、トランザクションを開始するBEGIN、トランザクションを確定するCOMMIT等があります。下記はTABLE1というテーブルに対しINSERTとSELECTを実行する権限をUSER1に与える例です。user1;まとめSQLについて、データベースの定義や用語を含めた解説および具体的な使用例の説明を行いました。あいまいだった部分の理解が少しでも明確になれば幸いです。理解を深めたい方は、下記の講座も参考にしてみてください。・About・プライバシーポリシ。