病院や役場、たくさんのデータを預かってる機関はどのように管理してるんだろう?
DB(データベース)を使ってるんです!

DBとは?

DBとは?

大量の情報をデータとして保存し、パソコンを使ってアクセスや管理することのできる集まりをデータベース

データベースに名前、住所、電話番号、家族構成などを登録、保存し、いつでも簡単に欲しいデータを取り出せることができます。これらは管理者しか閲覧することができないので、誰でも見れることはできません。

DBMS

データベースマネジメントシステム(Database management System)・・・DBを管理するコンピューターシステム

身近なもので言えば、Excelとかがそうですね!

代表的なものは...

  • Oracle Database
  • SQL Server
  • PostgreSQL
  • MySQL

などが、あります。

DBの仕組み

イメージ図

クライアント(パソコン)からSQLというオリジナルの文の※要求を打ち込んで、サーバに送ります

※ここでの要求とは、「このデータが欲しい」「このデータを書き換えて欲しい」とかになります

サーバに送られたSQL文をDBで読み取り、上書き、管理してサーバに送り返します

SQLで送った要求をデータとして、帰ってくる仕組みです

テーブル

簡単に言えば、DB=フォルダ、テーブル=ファイルと、いう感覚です

DBの中にテーブルと呼ばれる表を複数管理する

赤枠・・・列(カラム)

青枠・・・行(レコード)

黄枠・・・セル

1つのセルの中には、1つのデータしか入れれません

SQL

SQL

Structured Query Language…データベースを操作するための言語、文です

<span class="has-inline-color has-black-color">もっと詳しく</span>
  • いくつかのキーワードと、テーブル名などを組み合わせた文
  • 文の最後はセミコロン(;)で終わる
  • 大文字・小文字のルールは特にない
  • 文字列はシングクォーテーション('')で囲む・数値だけの場合は囲まない
  • 単語の間は半角スペースを開ける

実践

実際に見た方が早いですね!(*'▽'*)

ここでは、DB,SQL,MySQLをまとめて操作できるツールを使用します

MacではMAMP、WinではXAMPPという、便利なツールがあります

※筆者はMacユーザーなのでMAMP使用

こちらの記事をどうぞ

テーブル作成

MAMPからwebsiteに飛んでphpMyAdminのリンクを開くと左図の画面になります

languageを日本語に設定

サーバはMySQLになっていますね

流れを把握するために簡単に説明します!

データベースのタブをクリックするとこの画面に切り替わります

DBの作成です 名前は任意で決め、「utf8_general_ci」(日本語設定みたいなもの( ̄Д ̄)ノ)→作成ボタン

先ほど作成したDBができたので、次はテーブル名とカラム数を入力します

ここの名前も好きなように決め、カラム数もとりあえずの数値を入力します→実行

この画面に切り替わります

例えば、名前にID、データ型にINTと名前にname、データ型にTEXTと入力します

INT・・・整数のみの代入

TEXT・・・文字を自由に代入

主なデータ型

  • INTEGER…(インテージャー)整数(数値)のみ代入 少数は入れれません
  • CHAR…(キャラ)文字型 CHAR(30)などとすると30の文字列まで入力することができます
  • VARCHRA…(バーキャラ)可変長文字列型
固定長文字列

CHARは固定長文字列です

例えばCHAR(5)と指定し、文字をaaのに文字代入したとします

後の3文字は半角スペースができた状態で保管されます

可変長文字列

VARCHRA(5)として、aaと代入します

残りの3文字のスペース分はカウントされずに2文字として保管してくれます

このようにテーブルが作成されました

データの追加

挿入のタブをクリック

この画面に切り替わるので、それぞれIDとnameに適当に入力→実行をすると...

IDに番号が振られnameに名前が振り分けられています

SQLでテーブル作成

SQLのタブをクリック

CREATE TABLE テーブル名 (ID INT, name TEXT);

この命令文で作成します ()の中は任意です

DB作成

CREATE DATABASE テーブル名;

SQLのタブをクリック

SELECT * FROM テーブル名;

と、打ってみると...

この画面に切り替わります

SELECT * FROM テーブル名

  • SELECT…選択、持ってくる
  • *…全て
  • FROM…どこから

任意のテーブルから全て持ってくる

と、いうSQLの命令文になっています

表示のタブをクリックしても同じように処理され、SQL文も同じに表示されます

データの追加

INSERT構文

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

このようなテーブルがあったとします

  • INSERT INTO…データ挿入
INSERT INTO テーブル名 SET ID=1,name=aaa,price=100;
INSERT INTO テーブル名 SET ID=2,name=bbb,price=200;

などと、打ってデータを入れます

データの変更

UPDATE構文

UPDATE テーブル名 SET 列名1=値1、列名2=値2 (WHERE ...);

UPDATE テーブル名 SET price=150;

と、打つとpriceが全部変わります

選んだものだけ変えたい時

UPDATE テーブル名 SET price=200 WHERE id=2;

『WHERE id=2』と、指定してあげることによって選択したものだけを変更することができます

その他のSQL

テーブルの削除

DROP TABLE テーブル名;
DELETE FROM テーブル名;

列の追加

ALTER TABLE <テーブル名> ADD COLUMN <列の定義>  

例
ALTER TABLE test ADD COLUMN id INT; 

列の削除

ALTER TABLE <テーブル名> DROP COLUMN <列名>  

まとめ

主なSQLをいくつか紹介しましたが、どれも正解であって、どれも不正解の文なのです

どういうことかというと、最初に説明したDBMSによって多少SQLの書き方が変わっています

勉強する教材によって使用するDBMSも変わるので、SQLも多少違いがあります

日本でも各地に方言があるように、書き方も違っています

なるべく『標準SQL』と呼ばれるSQL文を覚えていって方がどこにでも応用できていいと思います

おすすめの記事