「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

【講演資料を公開】9/28 ビッグデータ処理のデータベースとして MySQL HeatWave が最適な理由 〜AWS Aurora/Redshift、GCP BigQuery との性能&コスト比較〜(2022年10月28日 09:15)

2022年09月28日(金)16:00~16:55 「ビッグデータ処理のデータベースとして MySQL HeatWave が最適な理由 〜AWS Aurora/Redshift、GCP BigQuery との性能&コスト比較〜」 と題したウェビナーが開催されました。 皆様のご参加、誠にありがとうございました。 当日の資料は以下から無料でご覧いただけます。 ご興味のある企業さま、ぜひご...

イベント情報

セミナー講演資料

無料資料プレゼント

2021/03/04 セキュリティDAYS Keyspider資料

講演資料を見るには、 プライバシーポリシーに同意して、送付先メールアドレスをご入力しご請求ください。

またご入力いただきました情報は、当該資料の作成・提供企業とも共有させていただき、当社及び各社のサービス、製品、セミナー、イベントなどのご案内に使用させていただきます。

本資料を見るには次の画面でアンケートに回答していただく必要があります。



セミナー講演資料公開中

【再放送】システム責任者が知っておくべき 「MySQLの高可用性/HA構成」 の選択肢と比較 〜 MySQLデータベースのダウンタイム“ゼロ”を目指す〜

ハイブリッドワークにおける電話の新しいカタチ ~セールスプロセスを最適化する次世代クラウドビジネスフォン~

【企業ネットワーク向け】ローカルブレイクアウト、適用できないSaaSはありませんか?通信速度や運用に課題はありませんか? 〜LBOに最適なネットワーク機器や管理ツールによる解決策をご提案〜

  • オープソース書籍(サイド)
  • OSSNEWSに広告を掲載しませんか?

facebook

twitter