Tạo ràng buộc MySQL

Ràng buộc trong MySQL được sử dụng để chỉ định quy tắc cho phép hoặc hạn chế giá trị/dữ liệu nào sẽ được lưu trữ trong bảng. Chúng cung cấp một phương pháp phù hợp để đảm bảo tính chính xác và toàn vẹn của dữ liệu bên trong bảng. Nó cũng giúp giới hạn loại dữ liệu sẽ được chèn vào bên trong bảng. Nếu có bất kỳ gián đoạn nào xảy ra giữa ràng buộc và hành động dữ liệu, thì hành động đó không thành công

Các loại ràng buộc MySQL

Các ràng buộc trong MySQL được phân thành hai loại

  1. Ràng buộc mức cột. Các ràng buộc này chỉ được áp dụng cho một cột giới hạn loại dữ liệu cột cụ thể
  2. Ràng buộc cấp độ bảng. Các ràng buộc này được áp dụng cho toàn bộ bảng giới hạn loại dữ liệu cho toàn bộ bảng

Cách tạo ràng buộc trong MySQL

Chúng ta có thể xác định các ràng buộc trong một bảng được tạo bằng cách sử dụng câu lệnh CREATE TABLE. MySQL cũng sử dụng câu lệnh ALTER TABLE để chỉ định các ràng buộc trong trường hợp lược đồ bảng hiện có

cú pháp

Sau đây là cú pháp để tạo một ràng buộc trong bảng

Các ràng buộc được sử dụng trong MySQL

Sau đây là các ràng buộc phổ biến nhất được sử dụng trong MySQL

  • CÓ GIÁ TRỊ
  • KIỂM TRA
  • MẶC ĐỊNH
  • KHÓA CHÍNH
  • AUTO_INCREMENT
  • DUY NHẤT
  • MỤC LỤC
  • ENUM
  • KHÓA NGOÀI

Hãy để chúng tôi thảo luận chi tiết về từng ràng buộc này

Ràng buộc NOT NULL

Ràng buộc này xác định rằng cột không được có giá trị NULL hoặc rỗng. Câu lệnh dưới đây tạo một bảng có ràng buộc NOT NULL

Thực hiện các truy vấn được liệt kê bên dưới để hiểu cách thức hoạt động của nó

đầu ra

Tạo ràng buộc MySQL

Trong hình trên, chúng ta có thể thấy rằng truy vấn INSERT đầu tiên thực thi chính xác, nhưng câu lệnh thứ hai không thành công và đưa ra lỗi cho biết cột LastName không thể rỗng

Hạn chế duy nhất

Ràng buộc này đảm bảo rằng tất cả các giá trị được chèn vào cột sẽ là duy nhất. Nó có nghĩa là một cột không thể lưu trữ các giá trị trùng lặp. MySQL cho phép chúng ta sử dụng nhiều hơn một cột với ràng buộc ĐỘC ĐÁO trong một bảng. Câu lệnh dưới đây tạo một bảng có ràng buộc ĐỘC ĐÁO

Thực hiện các truy vấn được liệt kê bên dưới để hiểu cách thức hoạt động của nó

đầu ra

Trong kết quả bên dưới, chúng ta có thể thấy rằng truy vấn INSERT đầu tiên thực thi chính xác, nhưng câu lệnh thứ hai không thành công và đưa ra lỗi cho biết. Sao chép mục nhập 'Cantabil' cho khóa BrandName

Tạo ràng buộc MySQL

KIỂM TRA Ràng buộc

Nó kiểm soát giá trị trong một cột cụ thể. Nó đảm bảo giá trị được chèn vào cột phải thỏa mãn điều kiện cho trước. Nói cách khác, nó xác định xem giá trị được liên kết với cột có hợp lệ hay không với điều kiện đã cho

Trước phiên bản 8. 0. 16, MySQL sử dụng phiên bản giới hạn của cú pháp ràng buộc này, như được đưa ra bên dưới

Sau phiên bản 8. 0. 16, MySQL sử dụng các ràng buộc KIỂM TRA cho tất cả các công cụ lưu trữ tôi. e. , ràng buộc bảng và ràng buộc cột, như được đưa ra dưới đây

