Sqlserver
 sql >> Cơ Sở Dữ Liệu >  >> RDS >> Sqlserver

SQL Server 2016:Tạo mối quan hệ

Bạn có thể tạo mối quan hệ giữa các bảng bằng cách sử dụng GUI hoặc tập lệnh SQL. Ở đây, tôi trình bày cả hai phương pháp.

Trong thiết kế cơ sở dữ liệu quan hệ, một quan hệ là nơi hai hoặc nhiều bảng được liên kết với nhau vì chúng chứa dữ liệu liên quan. Điều này cho phép người dùng chạy các truy vấn cho dữ liệu liên quan trên nhiều bảng.

Tại đây, chúng ta sẽ tạo các mối quan hệ sau.

Phương pháp

Đây là cách chúng tôi sẽ làm điều đó:

  • Chúng tôi sẽ sử dụng SQL để tạo Album bảng và một mối quan hệ.
  • Chúng tôi sẽ sử dụng GUI để tạo mối quan hệ khác.

Bằng cách đó, bạn sẽ thấy cả hai phương pháp tạo mối quan hệ.

Chúng tôi chỉ cần tạo một bảng vì chúng tôi đã tạo hai trong số các bảng này trước đó trong hướng dẫn này ( Nghệ sĩ bảng thông qua GUI và Thể loại bảng sử dụng SQL).

Tạo mối quan hệ bằng SQL

Mở cửa sổ truy vấn mới trong SSMS và chạy mã sau:

CREATE TABLE Albums
 (
  AlbumId int IDENTITY(1,1) NOT NULL PRIMARY KEY,
  AlbumName nvarchar(255) NOT NULL,
  ReleaseDate date NOT NULL,
  ArtistId int NOT NULL,
  GenreId int NOT NULL
  
  CONSTRAINT FK_Albums_Artists FOREIGN KEY (ArtistId)     
    REFERENCES dbo.Artists (ArtistId)     
    ON DELETE NO ACTION    
    ON UPDATE NO ACTION    
);

Phần đầu tiên của câu lệnh đó tạo ra bảng.

Phần cuối cùng xác định mối quan hệ. Phần này:

CONSTRAINT FK_Albums_Artists FOREIGN KEY (ArtistId)     
    REFERENCES dbo.Artists (ArtistId)     
    ON DELETE NO ACTION    
    ON UPDATE NO ACTION

Hai dòng đầu tiên tạo ra mối quan hệ. Chúng tạo ra một ràng buộc khóa ngoại giữa Albums.ArtistId và cột Artists.ArtistId cột.

Hai dòng cuối cùng chỉ định những gì SQL Server phải làm nếu ai đó cố gắng xóa hoặc cập nhật bản ghi mẹ đang được tham chiếu bởi bản ghi trong bảng con. Trong trường hợp này, NO ACTION có nghĩa là xóa / cập nhật sẽ không tiếp tục. Người dùng sẽ chỉ gặp lỗi.

Bạn có thể thay đổi cài đặt này thành ON DELETE CASCADE nếu bạn muốn có thể xóa cha và con trong một lần (tức là quá trình xóa sẽ phân tầng từ cha sang con). Logic tương tự cũng áp dụng cho các bản cập nhật, bằng cách sử dụng ON UPDATE CASADE .

NO ACTION là giá trị mặc định, vì vậy chúng tôi có thể đã thực hiện mà không có hai dòng mã cuối cùng đó. Tuy nhiên, tôi đã bao gồm nó, vì đó là một yếu tố quan trọng cần nghĩ đến khi tạo các ràng buộc khóa ngoại.

Ràng buộc khóa ngoại là gì?

Một ràng buộc khóa ngoại xác định mối quan hệ giữa bảng này và bảng khác. Khi bạn tạo ràng buộc khóa ngoại, bạn tạo nó dựa trên một cột cụ thể trong con bảng, để tham chiếu một cột cụ thể trong cha bảng.

Điều này làm cho cột trong bảng con trở thành khóa ngoại . Ràng buộc đảm bảo rằng bất kỳ giá trị nào đi vào cột (khóa ngoại) này đều tương ứng với một giá trị trong cột khóa chính của bảng mẹ. Nếu ai đó cố gắng nhập một giá trị không tương ứng với một giá trị trong cột khóa chính của bảng mẹ, SQL Server sẽ thông báo lỗi.

