Khóa chính là gì? Khác biệt giữa khóa chính và khóa ngoại trong SQL – https://blogchiase247.net

[ad_1]

Các khoá chính và khóa ngoại là hai loại ràng buộc hoàn toàn có thể được sử dụng để thực thi toàn vẹn tài liệu trong những bảng SQL Server. Đây là những đối tượng người tiêu dùng cơ sở tài liệu quan trọng. Vậy khoá chính và khoá ngoại trong SQL là gì ? Sự độc lạ của chúng là gì ? Chúng ta cùng tìm hiểu và khám phá qua bài viết này nhé !

1. Khóa chính là gì

  • Khóa chính (hay ràng buộc khóa chính) được sử dụng để định danh duy nhất mỗi record 

    tại

    Bạn đang đọc: Khóa chính là gì? Khác biệt giữa khóa chính và khóa ngoại trong SQL – https://globalizethis.org/

     table của cơ sở dữ liệu.

  • Ngoài ra, nó còn sử dụng để thiết lập quan hệ 1-n (hay ràng buộc tham chiếu) giữa hai table tại cơ sở dữ liệu.
  • Dữ liệu (value) của field khóa chính nên có tính độc nhất. và không có những giá trị Null.
  • Mỗi table nên chỉ có một khóa chủ yếu, khóa chủ yếu có năng lực sản sinh ra từ nhiều field của table.

2 Khóa ngoại là gì

  • Khóa ngoại của một table được coi là con trỏ trỏ tới khóa chủ yếu của table khác.
  • Nếu như trường MaSV của table DiemSV được sử dụng để tạo ràng buộc tham chiếu đến table HSSV, thông qua khóa chủ yếu là MaSV thì MaSV của table DiemSV được gọi là khóa ngoại của bảng này. Đây cũng chính là nguyên do mà ta nói, khóa ngoại được coi là con trỏ trởi tới khóa chính.
  • Để hiểu rõ hơn về ý nghĩa dùng của khóa chủ yếu, khóa ngoại chúng ta hãy xét ví dụ điển hình như sau: Giả sử cơ sở dữ liệu QLDiemSV có hai table: HSSV và DiemSV như sau:
  • Table HSSV gồm 6 . field, trong số đó MaSV được chọn làm khóa chính của table này.

  • Table DiemSV gồm 6 field, trong đó STT là khóa chủ yếu , MaSV được chọn làm khóa ngoại của table này.

  • Như vậy, hai table HSSV , DiemSV quan hệ dữ liệu với nhau thông qua field MaSV của mỗi table (đây là quan hệ 1 – n). Hay nói cách khác, ràng buộc tham chiếu đã được tạo giữa hai table (từ table DiemSV đến table HSSV).
  • Với ràng buộc này thì, việc người tiêu dùng vô tình hay cố ý tàn phá những liên kết sẽ bị phòng ngừa. và, người tiêu dùng cũng không hề nhập vào cột khóa ngoại một giá trị mà giá trị đấy không hiện hữu ở cột khóa chính mà khóa này trỏ tới (không thể nhập điểm cho một học viên, vào table DiemSV, mà mã của họ không Open ở cột MaSV ở table HSSV).
  • Xem thêm:  Business Intelligence là gì? Các thuật ngữ thông dụng mà doanh nghiệp đang dùng

