MySQLでデータベース作成してみた【初心者向け】

MySQLでデータベース作成してみた【初心者向け】

CHOIJINHWAN

CHOIJINHWAN

こんにちは、テクノロジー部のチェです。

今回は初心者向けに、MySQLでのデータベースの作成や削除などの基本的な使い方やテーブルの作成、外部キー制約について説明していきます。

MySQLとは

MySQLはデータベース管理システムであり、Webアプリの制作に必要不可欠なものです。MySQLはデータを保管している箱みたいなものであり、SQLというデータベース言語を使用して操作することができます。

データベースはデータを保管している箱のようなものであり、「リレーショナル型データベース(MySQLはこれにあたる)」や「キーバリュー型データベース」、「ドキュメント型データベース」など、さまざまな種類があります。

MySQLのインストール方法

MySQLのインストールや起動方法については以下記事で詳しく解説しています。

MySQLの概念についても解説しているので、気になる方は読んでみてください。

MySQLでデータベース作成

データベースの作成

まず、テーブルを作る前にデータベースが必要になります。

下記のようにコマンドを打つことでデータベースを作成することができます。

$ CREATE DATABASE testdb;

 
testdbはデータベースの名前なので好きに変えてください。

コマンドを実行して、問題なく作成されたら、下記のように「Query OK, 1 row affected」と表示されます。

データベースの削除

データベースを削除したい場合は、下記のようにコマンドを入力してください。

$ DROP DATABASE testdb;

 
コマンドを実行して、問題なく削除されたら、さきほどと同じように表示されます。

データベースの一覧表示

次はデータベース一覧を表示して作成されたデータベースを確認してみましょう。

下記のようにコマンドを入力すると、データベース一覧が表示されます。

$ show databases;

 
コマンドを入力して、下記のように表示されたらOKです。

作成したデータベースを選択

一覧から使用したいデータベースを選択してみましょう

下記のようにuseコマンドを入力すると、データベースを自由に選択することができます。

$ use testdb;

 
下記のように表示されたらOKです。

使用中のデータベースの確認

現在使用しているデータベースを確認することもできます。

下記のようにコマンドを入力してみましょう。

$ select database();

 
コマンドを入力したら、下記のように使用中のデータベースを確認することができます。

テーブル作成

データベースを作成して選択することができたら、次はテーブルを作成してみましょう。

テーブルを作成する際にはCREATE TABLE文を使用します。

$CREATE TABLE user(
	id INT NOT NULL AUTO_INCREMENT,
	name VARCHAR(30),
	PRIMARY KEY(id)
);

 
上記のSQLやテーブルの中身について説明していきます。

CREATE TABLE user userという名前のテーブルを作成するという意味
id INT NOT NULL AUTO_INCREMENT
  • カラム名:id
  • データ型:INT
  • NOT NULL:NULLを指定することはできない(必ず値を指定しなければならない)
  • AUTO_INCREMENT:自動的に値がつく(例:1,2,3,順……)
name VARCHAR(30)
  • カラム名:name
  • データ型:VARCHAR
  • (30):30文字に制限するという意味。VARCHARでは必ず文字数を指定する必要がある
PRIMARY KEY(id)
  • PRIMARY KEY(id):カラムidを主キーに指定する
  • 基本的には一つのテーブルに必ず一つの主キーを指定する

テーブルが作成できたら、作成したテーブルを確認してみましょう。

テーブルの一覧表示

テーブルの一覧を表示したい場合は下記のコマンドを入力します。

$ show tables;

 
下記のように作成したテーブル一覧が表示されたらOKです。

テーブル内容の確認

続いて、下記のコマンドを使って、テーブルの内容を確認してみましょう。

$ desc user;

 
このように確認できます。

テーブルのデータ追加

下記のコマンドを入力することでデータを追加することができます。

INSERT INTO user VALUES(1,'jin');
INSERT INTO user データを追加するテーブルを指定
VALUES(1,’jin’) 追加するデータを指定

コマンドを入力したら、テーブルの中身を確認してみましょう。

SELECT * FROM user;

 

レコードの更新

以下のコマンドを入力することでレコードを更新することができます。

UPDATE user 
SET name='choi'
WHERE id=1;
UPDATE user 更新の対象となるテーブル名を指定
SET name=’choi’ 更新の対象となる列と、値を指定
WHERE id=1; 更新する対象となる条件を指定

外部キー制約(FOREIGN KEY)

続いて、外部キー制約について説明していきます。外部キー制約とは、親テーブルと子テーブル間のデータの整合性を保つための制約です。

まず、下記のように親テーブルを作成しましょう。

CREATE TABLE user_types(
	id INT NOT NULL AUTO_INCREMENT,
	job VARCHAR(30),
	value VARCHAR(20),
	PRIMARY KEY(id)
);

 
続いて、子テーブルを作成時に外部キー制約を設定していきます。

CREATE TABLE users(
	id INT NOT NULL AUTO_INCREMENT, 
	job_type_id INT, 
	name VARCHAR(50), 
	PRIMARY KEY(id), 
	FOREIGN KEY(job_type_id) REFERENCES user_types (id)
	ON DELETE RESTRICT 
	ON UPDATE RESTRICT
);

 

FOREIGN KEY(job_type_id) REFERENCES user_types (id)
	ON DELETE RESTRICT 
	ON UPDATE RESTRICT

 
この部分について解説していきます。

FOREIGN KEY(job_type_id) 制約をつけるカラムを指定
REFERENCES user_types (id) 参照するテーブルのカラムを指定
ON DELETE RESTRICT 参照先をdeleteするとエラーになる
ON UPDATE RESTRICT 参照先をupdateするとエラーになる

上記で作成した親テーブル、子テーブルをイメージすると、以下のような形になります。

usersテーブルには各ユーザーの職業を管理するためのjob_type_idカラムがあります。

上記のFOREIGN KEY(job_type_id) REFERENCES user_types (id)コマンドを入力することによって2つのテーブルは紐づいている状態になっています。そのため、user_typesテーブルに存在しないidカラムがuserテーブルのjob_type_idカラムに指定することはできません。

まとめ

今回はデータベースやテーブルの作成、表示、更新などについて学びました。

最初の段階として、テーブルの作成まで慣れてきたら、次は外部キー制約の理解と実装に挑戦してみると良いでしょう。

この記事のシェア数

Technology部のCoEチームに所属し、大手企業のシステム開発業務に従事。最近はPHPのLaravelに関心を寄せている。専門学校時代にHTML、CSS、Java、PHPなどのWebに関するスキルを習得し、卒業後にLIGに新卒入社。

このメンバーの記事をもっと読む
10年以上の開発実績があるLIGが、最適な開発体制や見積もりをご提案します
相談する サービス概要を見る