sql >> データベース >  >> RDS >> Database

外部キーSQL:外部キー操作について知っておくべきことすべて

    多くの多国籍企業がリレーショナルデータベースを使用してデータを処理する今日の市場では、すべてのテーブルが互いにどのように関連しているかを理解することが非常に重要です。したがって、外部キーSQLに関するこの記事では、テーブル間の関係を理解できるように、テーブル内の外部キーについて説明します。

    この記事では、次のトピックについて説明します。

    1. 外部キー制約とは何ですか?
    2. 外部キーのルール
    3. 外部キー操作:
    4. テーブル作成時のSQL外部キー
    5. ALTERTABLEのSQL外部キー
    6. 外部キーを削除する

    外部キー制約とは何ですか?

    外部キーは、データベース内の2つのテーブルをリンクするために使用されるキーの一種です。したがって、外部キーは、あるテーブルの属性または属性のコレクションであり、別のテーブルの主キーを参照します。

    たとえば、テーブルAとテーブルBが相互に関連している場合、テーブルAが主キーで構成されている場合、このテーブルは参照テーブルまたは親テーブルと呼ばれます。同様に、テーブルBが外部キーで構成されている場合、そのテーブルは参照テーブルまたは子テーブルと呼ばれます。下の画像を参照してください:

    外部キーとは何かがわかったので、次に外部キーSQLに関するこの記事で、外部キーの規則を理解しましょう。

    外部キーのルール

    外部キーのルールは次のとおりです:

    1. 外部キーを持つテーブルは子テーブルと呼ばれ、外部キーによって参照されるテーブルは親テーブルと呼ばれます。
    2. 外部キーではヌル値を使用できます
    3. 外部キーは複製できます
    4. テーブルには複数の外部キーが存在する可能性があります
    5. テーブル間に確立された関係は、参照整合性と呼ばれます

    外部キーのルールがわかったので、次に外部キーSQLに関するこの記事で、外部キーの操作を見てみましょう。

    外部キー操作:

    外部キーに存在するさまざまな操作を理解するには、次の2つの表を検討してください。

    顧客テーブル:

    CustomerID CustomerName PhoneNumber
    1 ローハン 9876543210
    2 ソナリ 9876567864
    3 Ajay 9966448811
    4 Geeta 9765432786
    5 Shubham 9944888756

    コーステーブル:

    CourseID

    CourseName

    CustomerID

    c01

    DevOps

    2

    c02

    機械学習

    4

    c03

    RPA

    1

    c04

    Tableau

    3

    c05

    AWS

    2

    これで、観察すると、コーステーブルのcustomerID列はcustomersテーブルのcustomerID列を参照しています。 CustomersテーブルのcustomerID列は主キーであり、coursesテーブルのcustomerID列はそのテーブルの外部キーです。

    最初の操作から開始:

    テーブル作成の外部キー

    「コース」テーブルを作成するときに、次の構文を使用して「customerID」列に外部キーを作成できます。

    #For SQL Server/ MS Access/ Oracle
    CREATE TABLE courses (
    courseID varchar NOT NULL PRIMARY KEY,
    courseName varchar NOT NULL,
    customerID int FOREIGN KEY REFERENCES customers(customerID)
    );
    #For MySQL
    CREATE TABLE courses (
    courseID varchar NOT NULL PRIMARY KEY,
    courseName varchar NOT NULL,
    customerID int
    PRIMARY KEY (courseID),
    FOREIGN KEY (customerID) REFERENCES customers(customerID)
    );
    

    複数の列に外部キーを適用する

    テーブルの作成中に複数の列に外部キーを適用するには、次の例を参照してください。

    CREATE TABLE courses (
    courseID varchar NOT NULL,
    courseName varchar NOT NULL,
    customerID int, PRIMARY KEY (courseID),
    CONSTRAINT FK_CustomerCourse FOREIGN KEY (customerID)
    REFERENCES customers(customerID)
    );
    

    次に、外部キーSQLに関するこの記事では、AlterTableで外部キーを使用する方法を見てみましょう。

    変更テーブルの外部キー

    「courses」テーブルがすでに作成されていて、テーブルを変更したい場合は、次の構文を使用して「customerID」列に外部キーを作成できます。

    ALTER TABLE courses
    ADD FOREIGN KEY (customerID) REFERENCES customers(customerID);
    

    外部キー制約に名前を追加して複数の列で定義する場合は、次のSQL構文を使用します。

    ALTER TABLE courses
    ADD CONSTRAINT FK_CustomerCourse
    FOREIGN KEY (customerID) REFERENCES Customers(customerID);
    

    次に、外部キーSQLに関するこの記事では、外部キーを削除する方法を理解しましょう

    外部キーを削除

    外部キーを削除するには、次の例を参照してください。

    #For SQL Server/ MS Access/ Oracle
    ALTER TABLE courses
    DROP CONSTRAINT FK_CustomerCourse;
    For MYSQL
    ALTER TABLE courses
    DROP FOREIGN KEY FK_CustomerCourse;
    

    これで、この記事は終わりです。 SQLで外部キーを使用する方法を理解していただければ幸いです。 詳細を知りたい場合 MySQL そしてこのオープンソースのリレーショナルデータベースを理解してから、をチェックしてください。 MySQLDBA認定トレーニング には、インストラクター主導のライブトレーニングと実際のプロジェクトの経験が含まれています。このトレーニングは、MySQLを深く理解し、主題をマスターするのに役立ちます。

    質問がありますか?この記事の「外部キーSQL」に関するコメントセクションでそれについて言及してください。折り返しご連絡いたします。


    1. 前月のすべての日付を一覧表示するoraclesqlクエリ

    2. ユーザー'DOMAIN\MACHINENAME$'のログインに失敗しました

    3. SQL Server 2008を使用してテーブルから上位1000行を削除するにはどうすればよいですか?

    4. CTEエラー:アンカーと再帰部分の間でタイプが一致しません