|
|
DDL(データベース・テーブルの作成・変更・削除)
|
データベースの作成・削除 |
|
1) |
データベースの作成 |
|
|
・最大長:64Byte。/, `\', `.' を除くディレクトリ名として許されるすべての文字でデータベース名を指定。
オラクルのような複雑な定義はありません。下記1行を実行するだけでデータベースが作成されます。
作成時間も一瞬です。
create database データベース名;
例)
create database twonessdb;
|
|
|
2) |
作成済データベースの確認 |
|
|
・データベース名:information_shema/mysql/testはインストール時に作成されたデータベースです。
|
|
3) |
データベースの削除 |
|
|
drop database データベース名;
例)
drop database twonessdb;
|
|
|
テーブルの作成・変更・削除 |
|
1) |
フィールドの型の種類 |
|
|
@数値
|
a) TINYINT [UNSIGNED] [ZEROFILL] 所要容量:1Byte
・整数。符号つきの範囲は -128〜127。符号なしの範囲は 0〜255。
b) SMALLINT [UNSIGNED] [ZEROFILL] 所要容量:2Byte
・整数。符号つきの範囲は -32768〜32767。符号なしの範囲は 0〜65535。
c) INT [UNSIGNED] [ZEROFILL] 所要容量:4Byte
・整数。符号ありの範囲は -2147483648〜2147483647。符号なしの範囲は 0〜4294967295。
d) INTEGER [UNSIGNED] [ZEROFILL] 所要容量:4Byte
・INTの同義語です。
e) BIGINT [UNSIGNED] [ZEROFILL] 所要容量:8Byte
・整数。符号ありの範囲は -9223372036854775808〜9223372036854775807。
符号なしの範囲は 0〜18446744073709551615。
f) FLOAT[(M,D)] [UNSIGNED] [ZEROFILL] 所要容量:4Byte
・浮動小数点。範囲は -3.402823466E+38〜-1.175494351E-38、 0、 1.175494351E-38。
g) DOUBLE[(M,D)] [UNSIGNED] [ZEROFILL] 所要容量:8Byte
・浮動小数点。範囲は -1.7976931348623157E+308〜-2.2250738585072014E-308 、
0、2.2250738585072014E-308〜1.7976931348623157E+308。
h) DECIMAL[(M,D)] [UNSIGNED] [ZEROFILL]
所要容量:D > 0 の場合 M+2, D = 0 の場合 M+1 bytes (M < D の場合 D+2)
・パック無し浮動小数点数。
i) NUMERIC [UNSIGNED] [ZEROFILL]
・DECIMAの同義語です。
|
|
|
|
A日付・時刻
|
a) DATE 所要容量:3Byte
・日付。サポートされる範囲は'1000-01-01'から'9999-12-31'まで。書式 は'YYYY-MM-DD'。
b) DATETIME 所要容量:8Byte
・日付と時刻の組み合わせ。
サポートされる範囲は'1000-01-01 00:00:00'〜 '9999-12-31 23:59:59'。
書式は'YYYY-MM-DD HH:MM:SS'
c) TIMESTAMP 所要容量:4Byte
・タイムスタンプ。範囲は'1970-01-01 00:00:00'〜2037年末まで。
この型で定義するとINSERT/UPDATE時にサーバーの日付が自動で設定されます。
d) YEAR[(2|4)] 所要容量:1Byte
・年。2桁または4桁形式(デフォルトは4桁)。許される値は、4桁形式では 1901〜2155, 0000 で、
2桁形式(70〜69)では 1970〜2069 です。
e) TIME 所要容量:3Byte
・時間。範囲は'-838:59:59'〜'838:59:59'です。 書式は'HH:MM:SS'。
|
|
|
|
B文字列
|
a) CHAR(M) 所要容量:M bytes, 1 <= M <= 255
・固定長の文字列。Mは1〜255まで。
b) VARCHAR(M) 所要容量:L+1 bytes, where L <= M and 1 <= M <= 255 。Lは実際の格納文字長。
・可変長の文字列。Mは1〜255まで。
|
|
|
|
Cオブジェクト型
|
a) TINYBLOB, TINYTEXT 所要容量:L+1 bytes,where L。Lは実際の格納文字長。< 2^8
・
b) BLOB, TEXT 所要容量:L+2 bytes,where L < 2^16 。Lは実際の格納文字数。
・
c) MEDIUMBLOB, MEDIUMTEXT 所要容量:L+3 bytes,where L < 2^24 。Lは実際の格納文字数。
・
d) LONGBLOB, LONGTEXT 所要容量:L+4 bytes,where L < 2^32 。Lは実際の格納文字数。
・
|
|
|
2) |
テーブルの作成 |
|
|
create table テーブル名(
フィールド名 フィールド型 NULL許可 デフォルト値,・・・);
例)
create table test(
aaa char(3) default '' not null,
bbb varchar(10) default '' not null,
ccc int default 0 not null,
ddd numeric(5,3) default 0 not null,
eee datetime not null,
fff timestamp not null
);
|
|
|
|
プライマリーキーも追加する場合(上記例でaaaとbbbをプライマリーキーにする場合) |
|
|
primary key (フィールド名,・・・);
例)
create table test(
aaa char(3) default '' not null,
bbb varchar(10) default '' not null,
ccc int default 0 not null,
ddd numeric(5,3) default 0 not null,
eee datetime not null,
fff timestamp not null,
primary key (aaa,bbb)
);
|
|
|
|
※補足説明 |
|
|
SQLを実行する場合、MySQL Command Line Clientから直接実行します。ただし上記SQLを1行づつ
入力するのは大変ですし、実行後エラーがあった場合、再度1から入力し直さないといけないので大変やっかいです。
そこでこのような場合はSOURCEコマンドを使用して下さい。手順は
1)上記のようなSQLをエディタで編集し保存する。ファイル名はcreate_test.sql等
2)MySQL Command Line Clientを立ち上げる
3)SOURCEコマンドを実行する。
mysql>SOURCE c:\temp\create_test.sql
4)エラーがあれば再度1)〜3)の処理を行う。
なお上記例だとコマンドプロンプトよりc:\tempにディレクトリチェンジをしてMySQL Command Line Clientを
起動するとフォルダ名の指定は不要でファイル名だけ指定して実行が出来ます。
|
|
3) |
テーブルの確認 |
|
|
・使用するデータベースの切替 use データベース名;
・該当データベースに作成済のテーブル表示
・該当テーブルの内容を確認 desc テーブル名;
|
|
4) |
テーブルの削除 |
|
|
drop table テーブル名;
例)
drop table test;
|
|
|
5) |
該当テーブルへのフィールドの追加 |
|
|
alter table テーブル名
add フィールド名 フィールド型 NULL許可 デフォルト値 [FIRST | AFTER 既存フィールド名],・・・
例)下記SQLを実行するとTESTテーブルのaaaの前にaaa0がaaaの後ろにaaa2が追加されます。
alter table test
add aaa0 char(1) default '' not null FIRST,
add aaa2 char(3) default '' not null AFTER aaa;
|
|
|
6) |
該当テーブルからフィールドの削除 |
|
|
alter table テーブル名
drop フィールド名,・・・;
例)下記SQLを実行するとaaa2に値が入っていても削除されます。
alter table test
drop aaa2;
|
|
|
7) |
該当テーブルの名称変更 |
|
|
alter table テーブル名
rename 新テーブル名;
例)
alter table test
rename test01;
|
|
|
INDEXの作成・変更・削除 |
|
1) |
プライマリーキーの再作成 |
|
|
再作成する場合は現在のプライマリーキーを削除後して作成する。
-- プライマリーキーの削除
alter table テーブル名
drop primary key;
-- プライマリーキーの作成
alter table テーブル名
add primary key(フィールド名,・・・);
例)
alter table test01
drop primary key;
alter table test01
add primary key(aaa0,aaa);
|
|
|
2) |
INDEXの追加 |
|
|
create [UNIQUE|FULLTEXT] INDEX インデックス名
on テーブル名 (フィールド名[(length)],・・・)
例)test01というテーブルにtest01_I1というINDEX名でbbbの項目をINDEXとして追加
create index test01_I1
on test01(bbb);
例)test01というテーブルにtest01_I2というINDEX名でbbbの項目先頭5bayteをUNIQUE INDEXとして追加
create UNIQUE index test01_I2
on test01(bbb(5));
|
|
|
3) |
INDEXの削除 |
|
|
drop INDEX インデックス名
on テーブル名;
例)test01というテーブルからtest01_I1というインデックスを削除
drop index test01_I1
on test01;
|
|
|