4. データベースの作成

データベースの作成

CREATE DATABASE

データベースの作成はCREATE DATABASEを利用します。

CREATE DATABASE データベース名;

sampleデータベースの作成

「sample」データベースを作成します。

SQL
create database sample;

「Query OK」が表示されれば成功です。

Query OK, 1 row affected (0.01 sec)

データベース一覧の確認

データベース一覧を表示して「sample」データベースが作成されたか確認しましょう。

SQL
> show databases;
+--------------------+
| Database           |
+--------------------+
| default            |
| information_schema |
| mysql              |
| performance_schema |
| sample             |
| sys                |
+--------------------+

データベースの削除

DROP DATABASE

データベースの削除はDROP DATABASEを利用します。

DROP DATABASE データベース名;

sampleデータベースの削除

「sample」データベースを削除します。

SQL
drop database sample;

データベース一覧の確認

データベースの一覧を表示して削除されているか確認しましょう。

SQL
> show databases;
+--------------------+
| Database           |
+--------------------+
| default            |
| information_schema |
| mysql              |
| performance_schema |
| sys                |
+--------------------+
  • DROP DATABASEは、データをすべて削除してしまうので、大事なデータを消さないよう厳重に注意しましょう。

データベースの選択

USE

作成したデータベースを操作するには、データベースを選択する必要があります。

USE データベース;

データベースの作成

「sample」データベースを作成していない場合は作成します。

SQL
create database sample;

データベースの選択

「sample」データベースを選択します。

SQL
use sample;

データベースが選択されると「Database changed」が表示されます。

結果
Database changed

使用中のデータベースを確認する

DATABASE()

現在使用中のデータベースを、SELECT DATABASE() で確認します。

SELECT DATABASE();

「sample」データベースが選択されているか確認しましょう。

SQL
select database();
結果
+------------+
| database() |
+------------+
| sample      |
+------------+

テーブル一覧を表示

SHOW TABLES

SHOW TABLESでテーブル一覧を表示します。

SHOW TABLES;
SQL
show tables;

「sample」にはテーブルがないので、Empty(空)となります。

結果
Empty set (0.00 sec)

テーブルの作成

CREATE TABLE

データベースにテーブルを作成するには、CREATE TABLEを利用します。テーブル作成時は、カラム追加が必須なので少々複雑なSQLになります。

CREATE TABLE テーブル名 (
    カラム1 データ型 オプション,
    カラム2 データ型 オプション,
    カラム3 データ型 オプション
);

テーブル定義

users テーブル

「sample」データベースに、「users」テーブルを作成します。下の表に基づいてSQLを作成することをテーブル定義(DDL) といいます。

カラム名 データ型 長さ NOT NULL オプション
id bigint yes UNSIGNED, AUTO_INCREMENT
name varchar 255 yes

CREATE TABLE を実行

CREATE TABLEでテーブル名とカラムを設定してテーブル作成します。

usersテーブルのDDL
CREATE TABLE users (
    id bigint UNSIGNED AUTO_INCREMENT PRIMARY KEY,
    name varchar(255)
);

「Query OK」が表示されたら成功です。

コピー&ペーストした場合

  • 入力やコピーミスしたときは ; で確定して、もう一度実行してください。

ターミナルにコピーした場合は、以下のように > で改行した入力になります。

ターミナルにコピー&ペーストした例
usersテーブルのDDL
> CREATE TABLE users (
    -> id bigint UNSIGNED AUTO_INCREMENT PRIMARY KEY,
    -> name varchar(255)
    -> );
Query OK, 0 rows affected (0.01 sec)

PRIMARY KEY

PRIMARY KEY(プライマリーキー)は、「主キー」とも呼ばれ、レコードをユニークに識別するためのオプションです。PRIMARY KEYは、1つのカラムまたは複数カラムの組み合わせでレコードがユニークになるように設定します。

テーブルの確認

テーブル一覧を表示して「users」テーブルが作成されたか確認してみましょう。

SQL
show tables;
結果
+-------------------+
| Tables_in_sample   |
+-------------------+
| users             |
+-------------------+

テーブルカラムの確認

SHOW COLUMNS

「SHOW COLUMNS」でテーブルのカラム情報を確認します。

SHOW COLUMNS FROM テーブル名;

「users」テーブルの確認

「users」テーブルの情報を確認してみましょう。

show columns from users;

結果

+-------+-----------------+------+-----+---------+----------------+
| Field | Type            | Null | Key | Default | Extra          |
+-------+-----------------+------+-----+---------+----------------+
| id    | bigint unsigned | NO   | PRI | NULL    | auto_increment |
| name  | varchar(255)    | YES  |     | NULL    |                |
+-------+-----------------+------+-----+---------+----------------+

テーブルの変更

カラムの追加

ALTER TABLE

テーブルの変更はALTER TABLEを利用します。カラムの追加はテーブル名のあとにADDで指定します。

ALTER TABLE テーブル名 ADD カラム名 オプション;

「email」カラムの追加

「users」テーブルに「email」カラムを追加してみましょう。

SQL
alter table users add email varchar(255) unique not null;

オプションの内容

SQLの各オプションは以下の通りです。

オプション 説明
VARCHAR(255) 255バイトの文字列型
UNIQUE データ重複を許容しない
NOT NULL NULL を許容しない

カラム情報の確認

SHOW COLUMNS

SHOW COLUMNSでテーブルのカラムを確認できます。

SHOW COLUMNS FROM テーブル名;

カラムの確認

「users」テーブルのカラムを確認してみましょう。

SQL
show columns from users;
結果
+-------+-----------------+------+-----+---------+----------------+
| Field | Type            | Null | Key | Default | Extra          |
+-------+-----------------+------+-----+---------+----------------+
| id    | bigint unsigned | NO   | PRI | NULL    | auto_increment |
| name  | varchar(255)    | YES  |     | NULL    |                |
| email | varchar(255)    | NO   | UNI | NULL    |                |
+-------+-----------------+------+-----+---------+----------------+

レコードの挿入

INSERT INTO

INSERT INTOはレコードを挿入するSQLです。

INSERT INTO テーブル名 (カラム1, カラム2, ...) VALUES ('データ1', 'データ2', ...);
  • INTO:テーブル名とカラム
  • VALUES:データ

usersテーブルにレコード挿入

「users」テーブルにレコードを挿入してみましょう。idカラムは自動連番入力なので必要はありません。

SQL
insert into users (name, email) values ('smith', '[email protected]');

レコードの選択

SELECT

SELECTは、テーブルのレコードを選択するSQLです。

SELECT カラム名 FROM テーブル名;

usersテーブルのレコード選択

「users」テーブルのレコードを選択してみましょう。カラム名を * にすると、すべてのカラムを選択(ワイルドカード)します。

SQL
select * from users;

INSERT INTOで挿入したレコードが選択されました。

結果
+----+-------+---------------+
| id | name  | email         |
+----+-------+---------------+
|  1 | smith | [email protected] |
+----+-------+---------------+
  • idカラムは連番で自動入力