ホームページ >データベース >mysql チュートリアル >mysqlで外部キー制約をクエリする方法
mysql では、show ステートメントを使用して外部キー制約をクエリできます。show ステートメントは、mysql のデータベース、テーブル、および列の情報を表示できます。構文は「SHOW CREATE TABLE テーブル名」です。このステートメントは次のことができます。すべての主キー制約、外部キー制約、非 NULL 制約、およびその他の制約に関する情報をテーブルに表示します。
このチュートリアルの動作環境: Windows10 システム、mysql8.0.22 バージョン、Dell G3 コンピューター。
mysqlshow コマンドは、MySQL サーバーのデータベース、テーブル、および列の情報を表示するために使用されます。
MySQL では、SHOW CREATE TABLE ステートメントを使用してテーブル内の制約を表示し、外部キー制約をクエリできます。
データ テーブルの制約構文形式を次のように表示します:
SHOW CREATE TABLE <数据表名>;
例は次のとおりです:
mysql> CREATE TABLE tb_emp8 -> ( -> id INT(11) PRIMARY KEY, -> name VARCHAR(22) UNIQUE, -> deptId INT(11) NOT NULL, -> salary FLOAT DEFAULT 0, -> CHECK(salary>0), -> FOREIGN KEY(deptId) REFERENCES tb_dept1(id) -> ); Query OK, 0 rows affected (0.37 sec) mysql> SHOW CREATE TABLE tb_emp8 \G *************************** 1. row *************************** Table: tb_emp8 Create Table: CREATE TABLE `tb_emp8` ( `id` int(11) NOT NULL, `name` varchar(22) DEFAULT NULL, `deptId` int(11) NOT NULL, `salary` float DEFAULT '0', PRIMARY KEY (`id`), UNIQUE KEY `name` (`name`), KEY `deptId` (`deptId`), CONSTRAINT `tb_emp8_ibfk_1` FOREIGN KEY (`deptId`) REFERENCES `tb_dept1` (`id`) ) ENGINE=InnoDB DEFAULT CHARSET=gb2312 1 row in set (0.19 sec)
拡張知識:
外部キー制約の定義
Mysql 外部キー制約 (FOREIGN KEY) はテーブルの特別なフィールドであり、主キー制約と一緒によく使用されます。関連関係を持つ 2 つのテーブルの場合、関連するフィールドの主キーが配置されているテーブルがメイン テーブル (親テーブル) となり、外部キーが配置されているテーブルが副テーブル (子テーブル)
2 つのテーブル (テーブル A とテーブル B) が共通のフィールド "id" を通じて関連付けられているとします。この関係を R と呼びます。 「id」がテーブル A の主キーの場合、テーブル A がこのリレーションシップ R の主テーブルになります。同様に、テーブル B はこの関係におけるスレーブ テーブルであり、テーブル B の「id」はテーブル B がテーブル A のデータを参照するために使用するものであり、外部キーと呼ばれます。したがって、外部キーは、テーブルからメイン テーブルのデータを参照するために使用されるパブリック フィールドです。
外部キー制約の役割
外部キー制約は役立ちます。スレーブ テーブルの外部キー フィールドとマスター テーブルの主キー フィールド間の参照関係を決定することで、スレーブ テーブルのデータによって参照されるマスター テーブルのデータが削除されず、データの一貫性を確保することもできます。 2 つのテーブル内
メイン テーブルからレコードが削除されると、それに応じてスレーブ テーブルの対応するレコードも変更する必要があります。テーブルには 1 つ以上の外部キーを含めることができ、外部キーは NULL 値にすることができます。NULL 値でない場合、各外部キーの値はメイン テーブルの主キーの特定の値と等しい必要があります。
ただし、外部キー キー制約はコストが高く、システム リソースを消費する必要があるため、大規模な同時 SQL 操作には適さない場合があります。したがって、MySQL を使用すると、システムに付属する外部キー制約を使用せずに、アプリケーション レベルでデータの整合性をチェックするロジックを完成させることができます。これは、外部キーを設定しなくても関連クエリを実行できる理由でもあります。
推奨学習:mysql ビデオ チュートリアル
以上がmysqlで外部キー制約をクエリする方法の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。