Điều này giúp thực thi tính toàn vẹn của tham chiếu. Nó ngăn chúng ta có các bản ghi mồ côi (các bản ghi con không có cha mẹ). Hoặc trong ví dụ của chúng tôi, các album không được liên kết với bất kỳ nghệ sĩ nào.

Tạo mối quan hệ qua GUI

Bây giờ chúng ta sẽ tạo mối quan hệ khác thông qua GUI của SQL Server Mangement Studio.

Sẽ dễ dàng hơn nếu đưa điều này vào tập lệnh trên nhưng tôi muốn chứng minh cả hai phương pháp tạo mối quan hệ.

  1. Mở Bảng con trong Trình thiết kế Bảng

    Nhấp chuột phải vào bảng con ( Album mới được tạo của chúng tôi bảng) và chọn Thiết kế từ menu ngữ cảnh.

    Nếu bạn không thể thấy bảng mới được tạo của mình trong Trình duyệt Đối tượng, bạn có thể cần phải làm mới Trình duyệt Đối tượng.

    Nhấp chuột phải vào Bảng và chọn Làm mới .

  2. Mở Hộp thoại Quan hệ Đối ngoại

    Chọn Trình thiết kế bảng> Mối quan hệ ... từ menu trên cùng.

  3. Thêm mối quan hệ

    Hộp thoại Mối quan hệ chính đối ngoại sẽ hiển thị cho bạn bất kỳ mối quan hệ hiện có nào cho bảng. Chúng ta có thể thấy mối quan hệ mà chúng ta đã thiết lập ngay trước đó, khi chúng ta tạo bảng.

    Nhấp vào Thêm để thêm một mối quan hệ khác.

  4. Chọn Bảng và Đặc tả Cột

    Một mối quan hệ mới xuất hiện phía trên mối quan hệ khác trong Mối quan hệ đã chọn danh sách có tên là FK_Albums_Albums .

    Đảm bảo rằng mối quan hệ mới được chọn, hãy nhấp vào Đặc tả Bảng và Cột trong ngăn bên phải. Dấu chấm lửng xuất hiện ở bên phải thuộc tính.

    Nhấp vào dấu ba chấm ( ... ) để khởi chạy hộp thoại Bảng và Cột.

  5. Hộp thoại Bảng và Cột

    Tại đây, bạn chọn bảng khóa chính ở ngăn bên trái và bảng khóa ngoại ở bên phải.

    • Trong Bảng khóa chính: chọn Thể loại dưới dạng bảng và GenreId như một cột.
    • Dưới Bảng khóa ngoại: chọn Album dưới dạng bảng và GenreId như một cột.

    Nhấp vào OK .

    SQL Server sẽ đề xuất một tên cho mối quan hệ. Bạn có thể chỉnh sửa điều này nếu bạn muốn. Nếu không, hãy để nguyên.

  6. Mối quan hệ

    Mối quan hệ của bạn bây giờ sẽ được hiển thị chính xác trong hộp thoại Mối quan hệ chính đối ngoại.

    Nhấp vào Đóng .

  7. Lưu giữ mối quan hệ

    Mối quan hệ của bạn sẽ không được lưu cho đến khi bạn lưu bảng. Khi bạn lưu bảng, bạn có thể sẽ nhận được cảnh báo rằng hai bảng sẽ được lưu. Điều này được mong đợi, vì mối quan hệ ảnh hưởng đến hai bảng.

    Nhấp vào để lưu cả hai bảng.

    Nếu bạn chọn Table Designer> Relationships ... đối với bảng mẹ, bạn cũng sẽ thấy mối quan hệ ở đó.


  1. Database
  2.   
  3. Mysql
  4.   
  5. Oracle
  6.   
  7. Sqlserver
  8.   
  9. PostgreSQL
  10.   
  11. Access
  12.   
  13. SQLite
  14.   
  15. MariaDB
  1. Cách hoạt động của câu lệnh IF trong SQL Server

  2. Đánh giá thiết lập giám sát hiệu suất cơ sở dữ liệu của bạn

  3. Lấy phần bên trái của chuỗi trong SQL Server (T-SQL)

  4. Sự khác biệt giữa VARCHAR và NVARCHAR trong máy chủ SQL - Hướng dẫn SQL Server / T-SQL Phần 32

  5. Làm thế nào để kiểm tra kết quả công việc gói SSIS sau khi nó đã hoàn thành việc thực thi?