MySQL
 Computer >> コンピューター >  >> プログラミング >> MySQL

MySQLでsp_helpのようにフィールド型や制約を表示するには?SHOW CREATEコマンドの使い方

MySQLでsp_help相当の情報を取得するには?

SQL Serverのsp_helpに相当する機能は、MySQLではSHOW CREATEコマンドで実現できます。このコマンドを使えば、テーブルのフィールド(カラム)のデータ型や、主キー・一意キーなどの制約情報をまとめて確認できます。


ケース1:テーブルの場合

テーブルの定義を表示する基本構文は次の通りです。

SHOW CREATE TABLE テーブル名;

ケース2:ストアドプロシージャの場合

ストアドプロシージャの定義を表示する基本構文は次の通りです。

SHOW CREATE PROCEDURE プロシージャ名;

サンプルテーブルを作成する

まず、動作確認用として次のようなテーブルを作成しましょう。

mysql> create table DemoTable
(
    EmployeeId int NOT NULL AUTO_INCREMENT,
    EmployeeFirstName varchar(40) NOT NULL,
    EmployeeLastName varchar(40) NOT NULL,
    EmployeeAge int,
    EmployeeCountryName varchar(40),
    EmployeeCityName varchar(40),
    PRIMARY KEY(EmployeeId),
    UNIQUE KEY(EmployeeFirstName,EmployeeCityName)
);
Query OK, 0 rows affected (0.97 sec)

SHOW CREATE TABLEを実行する

作成したテーブルに対して、先ほど紹介した構文を実行します。

mysql> SHOW CREATE TABLE DemoTable;

このコマンドを実行すると、次のようにフィールド名・データ型・NULL許容属性、さらにPRIMARY KEYやUNIQUE KEYなどの制約を含んだ完全なCREATE TABLE文が出力されます。

CREATE TABLE `demotable` (
  `EmployeeId` int(11) NOT NULL AUTO_INCREMENT,
  `EmployeeFirstName` varchar(40) COLLATE utf8_unicode_ci NOT NULL,
  `EmployeeLastName` varchar(40) COLLATE utf8_unicode_ci NOT NULL,
  `EmployeeAge` int(11) DEFAULT NULL,
  `EmployeeCountryName` varchar(40) COLLATE utf8_unicode_ci DEFAULT NULL,
  `EmployeeCityName` varchar(40) COLLATE utf8_unicode_ci DEFAULT NULL,
  PRIMARY KEY (`EmployeeId`),
  UNIQUE KEY `EmployeeFirstName` (`EmployeeFirstName`,`EmployeeCityName`)
) ENGINE=InnoDB DEFAULT CHARSET=utf8 COLLATE=utf8_unicode_ci

1 row in set (0.03 sec)

補足:カラム情報だけを簡潔に確認したい場合

テーブル定義全体ではなく、各カラムの型やNULL許容のみを手軽に確認したい場合は、DESCRIBE文やSHOW COLUMNS FROM文も便利です。目的に応じてこれらのコマンドを使い分けると、開発やデバッグの作業効率が向上します。

  1. MySQLで別テーブルの主キーを外部キーとして参照する方法をわかりやすく解説

    MySQLでは、あるテーブルの主キー(PRIMARY KEY)を、別のテーブルの外部キー(FOREIGN KEY)として参照することで、テーブル間にリレーション(関連付け)を構築できます。これによりデータの整合性が保たれ、参照先に存在しない値の登録を防ぐことができます。外部キー制約を追加する基本構文既存のテーブルに対して外部キー制約を追加するには、ALTER TABLE文を使用します。基本的な構文は以下のとおりです。alter table yourSecondTableName add constraint `yourConstraintName` foreign key(`yourSecon

  2. MySQLで外部キー(FOREIGN KEY)を使う方法|InnoDBの制約とALTER構文を解説

    本記事では、MySQLにおける外部キー(FOREIGN KEY)の基本的な考え方と、実際の設定方法をサンプルSQL付きで解説します。 MySQLの外部キーの基本 InnoDBテーブルは、外部キー制約(FOREIGN KEY制約)のチェックをサポートしています。ただし、単に2つのテーブルを結合(JOIN)するだけであれば、外部キー制約は必須ではありません。外部キーは、テーブル間の参照整合性を保証したい場合に活用する仕組みです。 一方で、InnoDB以外のストレージエンジンを使用している場合は注意が必要です。REFERENCES tableName(colName) という構文を記述しても実際の効