3 Thiết lập khóa chủ yếu

  • Để kiến thiết xây dựng khóa chủ yếu ngay trong thời hạn kiến thiết xây dựng table ta có năng lực sử dụng câu lệnh SQL Create Table như sau:
    1

    2 .

    3 .

    4

    5

    6

    7

    8 .

    9

    10
    11

    (

    MaSV varchar (8 .) NOT NULL,

    Holot varchar(2), Ten varchar(8)và

    NgaySinh Datevà MaLop varchar(8) NOT NULL,

    Lienhe varchar(11) NOT NULL,

    PRIMARY KEY ( MaSV )
    ) ;

  • Câu lệnh này dùng để tạo table HSSV, đồng thời chỉ định field MaSV làm khóa chính cho nó.
  • Tại trường hợp khóa chủ yếu được sinh ra từ nhiều field , ta cần đặt tên cho ràng buộc khóa này thì có năng lực sử dụng câu lệnh Create Table như sau:
    1

    2 .

    3 .

    4

    5 .

    6

    7

    8

    9 .

    10
    11

    (

    MaSV varchar (8 .) NOT NULLvà

    Holot varchar(2 .), Ten varchar(8),

    NgaySinh DATE, MaLop varchar(8) NOT NULLvà

    Lienhe varchar(11) NOT NULLvà

    CONSTRAINT Ma PRIMARY KEY (MaSV, MaLop)

    ) ;

  • Vậy khóa chính table này được xây dựng từ hai field: MaSV , MaLop và tên của ràng buộc này là Ma.

3 ..1 Xây dựng khóa chủ yếu cho table đã tạo

  • sử dụng câu lệnh sau:ALTER TABLE HSSV ADD PRIMARY KEY (MaSV)
  • Hoặc:ALTER TABLE HSSV ADD CONSTRAINT Ma PRIMARY KEY (MaSV, MaLop)
  • rõ rệt, trong trường hợp này những field MaSV, MaLop phải đã được khai báo ràng buộc NOT NULL (trng khi thiết kế xây dựng table).

3 ..2 Xóa khóa chủ yếu

  • sử dụng câu lệnh sau:ALTER TABLE HSSV DROP PRIMARY KEY;
  • Hoặc:ALTER TABLE HSSV DROP CONSTRAINT Ma

4 Thiết lập khóa ngoại

  • Để thiết kế xây dựng khóa ngoại ngay trong khi thiết kế xây dựng table ta hoàn toàn có thể sử dụng câu lệnh SQL Create Table như sau:
    1

    2

    3 .

    4 .

    5 .

    6

    7

    8 .

    9

    Xem thêm: Downtown Là Gì? Uptown Là Gì ? Uptown Là Gì? Phân Biệt Downtown Và Uptown

    (

    STT INT NOT NULL AUTO_INCREMENTvà

    MaSV varchar(8) NOT NULLvà

    MonHoc varchar(6) NOT NULLvà

    HKI, HKII, ĐTB_Nam INT,

    PRIMARY KEY (STT)và

    FOREIGN KEY ( MaSV ) REFERENCES HSSV ( MaSV )
    )

  • Câu lệnh này: tạo table DiemSV gồm 6 . field, trong đó khóa chính là field STT , field khóa ngoại là MaSV. Table này thiết kế xây dựng ràng buộc tham chiếu đến table HSSV thông qua field MaSV.
  • Dạng khác:
    1

    2

    3

    4 .

    5 .

    6 .

    7 .

    8

    9 .

    10
    11
    12

    (

    STT INT NOT NULL AUTO_INCREMENT,

    MaSV varchar(8 .) NOT NULL,

    MonHoc varchar(6 .) NOT NULL,

    HKI, HKIIvà ĐTB_Nam INT,

    PRIMARY KEY (STT),

    CONSTRAINT Ma FOREIGN KEY ( MaSV ) REFERENCES HSSV ( MaSV )
    )

  • Khi cần đặt tên cho ràng buộc khóa ngoại , khóa ngoại được tạo ra từ nhiều field thì ta phải dùng câu lệnh Create Table theo dạng này.

4 ..1 thiết kế xây dựng khóa ngoại cho table đã tạo

  • Ví dụ:
    1

    2 .

    3

    4

    5

    6 .

    REFERENCES HSSV ( MaSV )

  • Hoặc:
    1

    2

    3

    4

    5 .

    6

    FOREIGN KEY ( MaSV ) REFERENCES HSSV ( MaSV )

  • Câu lệnh này được sử dụng trong trường hợp cần đặt tên cho ràng buộc khóa ngoại và khóa ngoại được tạo ra từ nhiều field.