Hãy cho chúng tôi hiểu cách hoạt động của ràng buộc CHECK trong MySQL. Ví dụ: câu lệnh sau tạo bảng "Người" chứa ràng buộc KIỂM TRA trên cột "Tuổi". Ràng buộc CHECK đảm bảo giá trị được chèn vào cột phải thỏa mãn điều kiện cho trước là Tuổi của một người phải lớn hơn hoặc bằng 18

Thực hiện các truy vấn được liệt kê để chèn các giá trị vào bảng

đầu ra

Trong kết quả bên dưới, chúng ta có thể thấy rằng truy vấn INSERT đầu tiên thực hiện thành công, nhưng câu lệnh thứ hai không thành công và đưa ra lỗi cho biết. Ràng buộc CHECK bị vi phạm đối với khóa Tuổi

Tạo ràng buộc MySQL

Ràng buộc MẶC ĐỊNH

Ràng buộc này được sử dụng để đặt giá trị mặc định cho cột cụ thể mà chúng tôi chưa chỉ định bất kỳ giá trị nào. Nó có nghĩa là cột phải chứa một giá trị, bao gồm cả NULL

Ví dụ: câu lệnh sau tạo bảng "Người" chứa ràng buộc MẶC ĐỊNH trên cột "Thành phố". Nếu chúng tôi chưa chỉ định bất kỳ giá trị nào cho cột Thành phố, nó sẽ chèn giá trị mặc định

Thực hiện các truy vấn được liệt kê để chèn các giá trị vào bảng

đầu ra

Trong kết quả bên dưới, chúng ta có thể thấy rằng câu lệnh chèn đầu tiên chứa tất cả các trường đã thực thi thành công, trong khi câu lệnh chèn thứ hai không chứa cột "Thành phố" nhưng cũng được thực thi thành công. Đó là bởi vì nó có một giá trị mặc định

Tạo ràng buộc MySQL

Bây giờ, thực hiện câu lệnh sau để xác thực giá trị mặc định cho cột thứ 4

Chúng ta có thể thấy rằng nó hoạt động hoàn hảo. Nó có nghĩa là giá trị mặc định "New York" được lưu trữ tự động trong cột Thành phố

Tạo ràng buộc MySQL

Ràng buộc khóa chính

Ràng buộc này được sử dụng để xác định duy nhất từng bản ghi trong một bảng. Nếu cột chứa các ràng buộc về khóa chính, thì cột đó không được để trống hoặc rỗng. Một bảng có thể có các cột trùng nhau, nhưng nó chỉ có thể chứa một khóa chính. Nó luôn chứa giá trị duy nhất vào một cột

Câu lệnh sau tạo một bảng "Person" và giải thích rõ hơn việc sử dụng khóa chính này

Tiếp theo, sử dụng truy vấn chèn để lưu trữ dữ liệu vào bảng

đầu ra

Trong kết quả bên dưới, chúng ta có thể thấy rằng truy vấn chèn đầu tiên thực hiện thành công. Trong khi câu lệnh chèn thứ hai không thành công và đưa ra lỗi cho biết. Sao chép mục nhập cho cột khóa chính

Tạo ràng buộc MySQL

Ràng buộc AUTO_INCREMENT

Ràng buộc này tự động tạo ra một số duy nhất bất cứ khi nào chúng ta chèn một bản ghi mới vào bảng. Nói chung, chúng tôi sử dụng ràng buộc này cho trường khóa chính trong bảng

Chúng ta có thể hiểu nó với ví dụ sau cột id sẽ được tự động tăng trong bảng Animal

Tiếp theo, chúng ta cần chèn các giá trị vào bảng "Động vật"

Bây giờ, thực hiện câu lệnh dưới đây để lấy dữ liệu bảng

đầu ra

Trong kết quả, chúng ta có thể thấy rằng tôi chưa chỉ định bất kỳ giá trị nào cho cột tăng tự động, vì vậy MySQL sẽ tự động tạo một số duy nhất theo thứ tự cho trường này

Tạo ràng buộc MySQL

Ràng buộc ENUM

