「MySQL」参考情報 「第7回MySQLテーブルの作成と削除」+「第8回MySQLテーブル一覧」として、「テーブル作成(CREATE TABLE)」「テーブル削除(DROP TABLE)」「テーブル一覧(SHOW TABLES)」「テーブル詳細情報(SHOW TABLE STATUS)」「CREATE TABLE文の取得(SHOW CREATE TABLE)」について紹介。

「MySQL」参考情報 「第7回MySQLテーブルの作成と削除」+「第8回MySQLテーブル一覧」

「MySQL」参考情報 「第7回MySQLテーブルの作成と削除」+「第8回MySQLテーブル一覧」として、「テーブル作成(CREATE TABLE)」「テーブル削除(DROP TABLE)」「テーブル一覧(SHOW TABLES)」「テーブル詳細情報(SHOW TABLE STATUS)」「CREATE TABLE文の取得(SHOW CREATE TABLE)」について紹介。

■関連する比較ページ

「MySQL」参考情報 第7回 MySQLテーブルの作成と削除

■【1】テーブル作成(CREATE TABLE)

「CREATE TABLE」構文

CREATE TABLE テーブル名 (
  カラム名 データ型 (オプション),
  カラム名 データ型 (オプション),
  カラム名 データ型 (オプション)
)

※「テーブル名」と「カラム名」は64バイト以内

サンプルテーブル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)
)

サンプルテーブル2(武将テーブル)

武将情報を格納するテーブルを作成します。

CREATE TABLE Busho (
  #武将ID(NULL禁止、ID自動設定)
  id INT(11) NOT NULL AUTO_INCREMENT,
  #武将名
  name VARCHAR(64),
  #「PRIMARY KEY」を「id」に指定
  PRIMARY KEY (id)
)

「NOT NULL」オプション

「id」カラムに「NOT NULL」オプションを指定してあります。

対象テーブルにレコードが追加される際に、「id」カラムが空(null)であることを禁止します。

「AUTO_INCREMENT」オプション

「id」カラムに「AUTO_INCREMENT」オプションを指定してあります。

対象テーブルにレコードが追加される際に、「id」カラムにセットされるデータが空(null)であった場合に、最初に「1」をセットします。

以降は、レコードが追加されるたびに、自動で、「前回追加した値+1」の値がセットされます。

わざわざ「id」値を指定しなくても、自動で、「1,2,3,・・・」とセットしてくれます。

「PRIMARY KEY」

「PRIMARY KEY (id)」とすることで、「id」カラムを「PRIMARY KEY」に設定しています。

「PRIMARY KEY」とは、そのカラム(もしくは、複数カラムの組合せ)で、一意となる(唯一のレコードであることが決定される)ものをいいます。別名「主キー」ともいわれます。

つまり、「idカラムに格納されている値は、全レコード違う値である」ことを強制する設定です。

「PRIMARY KEY」に対しては、自動でインデックスが作成されます。このサンプルの場合(大量のデータがある場合)、「id」カラムを抽出条件とした検索が速くなります。

■【2】テーブル削除(DROP TABLE)

「DROP TABLE」構文

DROP TABLE テーブル名

注意点

バックアップを取っておけば復元することもできますが、間違えてテーブルを削除してしまわないように、気をつけましょう。

「MySQL」参考情報 第8回 MySQLテーブル一覧

■【1】テーブル一覧(SHOW TABLES)

テーブル一覧を取得する方法です。

SHOW TABLES [FROM データベース名][LIKE パターン]

『mysql> SHOW TABLES』

カレントデータベースに存在するテーブル名(「Touken」「Busho」など)が表示されます。

※指定したデータベースに、テーブルが1つも存在しない場合は、「Empty set」と表示されます。

※指定したデータベースが存在しない場合は、エラーメッセージが返されます。

データベース指定

『mysql> SHOW TABLES from ToukenDB』

「ToukenDB」に存在するテーブル一覧を表示します。カレントデータベースではないデータベースのテーブル一覧を取得する場合に指定します。

LIKE パターン

LIKE句を使用して、ワイルドカード抽出することもできます。

『mysql> SHOW TABLES LIKE 'Tou%'』

「Tou」で始まるテーブルのみを表示します。

■【2】テーブル詳細情報(SHOW TABLE STATUS)

テーブル名のみではなく、各テーブルに対する詳細情報を取得できます。

SHOW TABLE STATUS [FROM データベース名] [LIKE パターン]

『mysql> SHOW TABLE STATUS¥G』

※「¥G」を付けると、1行ごとに改行され、見やすくできます。

取得できる情報
項目名意味
Nameテーブル名
Typeテーブル種類
Row_formatレコード保存形式(Fixed、Dynamic、Compressed)
Rowsレコード数
Avg_row_lengthレコード平均長
Data_lengthデータファイルの大きさ
Max_data_lengthデータファイルの最大値
Index_lengthインデックスファイルの大きさ
Data_free割り当て済みの中で使用されていないバイト数
Auto_incrementautoincrement値(次にセットされる値)
Create_timeテーブル作成日時
Update_time最終更新日時
Check_time最終チェック日時
Create_options「CREATE TABLE」発行時に使用された拡張オプション
Commentテーブル作成時につけられたコメント

■【3】CREATE TABLE文の取得(SHOW CREATE TABLE)

対象のテーブルを作成するための「CREATE TABLE」文を取得できます。

SHOW CREATE TABLE テーブル名

『mysql> SHOW CREATE TABLE Touken』

「刀剣(Touken)」テーブルを作成するための「CREATE TABLE」文が表示されます。

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