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

MySQLの外部キーの基本を理解していますか?


外部キーを使用して、テーブル間の関係を作成できます。外部キーの関係は、1対1または1対多にすることができます。外部キーが別のテーブルの別のフィールドと一致します。

  • 1対1の関係 − 1つのテーブルの1つのレコードが、別のテーブルの1つのレコードにリンクされます。

  • 1対多の関係 −1つのレコードが別のテーブルの複数のレコードにリンクされます。

以下はその一例です。まず、テーブルを作成します。 CREATEコマンドを使用してテーブルを作成します。

mysql> create table tblF
    - > (
    - > id int ,
    - > FirstName varchar(100),
    - > FK_PK int
    - > );
Query OK, 0 rows affected (0.57 sec)

2番目のテーブルを作成します。

mysql> create table tblP
    - > (
    - > FK_PK int,
    - > LastName varchar(100),
    - > primary key(FK_PK)
    - > );
Query OK, 0 rows affected (0.94 sec)

以下は、外部キーを作成するための構文です。

mysql> ALTER table tblF add constraint ConstFK foreign key(FK_PK) references tblP(FK_PK);
Query OK, 0 rows affected (2.17 sec)
Records: 0  Duplicates: 0  Warnings: 0

DESCコマンドを使用して外部キーが作成されているかどうかを確認します。

mysql> DESC tblF;

以下は出力です。

+-----------+--------------+------+-----+---------+-------+
| Field     | Type         | Null | Key | Default | Extra |
+-----------+--------------+------+-----+---------+-------+
| id        | int(11)      | YES  |     | NULL    |       |
| FirstName | varchar(100) | YES  |     | NULL    |       |
| FK_PK     | int(11)      | YES  | MUL | NULL    |       |
+-----------+--------------+------+-----+---------+-------+
3 rows in set (0.05 sec)

  1. MySQLでの外部キーの使用

    MySQLで外部キーを使用する方法を理解しましょう- InnoDBテーブルは、外部キー制約のチェックをサポートしています。 2つのテーブルを結合するためだけに、外部キー制約は必要ありません。 InnoDB以外のストレージエンジンで使用する必要のある列を定義するときに使用できます。 REFERENCES tableName(colName)は実際の効果はなく、現在定義されている列が別のテーブルの列を参照することを意図しているというユーザーへのコメントとして機能します。 MySQLは、「colName」が実際に「tableName」に存在すること、または「tableName」自体が実際に存在す

  2. MySQLで2つのキーを検索する

    MySQLで2つのキーを検索する方法を理解しましょう 2つのキーの検索は、適切に最適化された単一のキーを使用して「OR」を使用するか、適切に最適化された「AND」を使用して実行できます。 「OR」操作と組み合わせて、2つの異なるキーを検索する方法を見てみましょう- SELECT field1_index, field2_index FROM tableName WHERE field1_index = '1' OR field2_index = '1' これは、クエリの最適化されたバージョンです。また、2つの別々の「SELECT」ステートメントの出力を組み