Kiểu dữ liệu ENUM trong MySQL là một đối tượng chuỗi. Nó cho phép chúng tôi giới hạn giá trị được chọn từ danh sách các giá trị được phép trong đặc tả cột tại thời điểm tạo bảng. Nó là viết tắt của phép liệt kê, có nghĩa là mỗi cột có thể có một trong các giá trị có thể được chỉ định. Nó sử dụng các chỉ mục số (1, 2, 3…) để biểu thị các giá trị chuỗi

Hình minh họa sau đây tạo một bảng có tên là "sơ mi" có ba cột. id, tên và kích thước. Tên cột "kích thước" sử dụng kiểu dữ liệu ENUM chứa kích thước nhỏ, trung bình, lớn và x-lớn

Tiếp theo, chúng ta cần chèn các giá trị vào bảng "Shirts" bằng cách sử dụng các câu lệnh bên dưới

Bây giờ, hãy thực thi câu lệnh SELECT để xem các giá trị được chèn vào bảng

đầu ra

Chúng tôi sẽ nhận được đầu ra sau

Tạo ràng buộc MySQL

Ràng buộc CHỈ SỐ

Ràng buộc này cho phép chúng ta tạo và truy xuất các giá trị từ bảng rất nhanh chóng và dễ dàng. Một chỉ mục có thể được tạo bằng một hoặc nhiều cột. Nó chỉ định ROWID cho mỗi hàng theo cách mà chúng được chèn vào bảng

Hình minh họa sau đây tạo một bảng có tên là "sơ mi" có ba cột. id, tên và kích thước

Tiếp theo, chúng ta cần chèn các giá trị vào bảng "Shirts" bằng cách sử dụng các câu lệnh bên dưới

Bây giờ, thực hiện câu lệnh này để tạo chỉ mục

Chúng ta có thể sử dụng truy vấn bên dưới để lấy dữ liệu bằng cột chỉ mục

đầu ra

Đầu ra sau đây xuất hiện

Tạo ràng buộc MySQL

Ràng buộc khóa ngoại

Ràng buộc này được sử dụng để liên kết hai bảng với nhau. Nó còn được gọi là khóa tham chiếu. Cột khóa ngoại khớp với trường khóa chính của bảng khác. Nó có nghĩa là trường khóa ngoại trong một bảng đề cập đến trường khóa chính của bảng khác

Chúng ta hãy xem xét cấu trúc của các bảng này. Người và Đơn đặt hàng

Cái bàn. người

Cái bàn. đơn đặt hàng

Trong cấu trúc bảng trên, chúng ta có thể thấy rằng trường "Person_ID" trong bảng "Orders" trỏ đến trường "Person_ID" trong bảng "Persons". "Person_ID" là KHÓA CHÍNH trong bảng "Người", trong khi cột "Person_ID" của bảng "Đơn hàng" là KHÓA NGOÀI

Làm cách nào để thêm ràng buộc vào bảng trong MySQL?

Cú pháp cơ bản của ADD CONSTRAINT là. ALTER TABLE table_name ADD CONSTRAINT PRIMARY KEY (col1, col2); Lệnh trên sẽ thêm ràng buộc khóa chính vào bảng table_name.

Làm cách nào để thêm ràng buộc trong MySQL Workbench?

Trong bảng MySQL, mỗi cột phải chứa một giá trị (bao gồm NULL). Trong khi chèn dữ liệu vào bảng, nếu không có giá trị nào được cung cấp cho một cột, thì cột đó sẽ nhận giá trị được đặt là MẶC ĐỊNH. cú pháp. TẠO BẢNG [tên bảng] ([tên cột] [kiểu dữ liệu]([kích thước]) [ràng buộc cột] ….

Làm cách nào để sử dụng các ràng buộc trong MySQL?

Các ràng buộc của MySQL là các câu lệnh có thể được áp dụng ở cấp độ cột hoặc cấp độ bảng để chỉ định các quy tắc cho dữ liệu có thể được nhập vào một cột hoặc bảng dữ liệu, i. Các ràng buộc về cơ bản là các giới hạn hoặc hạn chế đối với loại dữ liệu và do đó chúng đảm bảo độ tin cậy, tính nhất quán và độ chính xác của dữ liệu

Làm cách nào để thay đổi ràng buộc trong MySQL?

Sửa đổi thuộc tính của ràng buộc . ALTER TABLE