データベースの作成
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カラムは連番で自動入力