MySQLでテーブルの構造を表示する方法|SHOW CREATE TABLEの使い方を解説
MySQLでは、SHOW CREATE TABLE文を使うことで、テーブルの構造(カラム定義、データ型、主キー、文字コードなどの詳細情報)を簡単に確認できます。この記事では、実際にテーブルを作成し、その構造を表示する手順をわかりやすく解説します。
SHOW CREATE TABLEの基本構文
テーブルの構造を表示するには、以下の構文を使用します。
show create table yourTableName;
yourTableName の部分に、構造を確認したいテーブル名を指定してください。
サンプルテーブルの作成
まずは動作確認用に、従業員情報を管理するテーブルを作成してみましょう。
mysql> create table DemoTable
-> (
-> Id int NOT NULL AUTO_INCREMENT PRIMARY KEY,
-> EmployeeFirstName varchar(100),
-> EmployeeLastName varchar(100),
-> EmployeeAge int,
-> isMarried tinyint(1),
-> EmployeeAddress varchar(100),
-> EmployeeCountryName varchar(100)
-> );
Query OK, 0 rows affected (0.62 sec)このテーブルには、自動採番される主キー「Id」をはじめ、氏名・年齢・結婚状況・住所・国名といったカラムが定義されています。
テーブル構造を表示するクエリ
作成したテーブルの構造を表示するには、次のクエリを実行します。
mysql> show create table DemoTable;
実行結果
上記のクエリを実行すると、以下のような出力が得られます。
+--------------+-----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+ | Table | Create Table | +--------------+-----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+ | DemoTable | CREATE TABLE `DemoTable` ( `Id` int(11) NOT NULL AUTO_INCREMENT, `EmployeeFirstName` varchar(100) COLLATE utf8_unicode_ci DEFAULT NULL, `EmployeeLastName` varchar(100) COLLATE utf8_unicode_ci DEFAULT NULL, `EmployeeAge` int(11) DEFAULT NULL, `isMarried` tinyint(1) DEFAULT NULL, `EmployeeAddress` varchar(100) COLLATE utf8_unicode_ci DEFAULT NULL, `EmployeeCountryName` varchar(100) COLLATE utf8_unicode_ci DEFAULT NULL, PRIMARY KEY (`Id`) ) ENGINE=InnoDB DEFAULT CHARSET=utf8 COLLATE=utf8_unicode_ci | +--------------+-----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+ 1 row in set (0.00 sec)
出力結果から読み取れる情報
SHOW CREATE TABLEの出力には、以下のような重要な情報が含まれています。
- カラム定義: 各カラムのデータ型やNULL許可の有無(DEFAULT NULLなど)
- 主キー情報: PRIMARY KEYとして設定されたカラム
- AUTO_INCREMENT: Idカラムが自動採番される設定になっていること
- 照合順序(COLLATE): utf8_unicode_ciが適用されていること
- ストレージエンジンと文字コード: ENGINE=InnoDB、CHARSET=utf8の設定
補足:DESCRIBE文との違い
テーブル構造の確認にはDESCRIBE テーブル名;(またはDESC テーブル名;)も使えます。DESCRIBEはカラム名・型・NULL可否・キー情報などを簡潔な一覧形式で表示するのに対し、SHOW CREATE TABLEは実際のCREATE TABLE文そのものを出力するため、文字コードやストレージエンジンまで含めた完全な定義を知りたい場合に便利です。
-
MySQLテーブルからランダムな行を表示する方法(ORDER BY RAND()の使い方)
MySQLのテーブルからランダムに1行だけ取得して表示したい場合には、RAND()関数をLIMIT句と組み合わせて使用します。今回は1行だけ取得したいので、「LIMIT 1」と指定します。まずは動作確認用のサンプルテーブルを作成してみましょう。サンプルテーブルの作成mysql> create table DemoTable ( Id int NOT NULL AUTO_INCREMENT PRIMARY KEY, Name varchar(50), Quote text ); Query OK, 0 rows affected (0.71 sec)次に、INSER
-
Javaを使用してMySQLテーブルの値を表示する方法
MySQLデータベースのテーブル値をJavaで表示するには、ResultSetの概念を利用します。データベースへの接続には、MySQL JDBCドライバーを使用します。テーブルの作成まず、サンプル用のテーブルを作成しましょう。mysql> create table demo87 -> ( -> name varchar(20), -> age int -> )