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

Các ràng buộc SQL là gì và các kiểu khác nhau của nó?

Do lượng lớn dữ liệu có trong cơ sở dữ liệu, nên điều rất quan trọng đối với tất cả chúng ta là tăng độ chính xác và độ tin cậy của dữ liệu có trong cơ sở dữ liệu. Chà, các ràng buộc SQL được sử dụng để duy trì như cũ. Có thể sử dụng các loại ràng buộc khác nhau. Trong bài viết này, tôi sẽ thảo luận về những ràng buộc đó với các ví dụ.

Các chủ đề sau sẽ được đề cập trong bài viết này:

  1. Ràng buộc là gì?
  2. Các ràng buộc có sẵn trong SQL:
      • Ràng buộc KHÔNG ĐẦY ĐỦ
      • Ràng buộc DUY NHẤT
      • Ràng buộc KIỂM TRA
      • Ràng buộc DEFAULT
      • Ràng buộc INDEX

Các ràng buộc SQL là gì?

Các Ràng buộc trong SQL được sử dụng để chỉ định các quy tắc cho dữ liệu trong bảng. Chúng được sử dụng để giới hạn loại dữ liệu nào phải được lưu trữ trong cơ sở dữ liệu và nhằm mục đích tăng độ chính xác và độ tin cậy của dữ liệu được lưu trữ trong cơ sở dữ liệu.

Vì vậy, các ràng buộc đảm bảo rằng không có bất kỳ vi phạm nào về giao dịch dữ liệu, nhưng vẫn chưa có bất kỳ vi phạm nào được phát hiện; hành động bị chấm dứt.

Có hai loại ràng buộc có thể được áp dụng:

  1. Ràng buộc cấp cột - Những ràng buộc này được áp dụng cho một cột duy nhất
  2. Ràng buộc cấp bảng - Những ràng buộc này là ứng dụng cho bảng hoàn chỉnh

Tiếp tục trong bài viết này, chúng ta hãy hiểu các loại ràng buộc khác nhau. Ngoài ra, tôi sẽ xem xét bảng sau để giúp bạn hiểu rõ hơn.

Các ràng buộc SQL khác nhau có sẵn:

Ràng buộc KHÔNG ĐẦY ĐỦ

Ràng buộc NOT NULL đảm bảo rằng một cột không thể có giá trị NULL. Bạn có thể sử dụng ràng buộc NOT NULL trong khi tạo cơ sở dữ liệu bảng hoặc trong khi sửa đổi nó.

Ví dụ

Ràng buộc KHÔNG ĐẦY ĐỦ khi TẠO BẢNG

Viết truy vấn để tạo bảng Sinh viên ở trên, trong đó StudentID và StudentName không được NULL.

CREATE TABLE Students( 
StudentID int NOT NULL, 
StudentName varchar(255) NOT NULL, 
Age int, City varchar(255) );

Ràng buộc NOT NULL trên ALTER TABLE

Viết truy vấn để thay đổi bảng Sinh viên ở trên, trong đó cột DOB mới phải được thêm vào và cột này không được có bất kỳ giá trị NULL nào.

ALTER TABLE Students ADD COLUMN DOB year NOT NULL;

Tiếp tục trong bài viết này về Ràng buộc SQL, hãy để chúng tôi hiểu cách sử dụng ràng buộc DUY NHẤT.

Ràng buộc DUY NHẤT

Ràng buộc DUY NHẤT được sử dụng để đảm bảo rằng tất cả các giá trị trong một cột là duy nhất. Bạn có thể sử dụng ràng buộc DUY NHẤT trên nhiều cột hoặc trên một cột duy nhất với. Ngoài ra, bạn có thể tiếp tục và sử dụng ràng buộc DUY NHẤT để sửa đổi các bảng hiện có.

Lưu ý:

  1. Trong khi tạo bảng, ràng buộc CHÍNH CHÍNH sẽ tự động có một ràng buộc DUY NHẤT, để đảm bảo tính duy nhất của một cột.
  2. Một bảng có thể có nhiều ràng buộc DUY NHẤT nhưng có thể có một ràng buộc khóa chính duy nhất.

Ví dụ:

Ràng buộc DUY NHẤT khi TẠO BẢNG

Viết truy vấn để tạo bảng Sinh viên, với các cột StudentID, StudentName, Age và City. Ở đây, StudentID phải là duy nhất cho mỗi và mọi bản ghi.

CREATE TABLE Students ( 
StudentID int NOT NULL UNIQUE, 
StudentName varchar(255) 
NOT NULL, Age int, City varchar(255) );

