もしエンジニアに転職したら必ず使うので、しっかり理解する必要があります。
それでは、DBについて解説していきます。
目次
DB(Database)とは
データベースとは、データを扱いやすい形で入れておく箱のことです。
DBMS(DatabaseManagementSystem)とは
DBMSとは、DBを管理するシステムのことです。
DBMSを使わなくてもDBを管理することはできますが、様々な便利な機能があるため頻繁に使用されます。
DBを管理するシステムを自分で作ることもできますが、不具合が発生する可能性が高くなります。
例えば、アクセスカウンターの機能で、同時にアクセスされたとき、片方の値に反映されないことがあるなどです。(アクセス数が10の人が2人いる状態)
DBMSの種類
DBMSには、RDBMSとNoSQLの2つの種類があります。
RDBMSは、SQLと言う操作システムを使用した表示形式のDBのことです。
RDBMSのDBは、MySQL、Amazon Aurora、SQLite、Oracle Databaseなどがあります。
NoSQLは、その名の通りSQLを使用しないDBのことです。
NoSQLのDBは、redis、mongoDBなどがあります。
MySQLとは
MySQLとは、オープンソースのRDBMSで世界でもっとも使われているDBです。
オープンソースとは、設計図(コード)が公開され、自由に使えるという意味です。
起動までの簡単な流れを説明します。
https://dev.mysql.com/ からダウンロード、インストールができます。
次にローカルサーバー(Vagrantなど)を起動し、mysqlサーバーが起動しているか確認します。
command
sudo service mysql status
そして、mysqlサーバーに接続します。
command
mysql -u root
ターミナルの入力の左側が[~~~~]$ から mysql> に変われば、接続完了です。
MySQL内でユーザー情報、バージョンの確認をする操作は以下の通りです。
command
ユーザー情報の確認方法
select user();
バージョンの確認
select version();
mysqlのクエリ(命令・操作)は;で閉じるルールなので、;を忘れないように注意が必要です。
データベースの全体像を分かりやすくするGUIツールがあるが、想定外の負荷がかかる可能性があるため、実務では推奨していません。
GUIツールとはCyberduck(ドットインストールローカル開発環境の構築#8)のようなものです。
mysqlの基本操作
データベースの作成
command
create database テーブルの名前;
データベースの削除
command
drop databace テーブルの名前;
操作対象のデータベースの確認
command
select databace();
操作対象のデータベースの更新
command
use データベース名;
テーブルについて
DBの中には、データを整理するためにテーブルという表が入っています。
縦(列)をフィールド/カラム、横(行)をレコードと言います。
↓ フィールド(カラム/列)↓ | |||
→ レコード(行) → |
ID | name | age |
1 | トム | 25 | |
2 | ジュディ | 24 | |
3 | ケン | 18 |
レコードの操作
レコードとは、テーブルに入っているデータのことです。
このレコードの操作コマンドをいくつか紹介します。
データの追加
command
insert into テーブル名(フィールド名) values(入れる値);
名前を「太郎」、パスワードを「11111」に設定
データの取得
command
select 取ってくるフォーム名 from テーブル名 where 条件;
1行目が20歳以上のname、2行目が20歳以上のデータを全て取得(*は全てのデータを対象にする)
データの更新
command
update テーブル名 set 値 where 変更するレコードの条件;
太郎のageを「25」に変更
データの削除
command
delete from テーブル名 where 削除するレコードの条件;
太郎のデータを「削除」
データ型とは
データ型とは、コンピュータが何のデータか判断するための規約のことです。
データ型を指定する目的は、想定外の値が入るのを防ぎ、記録するデータ量を決めることで無駄なデータを減らすためです。
データ型について、いくつかの種類を紹介します。
number(数値)
- int・・・整数(小数点以下は入りません)
- float・・・浮動小数点数(小数点第7位まで)
- double・・・floatより制度が高いもの(小数点第15位まで)
string(文字列)
- char()・・・固定のデータ(商品コードなど)で使用、4桁なら()に4と入力
- varchar()・・・可変のデータ(メールアドレスなど)で255バイトまで格納、文字数を制限する時にも使用
- text・・・どのくらいの長さになるかわからないときに使用
date/time(時間・日付)
- date・・・日付
- time・・・時間
- datetime ・・・日時(例:'2017-07-22 17:22:33')
true/false(真偽値)
- true・・・数字の1で管理
- false・・・数字の0で管理
※0とnillがfalse、空文字を含むそれ以外の値をtrueとなります。
データの重複
データを追加していくと重複する部分が出てきます。
重複してしまうと無駄なデータが記録され、運用上の管理が難しくなる。
そこで考えられたのが、カテゴリー毎にテーブルを切って、共通のカラムでテーブル同士をつなげる方法です。
この一意のカラムのことをPrimary key(id)と言います。
ドットインストールにPrimary keyの解説をしている動画があるので、こちらもご覧ください。
最後に
開発で必ず使う技術のため、実際に操作しながら覚えていきましょう。
実際に私もプログラミングスクールに通ってエンジニアになりました。
興味がある方は、こちらの記事をご覧ください。