4.2 Xóa khóa ngoại

  • Ví dụ:ALTER TABLE DiemSV DROP FOREIGN KEY Ma
  • Câu lệnh MySQL ALTER được sử dụng rất phổ cập trong những trường hợp đổi khác tên của table, tên của field hoặc thêm/xóa những field tại một table nào đó. cho nên vì thế, chúng ta sẽ quay lại câu lệnh này ở những bài sau.

5 Bảng so sánh

Khóa chính Khóa ngoại
Khóa chuẩn xác định độc nhất một bản ghi tại bảng. Khóa ngoại là một trường tại bảng , là khóa chủ yếu trong một bảng khác.
Khóa chủ yếu không chấp thuận đồng ý những giá trị rỗng. Khóa ngoại hoàn toàn có thể chấp thuận đồng ý nhiều giá trị rỗng.
Theo mặc định, khoá chủ yếu là chỉ mục được nhóm , dữ liệu trong bảng cơ sở dữ liệu được tổ chức theo thứ tự của dãy chỉ mục nhóm. Khóa ngoại không tự động tạo ra một chỉ mục, group hoặc không group. Bạn có năng lực tự tạo một chỉ mục trên khoá ngoại.
Chúng ta chỉ hoàn toàn có thể có một khóa chủ yếu trong một bảng. Chúng ta hoàn toàn có thể có nhiều khoá ngoại trong một bảng.

6 Tóm lại

  • Chúng ta chỉ sử dụng những cách trên để thiết kế xây dựng khóa chủ yếu trong MySQL , không những có ở MySQL mà ở SQL Server cũng có cú pháp tựa như vì chúng đều dùng ngôn ngữ T-SQL.
  • thường thì khi làm việc với những vận dụng web thì ta ít khi dùng khóa ngoại bởi vì sẽ rất chậm, vì vậy người ta sẽ cố gắng nỗ lực thiết kế CSDL 

    làm thế nào

    Xem thêm: Nước tiểu – Wikipedia tiếng Việt

     tốt nhất để không hiện hữu khóa ngoại.

  • Có thể bạn quan tâm:  Các thuật toán sắp xếp phổ biến nhất hiện nay 2020

Minh Nguyệt_ tổng hợp ( tìm hiểu thêm techtalk.vn/ )

[ad_2]

Related Posts

Trò chơi mua sắm 6

[ad_1] Một ngày đi Shopping 6 thuộc dòng game thời trang, nơi mà các bạn nhỏ sẽ phải bận rộn với công việc tìm kiếm và mua…

Trò chơi mua sắm 4

[ad_1] Một ngày đi Shopping 4 là dòng game thời trang, nơi mà chúng ta có nhiệm vụ và trách nhiệm mua sắm những món đồ mà…

Trò chơi mua sắm 3

[ad_1] Một ngày đi Shopping 3 thuộc dòng game thời trang, với nhiệm vụ mua sắm và tìm kiếm những món đồ mà các bạn đã được…

Game một ngày đi Shopping 2: Trò chơi đi Shopping

[ad_1] Một ngày đi Shopping 2 thuộc dòng game thời trang, khi mà các bạn nhỏ tiến hành đi mua sắm thả ga những món đồ mà…

Trò chơi làm thợ cắt tóc

[ad_1] Hớt tóc thuộc dòng game thời trang, khi mà các bạn sẽ hóa thân thành một thợ cắt tóc chuyên nghiệp nhằm tạo mẫu tóc cho…

Trò chơi bóng rổ Kuroko

[ad_1] Kuroko thuộc dòng game thể thao, hay chúng ta còn được biết đến với cái tên bóng rổ Kuroko hay đội bóng rổ Kuroko cực kỳ…

Leave a Reply