Đặt tên cho ràng buộc DUY NHẤT trên nhiều cột

Để đặt tên cho một ràng buộc duy nhất và xác định nó cho nhiều cột, bạn có thể tham khảo ví dụ sau:

Viết truy vấn để tạo bảng Sinh viên, với các cột StudentID, StudentName, Age và City. Ở đây, StudentID và StudentName phải là duy nhất cho mỗi và mọi bản ghi.

CREATE TABLE Students ( 
StudentID int NOT NULL, 
StudentName varchar(255) NOT NULL, 
Age int, 
City varchar(255) CONSTRAINT Stu_Example 
UNIQUE (StudentID,StudentName) );

Ở đây, Stu_Example là tên được đặt cho ràng buộc duy nhất được áp dụng trên StudentID và StudentName.

Ràng buộc DUY NHẤT trên ALTER TABLE

Viết truy vấn để thay đổi bảng Students, trong đó ràng buộc DUY NHẤT phải được thêm vào cột StudentID.

ALTER TABLE Students ADD UNIQUE (StudentID);

Tương tự, nếu bạn muốn sử dụng ràng buộc DUY NHẤT trên nhiều cột và cũng đặt tên cho nó, bạn có thể viết một truy vấn như sau:

ALTER TABLE Students ADD CONSTRAINT Stu_Example UNIQUE (StudentID,StudentName);

Bỏ một ràng buộc DUY NHẤT

Để loại bỏ ràng buộc được chỉ định trên một cột, bạn có thể sử dụng quy ước đặt tên mà bạn có thể đã đề cập trong khi thêm ràng buộc.

Ví dụ:nếu chúng ta phải viết một truy vấn để loại bỏ ràng buộc DUY NHẤT mà chúng ta đã tạo ở trên, bạn có thể viết truy vấn như sau:

ALTER TABLE Students DROP CONSTRAINT Stu_Example;

Tiếp theo trong bài viết này về Ràng buộc SQL, hãy để chúng tôi hiểu cách sử dụng ràng buộc CHECK.

Ràng buộc KIỂM TRA

Ràng buộc CHECK đảm bảo rằng tất cả các giá trị trong một cột thỏa mãn một điều kiện cụ thể.

Ví dụ:

Ràng buộc KIỂM TRA trên TẠO BẢNG

Viết truy vấn để tạo bảng Sinh viên, với các cột StudentID, StudentName, Age và City. Ở đây, thành phố phải là MUmbai.

CREATE TABLE Students ( 
StudentID int NOT NULL UNIQUE, 
StudentName varchar(255) NOT NULL, 
Age int, 
City varchar(255)CHECK (City==’Mumbai’) );

Ràng buộc KIỂM TRA trên nhiều cột

Để sử dụng ràng buộc kiểm tra trên nhiều cột, bạn có thể viết một truy vấn như sau:

Viết truy vấn để tạo bảng Sinh viên, với các cột StudentID, StudentName, Age và City. Ở đây, Thành phố phải là Mumbai, và độ tuổi của học sinh phải> 19.

CREATE TABLE Students ( 
StudentID int NOT NULL, 
StudentName varchar(255) NOT NULL, 
Age int, 
City varchar(255)CHECK (City==’Mumbai’ AND Age>19));

Tương tự, bạn cũng có thể sử dụng ràng buộc KIỂM TRA với lệnh ALTER TABLE. Tham khảo bên dưới.

Ràng buộc KIỂM TRA trên ALTER TABLE

Viết truy vấn để thay đổi bảng Sinh viên, trong đó ràng buộc KIỂM TRA phải được thêm vào cột Thành phố. Ở đây, thành phố phải là Mumbai.

ALTER TABLE Students ADD CHECK (City=='Mumbai');

Tương tự, nếu bạn muốn sử dụng ràng buộc KIỂM TRA bằng cách đặt tên cho nó, bạn có thể viết một truy vấn như sau:

ALTER TABLE Students ADD CONSTRAINT StuCheckExample CHECK (City=='Mumbai');

Bỏ ràng buộc KIỂM TRA

Để loại bỏ ràng buộc được chỉ định trên một cột, bạn có thể sử dụng quy ước đặt tên mà bạn có thể đã đề cập trong khi thêm ràng buộc.

Ví dụ:nếu chúng ta phải viết một truy vấn để loại bỏ ràng buộc KIỂM TRA mà chúng ta đã tạo ở trên, bạn có thể viết truy vấn như sau:

ALTER TABLE Students DROP CONSTRAINT StuCheckExample;

