MySQLで既存のテーブルからCREATE TABLE文を生成する方法
MySQLで既存テーブルからCREATE TABLE文を生成する方法
MySQLでは、SHOW CREATEコマンドを使用することで、既存のテーブルに基づいて「テーブル作成(CREATE TABLE)」コマンドを簡単に生成できます。この機能は、テーブル定義の確認やバックアップ、別の環境へのマイグレーションなどにも非常に役立ちます。
基本構文
構文は以下の通りです。
SHOW CREATE TABLE テーブル名;
サンプルテーブルの作成
実際の動作を理解するために、まずサンプル用のテーブルを作成してみましょう。テーブルを作成するクエリは以下の通りです。
mysql> create table StudentInformation
-> (
-> StudentId int NOT NULL AUTO_INCREMENT PRIMARY KEY,
-> StudentName varchar(20),
-> StudentAge int DEFAULT 18,
-> StudentRollNo int,
-> StudentAddress varchar(200),
-> StudentMarks int,
-> StudentDOB datetime,
-> StudentAdmissionDate datetime
-> );
Query OK, 0 rows affected (0.54 sec)
これで「StudentInformation」テーブルが作成されました。
SHOW CREATE TABLEを実行する
次に、先ほどの構文を使って、このテーブルからCREATE TABLE文を生成してみましょう。実行するクエリは以下の通りです。
mysql> SHOW CREATE TABLE StudentInformation;
実行結果は以下のようになります。
+--------------------+-------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+
| Table | Create Table |
+--------------------+-------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+
| StudentInformation | CREATE TABLE `studentinformation` (
`StudentId` int(11) NOT NULL AUTO_INCREMENT,
`StudentName` varchar(20) DEFAULT NULL,
`StudentAge` int(11) DEFAULT '18',
`StudentRollNo` int(11) DEFAULT NULL,
`StudentAddress` varchar(200) DEFAULT NULL,
`StudentMarks` int(11) DEFAULT NULL,
`StudentDOB` datetime DEFAULT NULL,
`StudentAdmissionDate` datetime DEFAULT NULL,
PRIMARY KEY (`StudentId`)
) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4 COLLATE=utf8mb4_0900_ai_ci |
+--------------------+-------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+
1 row in set (0.04 sec)
補足:出力を見やすく整えるには
出力結果が横長になりすぎて読みにくい場合は、文末のセミコロン(;)の代わりに \G を指定すると、縦方向に整形された読みやすい形式で表示できます。
mysql> SHOW CREATE TABLE StudentInformation\G
また、生成されたCREATE TABLE文はそのままコピーして実行できるため、同じ構造のテーブルを複製したり、テーブル定義をドキュメントとして残したりする際にも活用できます。
-
MySQLコマンドラインでデータベースを作成する方法を初心者向けに解説
MySQLコマンドラインでデータベースを作成する手順 この記事では、WindowsのコマンドプロンプトからMySQLに接続し、データベースを作成する一連の手順をスクリーンショット付きで解説します。初心者の方でも迷わず進められるよう、順番に見ていきましょう。 1. コマンドプロンプトを開く まず、コマンドプロンプトを起動します。キーボードのショートカット「Windows + R」キーを押すと、「ファイル名を指定して実行」ダイアログが表示されます。 2. 「CMD」と入力してOKをクリック 表示された入力欄に CMD と入力し、「OK」ボタンをクリックしてください。 3. コマンドプロンプトが
-
MySQLでインデックス付きのテーブルを作成する方法を徹底解説
MySQLでは、テーブル作成後にCREATE INDEX文を使うことで、特定のカラムに対してインデックスを追加できます。検索速度の向上やデータ整合性の確保において、インデックスは非常に重要な役割を果たします。この記事では、基本的な構文から実際の実行例まで、順を追ってわかりやすく解説します。インデックス付きテーブルを作成する基本構文まずテーブルを作成し、その後CREATE INDEX文でインデックスを追加します。基本の構文は以下のとおりです。create table yourTableName ( yourColumnName1 dataType, yourColumnName2 dataTyp