テーブル定義の際に、各カラムにデータ型を設定する必要があります。
CREATE TABLE Touken (
#刀剣ID(NULL禁止、ID自動設定)
id INT(11) NOT NULL AUTO_INCREMENT,
#刀剣名
name VARCHAR(64),
#武将ID 刀剣の持ち主
busho_id INT(11),
#「PRIMARY KEY」を「id」に指定
PRIMARY KEY (id)
)
「INT(11)」、「VARCHAR(64)」の部分でデータ型を設定しています。
既存テーブルカラムのデータ型を確認するためには、「DESC」コマンドを使用します。
『mysql> desc Touken』
Field | Type | Null |
---|---|---|
id | INT(11) | NO |
name | VARCHAR(64) | YES |
busho_id | INT(11) | YES |
数値を格納するための型です。格納できる数値の大きさにより、多くの型種類があります。
データ型 | 最小値 | 最大値 |
---|---|---|
TYNYINT | -128 | 127 |
INT | -2147483648 | 2147483647 |
BIGINT | -9223372036854775808 | 9223372036854775807 |
文字を入力するための型です。主に3種類あります。
データ型 | 最大文字数 |
---|---|
CHAR | 255 |
VARCHAR | 255 |
TEXT | 65535 |
「CHAR」と「VARCHAR」の違い
CHAR(5)のカラムに文字列「ABC」を格納した場合
→固定長「ABC△△」 ※△=半角スペース
VARCHAR(5)のカラムに文字列「ABC」を格納した場合
→可変長「ABC」
文字を入力するための型です。主に3種類あります。
データ型 | 内容 |
---|---|
DATETIME | 日付と時刻 |
DATE | 日付 |
TIME | 時刻 |
すでに存在しているテーブルカラムのデータ型を変更できます。
ALTER TABLE テーブル名 MODIFY カラム名 データ型
刀剣テーブル(Touken) の 刀剣名(name)カラム のデータ型が、「VARCHAR(64)」から「VARCHAR(100)」へ変更されます。
もし、「VARCHAR(64)」から「VARCHAR(5)」へ変更した場合、全レコードの5文字以降の部分は、カットされて消失してしまいます。
対象テーブル内にレコードデータが格納されている状態で、カラムデータ型の変更を行うと、予期せぬことが起こる場合が多々あります。変更する場合には、入念な事前調査が必要です。基本的に、レコードデータ格納後にカラムデータ型を変更するのは、なるべく避けるべきこととされています。
大きなシステムになると、後からデータ型を変更するのは、非常に多くの手間がかかることになります。そのような手間がなるべく発生しないように、最初のテーブル設計時に、「ある程度若干の余裕を持たせておく」「将来拡張用のカラムを持たせておく」などのことが行われることもあります。
既存のテーブルに対してカラムを追加する場合は、「ALTER TABLE(ADD)」コマンドを使用します。
ALTER TABLE テーブル名 ADD カラム名 型 [FIRST/AFTER カラム名]
CREATE TABLE Touken (
#刀剣ID(NULL禁止、ID自動設定)
id INT(11) NOT NULL AUTO_INCREMENT,
#刀剣名
name VARCHAR(64),
#武将ID 刀剣の持ち主
busho_id INT(11),
#「PRIMARY KEY」を「id」に指定
PRIMARY KEY (id)
)
『mysql> ALTER TABLE Touken ADD create_datetime DATETIME』
「Touken」テーブルの一番最後に、「datetime」型の「create_datetime(作成日時)」カラムが追加されます。
1.id
2.name
3.busho_id
4.create_datetime
『mysql> ALTER TABLE Touken ADD create_datetime DATETIME FIRST』
「FIRST」オプションを付けると、「Touken」テーブルの一番最初にカラムが追加されます。
1.create_datetime
2.id
3.name
4.busho_id
『mysql> ALTER TABLE Touken ADD create_datetime DATETIME AFTER name』
「AFTER」オプションを付けると、「Touken」テーブルの指定したカラム(name)の次にカラムが追加されます。
1.id
2.name
3.create_datetime
4.busho_id
『mysql> ALTER TABLE Touken ADD (test1 INT, test2 INT, test3 INT)』
1.id
2.name
3.busho_id
4.test1
5.test2
6.test3
既存のテーブルに対してカラムの削除を行う場合は、「ALTER TABLE(DROP)」コマンドを使用します。
ALTER TABLE テーブル名 DROP カラム名
『mysql> ALTER TABLE Touken DROP create_datetime』
「Touken」テーブルの「create_datetime(作成日時)」カラムが削除されます。
1.id
2.name
3.create_datetime
4.busho_id
↓
1.id
2.name
3.busho_id
『mysql> ALTER TABLE Touken DROP test1, DROP test2, DROP test3』
1.id
2.name
3.busho_id
4.test1
5.test2
6.test3
↓
1.id
2.name
3.busho_id
2022年09月28日(金)16:00~16:55 「ビッグデータ処理のデータベースとして MySQL HeatWave が最適な理由 〜AWS Aurora/Redshift、GCP BigQuery との性能&コスト比較〜」 と題したウェビナーが開催されました。 皆様のご参加、誠にありがとうございました。 当日の資料は以下から無料でご覧いただけます。 ご興味のある企業さま、ぜひご...
OSS×Cloud ACCESS RANKING