「MySQL」参考情報 「第9回MySQLのデータ型」+「第10回MySQLカラムの追加と削除」として、「データ型概要」「主なデータ型」「カラムデータ型の変更(ALTER TABLE)」「カラム追加(ALTER TABLE ~ ADD)」「カラム削除(ALTER TABLE ~ DROP)」について紹介。

「MySQL」参考情報 「第9回MySQLのデータ型」+「第10回MySQLカラムの追加と削除」

「MySQL」参考情報 「第9回MySQLのデータ型」+「第10回MySQLカラムの追加と削除」として、「データ型概要」「主なデータ型」「カラムデータ型の変更(ALTER TABLE)」「カラム追加(ALTER TABLE ~ ADD)」「カラム削除(ALTER TABLE ~ DROP)」について紹介。

■関連する比較ページ

「MySQL」参考情報 第9回 MySQLのデータ型

■【1】データ型概要

データ型とは

テーブル定義の際に、各カラムにデータ型を設定する必要があります。

サンプル:「刀剣情報」テーブル定義

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)

既存テーブルカラムのデータ型を確認するためには、「DESC」コマンドを使用します。

『mysql> desc Touken』

FieldTypeNull
idINT(11)NO
nameVARCHAR(64)YES
busho_idINT(11)YES

■【2】主なデータ型

数値型

数値を格納するための型です。格納できる数値の大きさにより、多くの型種類があります。

データ型最小値最大値
TYNYINT-128127
INT-21474836482147483647
BIGINT-92233720368547758089223372036854775807
文字型

文字を入力するための型です。主に3種類あります。

データ型最大文字数
CHAR255
VARCHAR255
TEXT65535

「CHAR」と「VARCHAR」の違い
CHAR(5)のカラムに文字列「ABC」を格納した場合
→固定長「ABC△△」 ※△=半角スペース
VARCHAR(5)のカラムに文字列「ABC」を格納した場合
→可変長「ABC」

日付/時刻型

文字を入力するための型です。主に3種類あります。

データ型内容
DATETIME日付と時刻
DATE日付
TIME時刻

■【3】カラムデータ型の変更(ALTER TABLE)

すでに存在しているテーブルカラムのデータ型を変更できます。

構文

ALTER TABLE テーブル名 MODIFY カラム名 データ型

サンプル

刀剣テーブル(Touken) の 刀剣名(name)カラム のデータ型が、「VARCHAR(64)」から「VARCHAR(100)」へ変更されます。

注意点

もし、「VARCHAR(64)」から「VARCHAR(5)」へ変更した場合、全レコードの5文字以降の部分は、カットされて消失してしまいます。

対象テーブル内にレコードデータが格納されている状態で、カラムデータ型の変更を行うと、予期せぬことが起こる場合が多々あります。変更する場合には、入念な事前調査が必要です。基本的に、レコードデータ格納後にカラムデータ型を変更するのは、なるべく避けるべきこととされています。

大きなシステムになると、後からデータ型を変更するのは、非常に多くの手間がかかることになります。そのような手間がなるべく発生しないように、最初のテーブル設計時に、「ある程度若干の余裕を持たせておく」「将来拡張用のカラムを持たせておく」などのことが行われることもあります。

「MySQL」参考情報 第10回 MySQLカラムの追加と削除

■【1】カラム追加(ALTER TABLE ~ ADD)

既存のテーブルに対してカラムを追加する場合は、「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)
)

カラム追加例(1) オプションなし

『mysql> ALTER TABLE Touken ADD create_datetime DATETIME』

「Touken」テーブルの一番最後に、「datetime」型の「create_datetime(作成日時)」カラムが追加されます。

1.id
2.name
3.busho_id
4.create_datetime

カラム追加例(2) 「FIRST」オプション

『mysql> ALTER TABLE Touken ADD create_datetime DATETIME FIRST』

「FIRST」オプションを付けると、「Touken」テーブルの一番最初にカラムが追加されます。

1.create_datetime
2.id
3.name
4.busho_id

カラム追加例(3) 「AFTER」オプション

『mysql> ALTER TABLE Touken ADD create_datetime DATETIME AFTER name』

「AFTER」オプションを付けると、「Touken」テーブルの指定したカラム(name)の次にカラムが追加されます。

1.id
2.name
3.create_datetime
4.busho_id

カラム追加例(4) 複数カラム追加

『mysql> ALTER TABLE Touken ADD (test1 INT, test2 INT, test3 INT)』

1.id
2.name
3.busho_id
4.test1
5.test2
6.test3

■【2】カラム削除(ALTER TABLE ~ DROP)

既存のテーブルに対してカラムの削除を行う場合は、「ALTER TABLE(DROP)」コマンドを使用します。

構文

ALTER TABLE テーブル名 DROP カラム名

カラム削除例(1)

『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

カラム削除例(2) 複数カラム削除

『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

MySQL最新TOPICS

【OSS】オープンソースデータベース利用実態2019年版---多くが複数利用、回答者の59%は「MySQL Communityエディション」を利用(2019年10月08日 10:21)

Open Source Data Management Software Survey オープンソースデータベースサービス提供企業「Percona」は、オープンソースデータベースを使用する人々の使用パターンと意見を収集するために広範な調査を実施した。 調査には85か国から836人が参加した。

  • Zabbixカンファレンス2019
  • OSSNEWSに広告を掲載しませんか?

facebook

twitter