MySQL DDL文でtable,view等を作成するサンプル

MySQLのtable,view等を作成するDDL文のサンプルです。
DDLとは、Data Definition Languageの略でデータを定義する言語です。

データーベース データベースの一覧 / データベースを作成 / データベースを削除
テーブル テーブルの一覧 / テーブルを作成 / テーブルを削除
  alter table テーブルの列の属性を変更 / テーブルに列を追加 / テーブルの列を削除
  テーブルの列名を変更 / テーブルの列をNOT NULLにする
  テーブルの列をNULL可にする / テーブル名を変更
ビュー ビューを作成 / ビューを変更 / ビューを削除
シーケンス シーケンスを作成 / シーケンスの採番 / シーケンスを削除

※シノニムはありません。

データベースの一覧

SHOW databases;

データベースの一覧を表示します。

データベースを作成

create database testdb;

testphpというデータベースを作成しています。

データベースを削除

drop database testdb;

drop databaseEの後にデータベース名を指定します。

テーブル

テーブル関連のサンプルです。

テーブルの一覧

show tables FROM testdb;

testdbというデータベースにあるテーブルの一覧を表示します。

テーブルを作成

CREATE TABLE syain(
	id INT,
	name VARCHAR(20) not null,
	romaji VARCHAR(20),
	primary key(id)
);

2行目は、整数型のINT型を指定しています。
3行目は、not null制約をつけています。
5行目は、プライマリーキーを指定しています。2行目のidを指しています。

テーブルを削除

drop table syain;

drop tableを使用します。

テーブルの列の属性を変更

ALTER TABLE syain MODIFY
	id VARCHAR(20)
;

syainテーブルの項目idをvarchar型に変更しています。

テーブルに列を追加

ALTER TABLE syain ADD
	mail VARCHAR(30)
;

テーブルの最後尾に項目mailが追加されます。

テーブルの列を削除

ALTER TABLE syain DROP
	mail
;

テーブルの項目mailを削除しています。桁数の指定は不要です。

テーブルの列名を変更

ALTER TABLE syain 
CHANGE COLUMN name Namae VARCHAR(20);

テーブルの項目名のnameをNamaeに変更しています。
最後に項目名変更後のデータ型を記述する必要があります。

テーブルの列をNOT NULLにする

テーブルの項目名のnameをNOT NULLに変更しています。

ALTER TABLE syain MODIFY
	name VARCHAR(20) NOT NULL
;

テーブルの項目名のnameをNOT NULLに変更しています。
データ型を記述する必要があります。

テーブルの列をNULL可にする

ALTER TABLE syain MODIFY
	name VARCHAR(20) NULL
;

テーブルの項目名のnameをNULLに変更しています。
データ型を記述する必要があります。

テーブル名を変更

ALTER TABLE syain 
RENAME TO syain2;

テーブル名のsyainをsyain2に変更しています。

ビュー

ビューは、sqlで仮想の表を作成します。

ビューを作成

CREATE VIEW v_syain AS
	select
		id,
		name
	from
		syain;

2~6行目は、select文でsyainテーブルからビューを作成しています。
select文なので複数のテーブルを結合したsqlも作成できます。

ビューを変更

CREATE OR REPLACE VIEW v_syain AS
	select
		id,
		name,
		romaji
	from
		syain;

1行目は、OR REPLACEを追加しています。
5行目は、viewに項目romajiを追加しています。

ビューを削除

DROP VIEW v_syain;

drop viewを使用します。項目の指定は不要です。

シーケンス

シーケンスは、順序とも呼ばれます。指定した値の増分を取得できます。

シーケンスを作成

CREATE SEQUENCE syain_id
	START WITH 1
	INCREMENT BY 1;

2行目は、最初は1から始まると指定しています。
3行目は、増分です。1ずつ増えます。

シーケンスの採番

select nextval(syain_id) --1

select nextval(syain_id) --2

1行目は、nextvalで次の値を取得します。再度、nextvalを使用すると設定した増分で2になります。

シーケンスを削除

DROP SEQUENCE syain_id;

DROP SEQUENCEを使用します。

関連の記事

MySQL コマンドの一覧

△上に戻る