là các yêu cầu do người dùng xác định xác định giá trị nào hợp lệ cho một cột hoặc bảng. Bạn có thể coi chúng là những hạn chế bổ sung để thu hẹp các giá trị được chấp nhận nghiêm ngặt hơn so với các loại dữ liệu cho phép
Các ràng buộc cho phép bạn xác định chất lượng mà tất cả các mục phải có, với chính máy chủ thực thi các hạn chế khi nhập hoặc cập nhật dữ liệu. Ví dụ, có thể không hợp lý khi một cột biểu thị điểm sôi của các chất khác nhau thấp hơn điểm đóng băng của nó. Một ràng buộc có thể thực thi loại yêu cầu này, mặc dù các loại sẽ không thể
Trường hợp các ràng buộc được xác định. cột so với ràng buộc bảng
MySQL cho phép bạn tạo các ràng buộc liên kết với một cột cụ thể hoặc với một bảng nói chung
Hầu như tất cả các ràng buộc có thể được sử dụng ở cả hai dạng mà không cần sửa đổi
ConstraintColumnTableCHECKYesYesNOT NULLYesNo*UNIQUEYesYesPRIMARY KEYYesYesFOREIGN KEYNoYes
*.
3 không thể được sử dụng làm ràng buộc bảng. Tuy nhiên, bạn có thể tính gần đúng kết quả bằng cách sử dụng
ERROR 3819 [HY000]: Check constraint 'qualified_borrowers_chk_1' is violated.
4 làm câu lệnh trong ràng buộc bảng
ERROR 3819 [HY000]: Check constraint 'qualified_borrowers_chk_1' is violated.
5
ERROR 3819 [HY000]: Check constraint 'qualified_borrowers_chk_1' is violated.
Hãy xem các ràng buộc cột và bảng khác nhau như thế nào
Ràng buộc cột
Các ràng buộc cột là các ràng buộc gắn liền với một. Chúng được sử dụng để xác định xem một giá trị được đề xuất cho một cột có hợp lệ hay không. Các ràng buộc cột được đánh giá sau khi đầu vào được xác thực theo các yêu cầu loại cơ bản [chẳng hạn như đảm bảo giá trị là một số nguyên cho cột
6]
ERROR 3819 [HY000]: Check constraint 'qualified_borrowers_chk_1' is violated.
Ràng buộc cột là tuyệt vời để thể hiện các yêu cầu được giới hạn trong một trường duy nhất. Họ đính kèm điều kiện ràng buộc trực tiếp vào cột liên quan. Chẳng hạn, chúng ta có thể lập mô hình hạn chế
7 trong bảng
ERROR 3819 [HY000]: Check constraint 'qualified_borrowers_chk_1' is violated.
8 bằng cách thêm một ràng buộc sau tên cột và kiểu dữ liệu
ERROR 3819 [HY000]: Check constraint 'qualified_borrowers_chk_1' is violated.
CREATE TABLE person [
. . .
age INT CHECK [age >= 0],
. . .
];
Đoạn mã này định nghĩa một bảng
8 với một trong các cột là một
ERROR 3819 [HY000]: Check constraint 'qualified_borrowers_chk_1' is violated.
6 được gọi là
ERROR 3819 [HY000]: Check constraint 'qualified_borrowers_chk_1' is violated.
7.
ERROR 3819 [HY000]: Check constraint 'qualified_borrowers_chk_1' is violated.
7 phải lớn hơn hoặc bằng 0. Ràng buộc cột rất dễ hiểu vì chúng được thêm dưới dạng yêu cầu bổ sung vào cột mà chúng ảnh hưởng
ERROR 3819 [HY000]: Check constraint 'qualified_borrowers_chk_1' is violated.
Ràng buộc bảng
Loại ràng buộc khác được gọi là ràng buộc bảng. ràng buộc có thể biểu thị hầu hết mọi hạn chế mà ràng buộc cột có thể, nhưng có thể biểu thị thêm các hạn chế liên quan đến nhiều cột. Thay vì được gắn vào một cột cụ thể, các ràng buộc bảng được định nghĩa là một thành phần riêng biệt của bảng và có thể tham chiếu đến bất kỳ cột nào của bảng
Ràng buộc cột mà chúng ta đã thấy trước đó có thể được thể hiện dưới dạng ràng buộc bảng như thế này
CREATE TABLE person [
. . .
age INT,
. . .
CHECK [age >= 0]
];
Cú pháp cơ bản giống nhau được sử dụng, nhưng ràng buộc được liệt kê riêng. Để tận dụng khả năng của các ràng buộc bảng để đưa ra các hạn chế phức hợp, chúng ta có thể sử dụng toán tử logic
3 để nối nhiều điều kiện từ các cột khác nhau
CONSTRAINT
Ví dụ: trong cơ sở dữ liệu ngân hàng, một bảng có tên
4 có thể cần kiểm tra xem các cá nhân có tài khoản hiện tại hay không và khả năng cung cấp tài sản thế chấp để đủ điều kiện vay. Có thể hợp lý khi bao gồm cả hai điều này trong cùng một lần kiểm tra
CONSTRAINT
CREATE TABLE qualified_borrowers [
. . .
account_number INT,
acceptable_collateral BOOLEAN,
. . .
CHECK [account_number IS NOT NULL AND acceptable_collateral = true]
];
Ở đây, chúng ta sử dụng ràng buộc
5 một lần nữa để kiểm tra xem
ERROR 3819 [HY000]: Check constraint 'qualified_borrowers_chk_1' is violated.
6 có vô hiệu hay không và nhân viên cho vay đã đánh dấu khách hàng là người có tài sản thế chấp chấp nhận được bằng cách đánh dấu vào cột
CONSTRAINT
7. Một ràng buộc bảng là cần thiết vì nhiều cột đang được kiểm tra
CONSTRAINT
Bây giờ là thời điểm tốt để đề cập rằng mặc dù chủ yếu chúng ta sẽ sử dụng lệnh SQL
8 trong các ví dụ này để tạo một bảng mới, nhưng bạn cũng có thể thêm các ràng buộc vào một bảng hiện có với
CONSTRAINT
9. Khi sử dụng
CONSTRAINT
9, các ràng buộc mới khiến các giá trị hiện có trong bảng được kiểm tra theo ràng buộc mới. Nếu các giá trị vi phạm ràng buộc, ràng buộc không thể được thêm vào
CONSTRAINT
Tạo tên cho các ràng buộc
Tên ràng buộc mặc định
Khi bạn tạo các ràng buộc bằng cú pháp trên, MySQL sẽ tự động chọn một tên hợp lý, nhưng mơ hồ. Trong trường hợp của bảng
4 ở trên, MySQL sẽ đặt tên cho ràng buộc là
CONSTRAINT
2
CREATE TABLE qualified_borrowers [
. . .
account_number INT,
acceptable_collateral BOOLEAN,
. . .
CONSTRAINT loan_worthiness CHECK [account_number IS NOT NULL AND acceptable_collateral = true]
];
INSERT INTO qualified_borrowers VALUES [123, false];
ERROR 3819 [HY000]: Check constraint 'qualified_borrowers_chk_1' is violated.
Tên này cung cấp cho bạn thông tin về bảng và loại ràng buộc khi một ràng buộc bị vi phạm. Tuy nhiên, trong trường hợp có nhiều ràng buộc trên một bảng, tên mô tả nhiều hơn sẽ hữu ích để giúp khắc phục sự cố
Tên ràng buộc tùy chỉnh
Bạn có thể tùy ý chỉ định tên cho các ràng buộc của mình bằng cách đặt trước định nghĩa ràng buộc bằng từ khóa
3 theo sau là tên
CREATE TABLE qualified_borrowers [
. . .
account_number INT,
acceptable_collateral BOOLEAN,
. . .
CONSTRAINT loan_worthiness CHECK [account_number IS NOT NULL AND acceptable_collateral = true]
];
Cú pháp cơ bản để thêm một tên tùy chỉnh là thế này
CONSTRAINT
Ví dụ: nếu bạn muốn đặt tên cho ràng buộc trong bảng
4 là
CONSTRAINT
5, thay vào đó, bạn có thể định nghĩa bảng như sau
CREATE TABLE qualified_borrowers [
. . .
account_number INT,
acceptable_collateral BOOLEAN,
. . .
CONSTRAINT loan_worthiness CHECK [account_number IS NOT NULL AND acceptable_collateral = true]
];
CREATE TABLE qualified_borrowers [
. . .
account_number INT,
acceptable_collateral BOOLEAN,
. . .
CONSTRAINT loan_worthiness CHECK [account_number IS NOT NULL AND acceptable_collateral = true]
];
Bây giờ, khi chúng tôi vi phạm một ràng buộc, chúng tôi sẽ nhận được nhãn mô tả hơn
INSERT INTO qualified_borrowers VALUES [123, false];
ERROR 3819 [HY000]: Check constraint 'loan_worthiness' is violated.
Bạn có thể đặt tên cho các ràng buộc cột theo cách tương tự
0
CREATE TABLE teenagers [
. . .
age INT CONSTRAINT is_teenager CHECK [age >= 13 AND age = 0]
];
Chúng tôi có hạn chế kiểm tra một cột để kiểm tra xem
8 có trong năm 2019 không. Sau đó, chúng tôi có một ràng buộc kiểm tra bảng để đảm bảo rằng bộ phim đã nhận đủ phiếu bầu để được đề cử và độ dài đủ điều kiện cho hạng mục "độ dài phim"
CREATE TABLE qualified_borrowers [
. . .
account_number INT,
acceptable_collateral BOOLEAN,
. . .
CONSTRAINT loan_worthiness CHECK [account_number IS NOT NULL AND acceptable_collateral = true]
];
Khi đánh giá các ràng buộc kiểm tra, các giá trị chấp nhận được đánh giá là đúng. Nếu các giá trị của bản ghi mới đáp ứng tất cả các yêu cầu và ràng buộc về loại, thì bản ghi sẽ được thêm vào bảng
1
CREATE TABLE person [
. . .
age INT,
. . .
CHECK [age >= 0]
];
2
CREATE TABLE person [
. . .
age INT,
. . .
CHECK [age >= 0]
];
Các giá trị đánh giá sai tạo ra lỗi cho biết rằng ràng buộc không được thỏa mãn
3
CREATE TABLE person [
. . .
age INT,
. . .
CHECK [age >= 0]
];
4
CREATE TABLE person [
. . .
age INT,
. . .
CHECK [age >= 0]
];
Trong trường hợp này, bộ phim đã thỏa mãn mọi điều kiện ngoại trừ số phiếu yêu cầu. MySQL từ chối đệ trình vì nó không vượt qua ràng buộc kiểm tra bảng cuối cùng
Không ràng buộc null
Ràng buộc
3 tập trung hơn nhiều. Nó đảm bảo rằng các giá trị trong một cột không phải là null. Trong khi đây là một hạn chế đơn giản, nó được sử dụng rất thường xuyên
ERROR 3819 [HY000]: Check constraint 'qualified_borrowers_chk_1' is violated.
Cách thêm các ràng buộc không null trong MySQL
Để đánh dấu một cột là yêu cầu một giá trị khác null, hãy thêm
3 sau phần khai báo kiểu
ERROR 3819 [HY000]: Check constraint 'qualified_borrowers_chk_1' is violated.
5
CREATE TABLE person [
. . .
age INT,
. . .
CHECK [age >= 0]
];
Trong ví dụ trên, chúng ta có một bảng hai cột đơn giản ánh xạ các quốc gia tới thủ đô quốc gia của họ. Vì cả hai trường này đều là các trường bắt buộc nên để trống sẽ không hợp lý, nên chúng tôi thêm ràng buộc
3
ERROR 3819 [HY000]: Check constraint 'qualified_borrowers_chk_1' is violated.
Chèn một giá trị null bây giờ dẫn đến một lỗi
6_______11_______7
CREATE TABLE person [
. . .
age INT,
. . .
CHECK [age >= 0]
];
Ràng buộc
3 chỉ có chức năng như một ràng buộc cột [nó không thể được sử dụng như một ràng buộc bảng]. Tuy nhiên, bạn có thể dễ dàng giải quyết vấn đề này bằng cách sử dụng ràng buộc
ERROR 3819 [HY000]: Check constraint 'qualified_borrowers_chk_1' is violated.
4 trong bảng
ERROR 3819 [HY000]: Check constraint 'qualified_borrowers_chk_1' is violated.
5
ERROR 3819 [HY000]: Check constraint 'qualified_borrowers_chk_1' is violated.
Ví dụ: điều này cung cấp các đảm bảo tương đương bằng cách sử dụng ràng buộc bảng
8
CREATE TABLE person [
. . .
age INT,
. . .
CHECK [age >= 0]
];
LIÊN QUAN ĐẾN PRISMA. IO
Khi làm việc với Prisma Client, bạn có thể kiểm soát xem mỗi trường có nhận chức năng tương đương với ràng buộc
3 trong PostgreSQL hay không
ERROR 3819 [HY000]: Check constraint 'qualified_borrowers_chk_1' is violated.
Prisma là bộ công cụ cơ sở dữ liệu mã nguồn mở dành cho Typescript và Node. js nhằm mục đích giúp các nhà phát triển ứng dụng làm việc hiệu quả và tự tin hơn khi làm việc với cơ sở dữ liệu
ràng buộc duy nhất
Ràng buộc
6 cho MySQL biết rằng mỗi giá trị trong một cột không được lặp lại. Điều này hữu ích trong nhiều tình huống khác nhau khi không thể có cùng một giá trị trong nhiều bản ghi
INSERT INTO qualified_borrowers VALUES [123, false];
Ví dụ: theo định nghĩa, các cột liên quan đến ID thuộc bất kỳ loại nào phải có các giá trị duy nhất. Số an sinh xã hội, ID sinh viên hoặc khách hàng hoặc UPC sản phẩm [số mã vạch] sẽ vô dụng nếu chúng không thể phân biệt giữa những người hoặc vật phẩm cụ thể
Một ràng buộc
6 có thể được chỉ định ở cấp độ cột
INSERT INTO qualified_borrowers VALUES [123, false];
9
CREATE TABLE person [
. . .
age INT,
. . .
CHECK [age >= 0]
];
Chúng cũng có thể được chỉ định dưới dạng ràng buộc bảng
0
CREATE TABLE qualified_borrowers [
. . .
account_number INT,
acceptable_collateral BOOLEAN,
. . .
CHECK [account_number IS NOT NULL AND acceptable_collateral = true]
];
Một trong những ưu điểm của việc sử dụng ràng buộc bảng
6 là nó cho phép bạn thực hiện kiểm tra tính duy nhất trên tổ hợp các cột. Điều này hoạt động bằng cách chỉ định hai hoặc nhiều cột mà MySQL sẽ đánh giá cùng nhau. Các giá trị trong các cột riêng lẻ có thể lặp lại nhưng sự kết hợp của các giá trị được chỉ định phải là duy nhất
INSERT INTO qualified_borrowers VALUES [123, false];
Ví dụ, hãy nhìn lại bảng
9 mà chúng ta đã sử dụng trước đây
INSERT INTO qualified_borrowers VALUES [123, false];
1
CREATE TABLE qualified_borrowers [
. . .
account_number INT,
acceptable_collateral BOOLEAN,
. . .
CHECK [account_number IS NOT NULL AND acceptable_collateral = true]
];
Nếu chúng tôi muốn đảm bảo rằng chúng tôi không thêm nhiều bản ghi cho cùng một cặp, chúng tôi có thể thêm các ràng buộc
6 vào các cột tại đây
INSERT INTO qualified_borrowers VALUES [123, false];
2
CREATE TABLE qualified_borrowers [
. . .
account_number INT,
acceptable_collateral BOOLEAN,
. . .
CHECK [account_number IS NOT NULL AND acceptable_collateral = true]
];
Điều này sẽ đảm bảo rằng cả quốc gia và thủ đô chỉ có mặt một lần trong mỗi bảng. Tuy nhiên, một số quốc gia có nhiều thủ đô. Điều này có nghĩa là chúng tôi có thể có nhiều mục có cùng giá trị
1. Chúng sẽ không hoạt động với thiết kế hiện tại
ERROR 3819 [HY000]: Check constraint 'loan_worthiness' is violated.
3
CREATE TABLE qualified_borrowers [
. . .
account_number INT,
acceptable_collateral BOOLEAN,
. . .
CHECK [account_number IS NOT NULL AND acceptable_collateral = true]
];
4
CREATE TABLE qualified_borrowers [
. . .
account_number INT,
acceptable_collateral BOOLEAN,
. . .
CHECK [account_number IS NOT NULL AND acceptable_collateral = true]
];
Nếu chúng tôi vẫn muốn đảm bảo rằng chúng tôi không kết thúc với các mục nhập trùng lặp trong khi vẫn cho phép các giá trị lặp lại trong các cột riêng lẻ, thì chỉ cần kiểm tra duy nhất sự kết hợp của
1 và
ERROR 3819 [HY000]: Check constraint 'loan_worthiness' is violated.
3
ERROR 3819 [HY000]: Check constraint 'loan_worthiness' is violated.
5
CREATE TABLE qualified_borrowers [
. . .
account_number INT,
acceptable_collateral BOOLEAN,
. . .
CHECK [account_number IS NOT NULL AND acceptable_collateral = true]
];
Bây giờ, chúng ta có thể thêm cả hai thủ đô của Bolivia vào bảng mà không gặp lỗi
3
CREATE TABLE qualified_borrowers [
. . .
account_number INT,
acceptable_collateral BOOLEAN,
. . .
CHECK [account_number IS NOT NULL AND acceptable_collateral = true]
];
7
CREATE TABLE qualified_borrowers [
. . .
account_number INT,
acceptable_collateral BOOLEAN,
. . .
CHECK [account_number IS NOT NULL AND acceptable_collateral = true]
];
Tuy nhiên, cố gắng thêm cùng một kết hợp hai lần vẫn bị ràng buộc
8
CREATE TABLE qualified_borrowers [
. . .
account_number INT,
acceptable_collateral BOOLEAN,
. . .
CHECK [account_number IS NOT NULL AND acceptable_collateral = true]
];
9
CREATE TABLE qualified_borrowers [
. . .
account_number INT,
acceptable_collateral BOOLEAN,
. . .
CHECK [account_number IS NOT NULL AND acceptable_collateral = true]
];
Ràng buộc khóa chính
Các ràng buộc phục vụ một mục đích đặc biệt. Nó chỉ ra rằng cột có thể được sử dụng để xác định duy nhất một bản ghi trong bảng. Điều này có nghĩa là nó phải là duy nhất đáng tin cậy và mỗi bản ghi phải có một giá trị trong cột đó
Khóa chính được khuyến nghị cho mọi bảng nhưng không bắt buộc và mỗi bảng chỉ có thể có một khóa chính. Khóa chính được sử dụng chủ yếu để xác định, truy xuất, sửa đổi hoặc xóa các bản ghi riêng lẻ trong một bảng. Chúng cho phép người dùng và quản trị viên nhắm mục tiêu hoạt động bằng cách sử dụng mã định danh được MySQL đảm bảo khớp chính xác với một bản ghi
Hãy sử dụng bảng
5 mà chúng ta đã thấy trước đây làm ví dụ
ERROR 3819 [HY000]: Check constraint 'loan_worthiness' is violated.
9
CREATE TABLE person [
. . .
age INT,
. . .
CHECK [age >= 0]
];
Ở đây, chúng tôi đã xác định rằng
6 phải là duy nhất. Nếu chúng tôi muốn sử dụng cột này làm khóa chính [đảm bảo tính duy nhất và giá trị khác null], chúng tôi chỉ cần thay đổi ràng buộc
ERROR 3819 [HY000]: Check constraint 'loan_worthiness' is violated.
6 thành
INSERT INTO qualified_borrowers VALUES [123, false];
4
ERROR 3819 [HY000]: Check constraint 'loan_worthiness' is violated.
1
INSERT INTO qualified_borrowers VALUES [123, false];
Bằng cách này, nếu chúng tôi cần cập nhật số lượng hàng tồn kho cho một nguồn cung cấp cụ thể, chúng tôi có thể nhắm mục tiêu nguồn cung cấp đó bằng khóa chính
2______23_______3
INSERT INTO qualified_borrowers VALUES [123, false];
Mặc dù nhiều bảng sử dụng một cột duy nhất làm khóa chính, nhưng cũng có thể tạo khóa chính bằng cách sử dụng một tập hợp các cột làm ràng buộc bảng
Bảng
9 là một ứng cử viên sáng giá để chứng minh điều này. Nếu chúng ta muốn tạo khóa chính bằng cách sử dụng các cột hiện có, chúng ta có thể thay thế ràng buộc bảng
INSERT INTO qualified_borrowers VALUES [123, false];
6 bằng
INSERT INTO qualified_borrowers VALUES [123, false];
4
ERROR 3819 [HY000]: Check constraint 'loan_worthiness' is violated.
4
INSERT INTO qualified_borrowers VALUES [123, false];
Ràng buộc khóa ngoại
là các cột trong một bảng tham chiếu các giá trị cột trong một bảng khác. Điều này là mong muốn và thường cần thiết trong nhiều tình huống trong đó các bảng chứa dữ liệu liên quan. Khả năng này để cơ sở dữ liệu dễ dàng kết nối và tham chiếu dữ liệu được lưu trữ trong các bảng riêng biệt là một trong những tính năng chính của cơ sở dữ liệu quan hệ
Ví dụ: bạn có thể có một bảng
01 trong bảng
CREATE TABLE teenagers [
. . .
age INT CONSTRAINT is_teenager CHECK [age >= 13 AND age = 13 AND age = 13 AND age = 13 AND age = 13 AND age = 13 AND age = 13 AND age = 13 AND age = 0]
];
01 trong bảng
CREATE TABLE teenagers [
. . .
age INT CONSTRAINT is_teenager CHECK [age >= 13 AND age = 0]
];
05, viết tắt của
CREATE TABLE teenagers [
. . .
age INT CONSTRAINT is_teenager CHECK [age >= 13 AND age = 0]
];
06, vì vậy chúng tôi có thể sử dụng ____11_______07 làm kiểu dữ liệu của chúng tôi cho cột
CREATE TABLE person [
. . .
age INT,
. . .
CHECK [age >= 0]
];
20, nhưng trong MySQL, điều này tương đương với
CREATE TABLE teenagers [
. . .
age INT CONSTRAINT is_teenager CHECK [age >= 13 AND age = 13 AND age = 13 AND age = 13 AND age = 13 AND age = 13 AND age = 13 AND age = 13 AND age = 13 AND age = 13 AND age = 13 AND age = 13 AND age = 0]
];
21. Hệ thống sẽ từ chối yêu cầu cập nhật hoặc xóa
CREATE TABLE person [
. . .
age INT,
. . .
CHECK [age >= 0]
];
ĐẶT NULL. Tùy chọn này yêu cầu MySQL đặt các cột tham chiếu thành 22 khi các bản ghi được tham chiếu bị xóa. Vì vậy, nếu chúng tôi xóa một khách hàng khỏi bảng
CREATE TABLE person [
. . .
age INT,
. . .
CHECK [age >= 0]
];
22
CREATE TABLE teenagers [
. . .
age INT CONSTRAINT is_teenager CHECK [age >= 13 AND age = 13 AND age = 13 AND age = 0]
];
ĐẶT MẶC ĐỊNH. Mặc dù một số hệ thống cơ sở dữ liệu khác cho phép bạn đặt cột thành giá trị mặc định trong trường hợp xóa hoặc cập nhật tham chiếu, MySQL thực tế không cho phép hành động này và sẽ không cho phép bạn xác định bảng bằng tùy chọn này Những hành động này có thể được chỉ định khi xác định ràng buộc khóa ngoại bằng cách thêm
27 theo sau là hành động. Vì vậy, nếu chúng tôi muốn xóa các đơn đặt hàng được liên kết khỏi hệ thống của mình khi một khách hàng bị xóa, chúng tôi có thể chỉ định như thế này
CREATE TABLE person [
. . .
age INT,
. . .
CHECK [age >= 0]
];
2
ERROR 3819 [HY000]: Check constraint 'qualified_borrowers_chk_1' is violated.
Những loại hành động này cũng có thể được áp dụng khi cập nhật một cột được tham chiếu thay vì xóa một cột bằng cách sử dụng
28 thay vì
CREATE TABLE person [
. . .
age INT,
. . .
CHECK [age >= 0]
];
27
CREATE TABLE person [
. . .
age INT,
. . .
CHECK [age >= 0]
];
Phần kết luận
Trong hướng dẫn này, chúng tôi đã đề cập đến các ràng buộc là gì và cách chúng có thể giúp bạn kiểm soát dữ liệu được nhập vào các bảng MySQL của bạn. Chúng tôi đã thảo luận về sự khác biệt giữa các ràng buộc cột và bảng và tính linh hoạt gia tăng được cung cấp bằng cách sử dụng định dạng bảng. Sau đó, chúng tôi đã xem xét những ràng buộc mà MySQL hỗ trợ và cách sử dụng chúng trong các bảng của bạn
Các ràng buộc giúp bạn xác định các yêu cầu chính xác của các cột trong bảng và do đó, chúng không thể thiếu trong nhiều tình huống. Hiểu cách thức hoạt động của các ràng buộc khác nhau và những kịch bản mà chúng giúp bạn ngăn chặn sẽ giúp ích rất nhiều trong việc đảm bảo rằng dữ liệu của bạn tuân thủ các tiêu chuẩn mà bạn yêu cầu. Sau khi được xác định, MySQL có thể giúp bạn tự động thực thi các ràng buộc để ngăn chặn sự cố trước khi chúng xảy ra
Ví dụ về ràng buộc cơ sở dữ liệu là gì?
Trong một bảng cơ sở dữ liệu, chúng ta có thể thêm các quy tắc vào một cột được gọi là các ràng buộc. Các quy tắc này kiểm soát dữ liệu có thể được lưu trữ trong một cột . Ví dụ: nếu một cột có ràng buộc NOT NULL, điều đó có nghĩa là cột đó không thể lưu trữ giá trị NULL. Các ràng buộc được sử dụng trong SQL là. Hạn chế.Hai loại ràng buộc trong SQL là gì?
Các ràng buộc có thể là cấp độ cột hoặc cấp độ bảng . Ràng buộc cấp độ cột áp dụng cho một cột và ràng buộc cấp độ bảng áp dụng cho toàn bộ bảng.Chúng ta có thể sử dụng 2 ràng buộc trong SQL không?
Nó có thể chấp nhận một giá trị NULL trong cột khóa duy nhất. Một bảng chỉ có thể có một ràng buộc PRIMARY KEY. Bạn có thể tạo nhiều ràng buộc UNIQUE KEY trong SQL Server .Các ràng buộc tên tất cả các ràng buộc 2 là gì?
Các loại ràng buộc khác nhau là. .Hạn chế duy nhấtRàng buộc khóa chínhRàng buộc mặc địnhKiểm tra ràng buộcRàng buộc bảng