Tiếp tục trong bài viết này về Ràng buộc SQL, hãy để chúng tôi hiểu cách sử dụng ràng buộc DEFAULT.

Ràng buộc DEFAULT

Ràng buộc DEFAULT được sử dụng để đề cập đến một tập hợp các giá trị mặc định cho một cột khi không có giá trị nào được chỉ định. Tương tự như các ràng buộc khác, chúng ta có thể sử dụng ràng buộc này trên lệnh bảng CREATE và ALTER.

Ví dụ

Viết truy vấn để tạo bảng Sinh viên, với các cột StudentID, StudentName, Age và City. Ngoài ra, khi không có giá trị nào được chèn vào cột Thành phố, Delhi tự động phải được đưa vào.

CREATE TABLE Students ( 
StudentID int NOT NULL, 
StudentName varchar(255) NOT NULL, 
Age int, 
City varchar(255)DEFAULT ‘Delhi’);

Ràng buộc DEFAULT trên ALTER TABLE

Để sử dụng ràng buộc DEFAULT với lệnh ALTER TABLE, bạn có thể viết một truy vấn như sau:

ALTER TABLE Students ADD CONSTRAINT StuDefauExample DEFAULT 'Mumbai' FOR City;

Bỏ ràng buộc DEFAULT

Để loại bỏ ràng buộc DEFAULT, bạn có thể sử dụng lệnh ALTER TABLE như sau:

ALTER TABLE Students ALTER COLUMN City DROP DEFAULT;

Tiếp theo trong bài viết này về Ràng buộc SQL, hãy để chúng tôi hiểu cách sử dụng ràng buộc INDEX.

Ràng buộc INDEX

Ràng buộc INDEX được sử dụng để tạo các chỉ mục trong bảng, Với sự trợ giúp của các chỉ mục này, bạn có thể tạo và truy xuất dữ liệu từ cơ sở dữ liệu rất nhanh chóng.

Cú pháp

--Create an Index where duplicate values are allowed
CREATE INDEX IndexName
ON TableName (ColumnName1, ColumnName2, ...ColumnName(N));

--Create an Index where duplicate values are not allowed
CREATE UNIQUE INDEX IndexName
ON TableName (ColumnName1, ColumnName2, ...ColumnName(N));

Ví dụ

Viết truy vấn để tạo chỉ mục với tên Stu_index trên bảng Sinh viên lưu trữ Tên sinh viên.

CREATE INDEX Stu_index ON Students (StudentName);

Tương tự, để xóa một chỉ mục khỏi bảng, bạn phải sử dụng lệnh DROP với tên của chỉ mục.

DROP INDEX Students.Stu_index;

Ngoài các ràng buộc trên, KHÓA CHÍNH và KHÓA NGOẠI LỆ cũng được coi là các ràng buộc. Ràng buộc PRIMARY KEY được sử dụng để xác định các ràng buộc về cách một cột cụ thể xác định duy nhất mọi bộ giá trị. Ràng buộc NGOẠI KHÓA được sử dụng để liên kết hai bảng dựa trên mối quan hệ.

Với điều này, chúng ta kết thúc bài viết này. Tôi hy vọng bạn đã hiểu cách sử dụng các ràng buộc khác nhau có trong cơ sở dữ liệu. Nếu bạn muốn tìm hiểu thêm về MySQL và làm quen với cơ sở dữ liệu quan hệ nguồn mở này, hãy xem Đào tạo chứng chỉ MySQL DBA của chúng tôi đi kèm với đào tạo trực tiếp do người hướng dẫn và trải nghiệm dự án thực tế. Khóa đào tạo này sẽ giúp bạn hiểu sâu về MySQL và giúp bạn đạt được thành thạo về chủ đề này.

Bạn có câu hỏi cho chúng tôi? Vui lòng đề cập đến nó trong phần nhận xét của bài viết này về SQL Constraints và tôi sẽ liên hệ lại với bạn.


  1. Database
  2.   
  3. Mysql
  4.   
  5. Oracle
  6.   
  7. Sqlserver
  8.   
  9. PostgreSQL
  10.   
  11. Access
  12.   
  13. SQLite
  14.   
  15. MariaDB
  1. MuleSoft đưa GraphQL vào Tích hợp API nâng cao

  2. Khôi phục bản sao lưu cơ sở dữ liệu trong OpenCart 1.5

  3. Đặt hàng có điều kiện bởi

  4. Trực quan hóa dữ liệu bằng Apache Zeppelin - Hướng dẫn

  5. Chỉ mục trong SQL là gì?