ホームページ >データベース >mysql チュートリアル >mysqlで外部キー制約をクエリする方法

mysqlで外部キー制約をクエリする方法

WBOY
WBOYオリジナル
2022-05-16 17:07:407893ブラウズ

mysql では、show ステートメントを使用して外部キー制約をクエリできます。show ステートメントは、mysql のデータベース、テーブル、および列の情報を表示できます。構文は「SHOW CREATE TABLE テーブル名」です。このステートメントは次のことができます。すべての主キー制約、外部キー制約、非 NULL 制約、およびその他の制約に関する情報をテーブルに表示します。

mysqlで外部キー制約をクエリする方法

このチュートリアルの動作環境: Windows10 システム、mysql8.0.22 バージョン、Dell G3 コンピューター。

mysql で外部キー制約をクエリする方法

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 &#39;0&#39;,
  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 サイトの他の関連記事を参照してください。

声明:
この記事の内容はネチズンが自主的に寄稿したものであり、著作権は原著者に帰属します。このサイトは、それに相当する法的責任を負いません。盗作または侵害の疑いのあるコンテンツを見つけた場合は、admin@php.cn までご連絡ください。