エンジニアライフスタイルブログを運営しているミウラ(@miumiu06171)です。
普段はフリーランスでシステムエンジニアをしております。
今回は、初心者向けにアプリケーションには欠かせないデータベース、およびデータベースの操作を行うSQLの基礎知識を図解でわかりやすく解説していきます。
データベース基礎
まずは、データベースの基礎を解説します。
データベース(DB)とは
データベースとは、エクセルの表のように検索が簡単にできるように整理された情報の集まりのことです。
たとえば、学校で生徒情報を管理するときを考えると、下図のような生徒名簿、委員一覧といった整理された情報の集まりがデータベースになります。
そして、整理された生徒名簿や委員一覧の表をそれぞれ「テーブル」と呼びます。
データベースが必要な理由
データベースが何かわかったところで、必要な理由についても触れておきたいと思います。
データベースが必要な理由としては、以下のようなことがあげられます。
- 大量のデータから必要なデータを取り出すため
- 多人数でデータを共有して利用するため
- データ保護
上記のような理由があるため、データを扱う手段としてほぼすべてのシステムで何かしらのデータベースを使用しています。
システムの例としては、以下がわかりやすいかと思います。
- SNS(Twitter, Instagram, Facebookなど)
- ECサイト(Amazon, 楽天など)
- スマホ(アドレス帳など)
SNSでは、各ユーザがいつでもどこでもツイートできたり、インスタ投稿できたりするので、大量のデータを扱いますよね。
そして、ツイートやインスタ投稿した内容は、フォロワーの方に簡単に共有することが可能です。
また、ECサイトのログインアカウントやスマホのアドレス帳は、他人に漏洩されたくない情報で、パスワード等でデータ保護が必要となりますね。
このようにデータベースはほぼすべてのシステムで使われます。
データベースマネージメントシステム(DBMS)とは
次は、データベースマネージメントシステム(DBMS)について解説します。
DBMSとは、下図のように複数のデータベースを管理するコンピュータシステムのことを言います。
SQL基礎
DBやDBMSが理解できたところで、SQLの基礎を解説していきます。
SQLとは
SQLとは、データベース、テーブル、行、列を扱うための言語です。
たとえば、生徒名簿テーブルから出席番号001番の生徒の情報を抜き出すためには、以下のようなSQL文を記述します。
【SQL文】
1 |
select * from 生徒名簿 where 出席番号 = '001'; |
【生徒名簿テーブル】
【出力結果】
SQLの記述ルール
SQLには、以下の記述ルールがあります。
- SQLは半角で書き、全角では書きません
- 大文字・小文字は区別されない
- 文字と日付はシングルウォーテーションで囲う
- 単語は半角スペースまたは改行で区切る
SQL用語
ここでは、データベースに関する用語を解説していきます。
データベース(database)
データベースとは、エクセルの表のように検索が簡単にできるように整理された情報の集まりのことです。
テーブル(table)
テーブルは、簡単に言うとエクセルの表のような形式でデータです。
データベースは、複数のテーブルを持つことができます。
フィールド(field)、カラム(column)
テーブルには列があり、列のことを「フィールド」と言ったり、英語で「Column(カラム)」と言ったりします。
レコード(record)、ロウ(row)
テーブルには行があり、行のことを「レコード」と言ったり、英語で「Row(ロウ)」と言ったりします。
クエリ(query)
クエリ(query、問い合わせ)とは、データの検索や更新、削除、抽出などの要求をデータベースに送信することを言います。
データ型の種類
次は、データ型の種類について解説します。
データベースでテーブルを作成するときに、それぞれのフィールド(列)に指定した形式のデータしか入力できないように設定します。
このときに指定するデータの形式を「データ型」と言います。
この「データ型」には、「数値型」、「文字列型」、「日付・時刻型」の3種類があり、それぞれ紹介していきます。
数値型
数値型としては、以下のものがあります。
数値型 | 型説明 |
---|---|
int型 | 整数を扱う型です |
tinyint型 | 整数よりも小さな「-128~127」の範囲を示す型です |
float型 | (単精度)浮動小数点を扱う型です |
double型 | (倍精度)浮動小数点を扱う型です |
tinyint(1) | 真偽値trueを扱う型です |
tinyint(0) | 真偽値falseを扱う型です |
null | データが存在ことを示す特別な型です |
【例】
文字列型
文字列型としては、以下のものがあります。
文字列型 | 型説明 |
---|---|
char型 | 255文字の固定長の文字列を扱う型です |
varchar型 | 255文字までの可変長の文字列を扱う型です |
text | 65535文字までの長い文字列を扱う型です |
【例】
日付型・時刻型
日付・時刻型には、以下のものがあります。
日付・時刻型 | 型説明 |
---|---|
date型 | ‘2020-01-01’などの日付を扱う型です |
datetime型 | ‘2020-01-01 23:59:59’のように日付と時刻を扱う型です |
time型 | ’23:59:59’のように時刻を扱う型です |
【例】
SQL機能分類
SQL機能は、大きくデータ定義系(DDL)、データ操作系(DML)、トランザクション制御系(TCL)、データ制御(DCL)の4つに分類されます。
この4つについて解説していきます。
データ定義(DDL:Data Definition Language)
DDLは、CREATE/DROP/ALTERなどデータベースの生成、削除、変更を行うコマンドが該当します。
データ操作(DML:Data Manipulation Language)
DMLは、SELECT/INSERT/UPDATE/DELETEなどデータベースのテーブルに対するデータの取り出し、格納、更新、削除を行うコマンドが該当します。
トランザクション制御(TCL:Transaction Control Language)
TCLは、BEGIN、COMMIT、ROLLBACKなどトランザクションの制御を行うコマンドが該当します。
データ制御(DCL:Data Control Language)
DCLは、GRANT/REVOKEなどDMLやDDLの利用について許可/禁止を設定するコマンドが該当します。
まとめ
いかがでしたでしょうか。
データベース、およびSQLとは何か基礎知識を解説してきました。
データベースを使ったアプリケーション開発を行う初心者の方にお役立て頂ければ幸いです。
なお、本記事内で基礎知識を学び終えたら、こちらの記事でMySQL環境を構築し、SQL文を実際にかいてみると実務スキルが身につきますのであわせてご覧ください。