Ràng buộc Kiểm tra Oracle – tạo kiểm tra ràng buộc oracle

Hướng dẫn về Oracle Check Constraint. Ở đây chúng ta thảo luận về Giới thiệu về Ràng buộc Kiểm tra Oracle, Kiểu khai báo, Cú pháp, Ví dụ với mã và kết quả đầu ra.

Bạn đang xem : tạo tiên tri ràng buộc kiểm tra

Oracle Check Constraint

Giới thiệu về Oracle Check Constraint

Một Ràng buộc Kiểm tra Oracle được sử dụng để xác định điều kiện ràng buộc toàn vẹn giới hạn giá trị trong mỗi hàng trong Bảng Cơ sở dữ liệu. Cột của bảng chứa Ràng buộc Kiểm tra thực thi điều kiện cho mọi hàng đơn và hạn chế giá trị không được khai báo trong Ràng buộc Kiểm tra. Tóm lại, mỗi hàng trong bảng phải đặt điều kiện Ràng buộc Kiểm tra là Đúng hoặc Không xác định.

Kiểu khai báo của Ràng buộc Kiểm tra Oracle

Nó có thể được khai báo theo hai cách. Họ

Bắt đầu Khóa học Khoa học Dữ liệu Miễn phí của bạn

Hadoop, Khoa học Dữ liệu, Thống kê & amp; những người khác

  • Kiểu cấp cột (Trong dòng):
  • Nó có thể được khai báo như một phần của định nghĩa về một cột hoặc thuộc tính riêng lẻ.
  • Thường được áp dụng khi ràng buộc chỉ dành riêng cho cột đó.
  • Kiểu cấp bảng (Ngoài dòng):
  • Nó có thể được khai báo như một phần của định nghĩa bảng.
  • Nó có thể được khai báo trên sự kết hợp của các cột với nhau.

Điểm tập trung

  • Oracle CHECK Constraint xác định một điều kiện mà mỗi hàng phải đáp ứng.
  • Để đáp ứng ràng buộc, mỗi hàng trong bảng phải đặt điều kiện ĐÚNG hoặc KHÔNG BIẾT.
  • Oracle không xác minh rằng các điều kiện Kiểm tra là loại trừ lẫn nhau.
  • Trong một người dùng hoặc một giản đồ, không có hai ràng buộc Kiểm tra nào có thể có cùng tên.
  • Nếu người dùng không cung cấp tên ràng buộc ORACLE sẽ liên kết ràng buộc với tên đó.

Tốt hơn là cung cấp tên ràng buộc.

Hạn chế

  • Các cấu trúc không thể được đưa vào, là:
  • Truy vấn để tham chiếu đến các giá trị trong các hàng khác.
  • Gọi đến các hàm SYSDATE, UID, USER và USERENV.
  • Các cột giả CURRVAL, NEXTVAL, LEVEL hoặc ROWNUM.
  • Hằng số DATE không được chỉ định đầy đủ.
  • Điều kiện của Ràng buộc Kiểm tra có thể tham chiếu đến bất kỳ cột nào trong cùng một bảng, nhưng nó không thể tham chiếu đến các cột của (các) bảng khác.
  • Một cột duy nhất có thể có nhiều Ràng buộc Kiểm tra có thể tham chiếu đến cột trong định nghĩa.
  • Không có giới hạn về số lượng ràng buộc Kiểm tra có thể được xác định trên một cột.
  • Ràng buộc KIỂM TRA có thể được xác định ở cấp cột (Trong dòng) hoặc cấp bảng (Ngoài dòng).
Xem Thêm  Thiết kế và viết mã một ứng dụng Facebook tích hợp: HTML + CSS - logo facebook cho trang web html

Cú pháp

Đối với Ràng buộc Kiểm tra Oracle Nội tuyến:

CREATE TABLETable_Name ( col_1 Datatype (width), col_2 Data type (width) CONSTRAINT Ràng buộc_name KIỂM TRA (Cột_name Điều kiện) [DISABLE]);

Đối với Ràng buộc Kiểm tra Oracle Ngoài Dòng:

TABLETable_Name ( col_1 Datatype (width), col_2 Datatype (width), col_2 Datatype (width), CONSTRAINT binding_nameCHECK (column_name Condition) [DISABLE]); < / p>

Giải thích:

  • Col_1 / 2 / n: (Các) cột hoặc phép tính theo yêu cầu của bạn.
  • Tên_bảng: Theo yêu cầu của bạn
  • tên_chỉ_làm: Tên này có thể là bất kỳ tên nào nhưng là tên duy nhất trong cùng một giản đồ.
  • column_name: Nó có thể là bất kỳ tên cột nào nhưng nó phải nằm trong cùng một bảng mà điều kiện sẽ được áp dụng.
  • Điều kiện: Điều kiện sẽ áp dụng cho cột.
  • TẮT: Đây là một từ khoá tuỳ chọn. Nếu bất kỳ Ràng buộc kiểm tra nào được tạo bằng từ khóa DISABLE thì ràng buộc đó sẽ được tạo nhưng điều kiện sẽ không được thực thi.

Ví dụ để triển khai Oracle Check Constraint

Trong phần này, chúng ta sẽ thấy việc Triển khai Ràng buộc Kiểm tra Oracle và hành vi của nó.

1. Kiểm tra kiểu Ràng buộc / Mức cột (Trong dòng)

Mã:

SQL & gt; TẠO BẢNG Mydept (SỐ Deptno (2) CONSTRAINT Dep_chk CHECK (Deptno in (10,20,30,40)), Dname VARCHAR (16));

Đầu ra:

Tạo Tuyên bố

Giải thích: Trong câu lệnh CREATE ở trên tạo một bảng có hai cột trong cột Deptno đó chứa ràng buộc CHECK với điều kiện kiểm tra Deptno có thuộc số đã cho trong điều kiện đã chỉ định hay không. Bây giờ chúng ta sẽ chèn một số dữ liệu vào bảng và xem hành vi.

Mã:

SQL & gt; CHÈN VÀO CÁC GIÁ TRỊ CỦA TÔI (30, 'SALES');

Đầu ra:

Đã tạo hàng

Mã:

SQL & gt; CHÈN VÀO CÁC GIÁ TRỊ CỦA TÔI (50, 'SALES');

Đầu ra:

Kiểm tra Ràng buộc

Giải thích: Hai câu lệnh đầu tiên của truy vấn INSERT ở trên chèn một bản ghi trong bảng (Mydept) nhưng câu lệnh thứ hai tạo ra một lỗi. VẬY? Bởi vì bất cứ khi nào chạy một truy vấn đối với cột, Kiểm tra Ràng buộc sẽ thực thi điều kiện. Trong ví dụ đầu tiên, giá trị Deptno là 30 thỏa mãn điều kiện Ràng buộc Kiểm tra nhưng trong ví dụ thứ hai, giá trị Deptno là 50 vi phạm điều kiện Ràng buộc Kiểm tra. Đó là lý do tại sao câu lệnh INSERT thứ hai gặp lỗi.

2. Kiểm tra Ràng buộc bằng Disable

Tùy chọn DISABLE không là gì nhưng nó vô hiệu hóa ràng buộc đã khai báo cho đến khi nó được kích hoạt. Ràng buộc không thực thi điều kiện Kiểm tra nếu từ khóa DISABLE đang được sử dụng với ràng buộc.

Xem Thêm  Mảng Python - xác định một mảng trong python

Mã:

SQL & gt; TẠO BẢNG Mydept_1 (SỐ Deptno (2) KIỂM TRA SỐ Deptno_1 (Deptno in (10,20,30,40)) TẮT, Dname VARCHAR2 (16));

Đầu ra:

Tắt

Giải thích: Câu lệnh CREATE ở trên đã tạo một bảng mới Mydept_1 và cột Deptno bao gồm Kiểm tra Ràng buộc với từ khóa DISABLE. Bây giờ, chúng tôi sẽ chèn các giá trị và kiểm tra hành vi.

Mã:

SQL & gt; CHÈN VÀO CÁC GIÁ TRỊ CỦA Mydept_1 (30, 'SALES');

Đầu ra:

keyword

Mã:

SQL & gt; CHÈN VÀO CÁC GIÁ TRỊ CỦA Mydept_1 (50, 'SALES');

Đầu ra:

Oracle CHECK Constraint6

Giải thích: Hai câu lệnh INSERT ở trên đã chèn thành công hai giá trị deptno khác nhau. Giá trị deptno đầu tiên 30 thỏa mãn điều kiện Kiểm tra nhưng giá trị thứ hai 50 thì không nhưng vẫn được chèn. TẠI SAO? Vì từ khóa DISABLE trong Kiểm tra ràng buộc giữ nó ở chế độ tắt, do đó, điều kiện kiểm tra không thực thi.

3. Kiểm tra Ràng buộc trên kiểu Bảng (Ngoài dòng)

Mã:

SQL & gt; TẠO BẢNG Mydept_2 (Deptno NUMBER (2), Dname VARCHAR2 (16),
CONSTRAINT Dep_chk_2 CHECK (Deptno in (10, 20, 30, 40)));

Đầu ra:

Oracle CHECK Constraint7

Giải thích: Câu lệnh Kiểm tra ở trên tạo một bảng Mydept_2 với CHECK CONSTRAINT nhưng ràng buộc được khai báo trên kiểu cấp Bảng (ngoài dòng) và hành vi giống như khai báo kiểu cấp cột.

4. Kiểm tra Bảo trì Ràng buộc

Nguyên tắc

  • Ràng buộc Kiểm tra có thể THÊM, XÓA, BẬT hoặc TẮT nhưng không thể sửa đổi cấu trúc vật lý của bảng.
  • Có thể kiểm tra tên Ràng buộc CHECK ở dạng
  • USER_CONSTRAINTS
  • USER_CONS_COLUMNS lượt xem từ điển dữ liệu

5. Ràng buộc xem séc

Mã:

SQL & gt; CHỌN tên_kích_kích, tên_kích_thước từ USER_CONSTRAINTS WHERE TABLE_NAME = ’MYDEPT_1 ′;

Đầu ra:

Oracle CHECK Constraint8

Giải thích: Đầu ra hiển thị Constraint_Name và Type. Ở đây C biểu thị Ràng buộc Kiểm tra.

6. Thêm Ràng buộc Kiểm tra

Mã:

SQL & gt; ALTER TABLE samp_pk ADD CONSTRAINT chk_sampid CHECK (samid in (8,9,4,3));

Đầu ra:

Oracle CHECK Constraint9

Giải thích: Bảng SAMP_PK trước đó không có Ràng buộc Kiểm tra. Bây giờ nó đã có.

7. Ràng buộc bỏ phiếu kiểm tra

Mã:

SQL & gt; ALTER TABLE Mydept_1 DROP CONSTRAINT DEP_CHK_1;

Đầu ra:

Oracle CHECK Constraint10

Giải thích: Trong ví dụ trên, Kiểm tra Ràng buộc (DEP_CHK_1) từ bảng Mydept_1 đã bị loại bỏ. Hiện Emp_1 không có bất kỳ Ràng buộc kiểm tra nào (xem hình ảnh bên dưới).

Mã:

SQL & gt; CHỌN tên_kết_thức ,_tính_chính từ USER_CONSTRAINTS WHERE TABLE_NAME = 'MYDEPT_1';

Đầu ra:

Oracle CHECK Constraint11

Có thể tắt hoặc bật Ràng buộc Kiểm tra.

Mã:

SQL & gt; ALTER TABLE Table_Name ENABLE / DISABLE CONSTRAINT & lt; Constraint Name & gt;];

Giải thích: Một cột có thể có nhiều Ràng buộc Kiểm tra.

Kết luận

Oracle Check Constraint một CONSTRAINT cho phép chúng tôi xác định một quy tắc hoặc điều kiện để thực thi nó nhằm giới hạn các giá trị trong một cột hoặc nhiều hơn. Để duy trì tính toàn vẹn và xác thực điều kiện trước khi tải dữ liệu, bạn có thể sử dụng Kiểm tra Ràng buộc.

Xem Thêm  Python .sort () - Cách sắp xếp danh sách trong Python - hàm sắp xếp trong python là gì

Các bài báo được đề xuất

Đây là hướng dẫn về Oracle Check Constraint. Ở đây chúng tôi thảo luận về giới thiệu về Oracle Check Constraint, kiểu khai báo, cú pháp, ví dụ với mã và kết quả đầu ra. Bạn cũng có thể xem qua các bài viết liên quan khác của chúng tôi để tìm hiểu thêm –

0

Chia sẻ

Chia sẻ


Xem thêm những thông tin liên quan đến chủ đề tạo kiểm tra ràng buộc oracle

Ràng Buộc Toàn Vẹn -CỞ SỞ DỮ LIỆU

alt

  • Tác giả: V-A G1
  • Ngày đăng: 2021-10-26
  • Đánh giá: 4 ⭐ ( 3684 lượt đánh giá )
  • Khớp với kết quả tìm kiếm: MUSIC
    REMIX: V-A G1

    © Bản quyền Video thuộc về V-A G1
    © Copyright by V-A G1 ☞ Do not Reup

TRẦN VĂN BÌNH MASTER: SQL CHECK Constraint

  • Tác giả: www.tranvanbinh.vn
  • Đánh giá: 5 ⭐ ( 4859 lượt đánh giá )
  • Khớp với kết quả tìm kiếm:

[Tự học SQL] Tìm hiểu về ràng buộc CHECK và DEFAULT trong SQL

  • Tác giả: cafedev.vn
  • Đánh giá: 4 ⭐ ( 4254 lượt đánh giá )
  • Khớp với kết quả tìm kiếm: Bài này cafedev chia sẻ cho ace về cách sử dụng ràng buộc CHECK và DEFAULT trong SQL.

Ràng buộc Check trong SQL

  • Tác giả: freetuts.net
  • Đánh giá: 4 ⭐ ( 9112 lượt đánh giá )
  • Khớp với kết quả tìm kiếm: Hướng dẫn tạo ràng buộc check trong sql server, mysql, access và oracle, ngoài cách tạo ràng buộc check bạn còn học cách xóa check bằng lệnh alter table drop.

LÀM CHẬM VIỆC KIỂM TRA RÀNG BUỘC VÀ DUY TRÌ TOÀN VẸN THAM CHIẾU

  • Tác giả: viblo.asia
  • Đánh giá: 4 ⭐ ( 6307 lượt đánh giá )
  • Khớp với kết quả tìm kiếm: I. Làm chậm kiểm tra ràng buộc: – Trong hệ quản trị cơ sở dữ liệu Oracle thì mỗi lần xuất hiện một sửa đổi cơ sở dữ liệu => ràng buộc toàn vẹn sẽ được kiểm tra ngay sau đó nếu phép sửa đổi đòi hỏi kiể…

Làm thế nào để kiểm tra xem một ràng buộc có tồn tại trong máy chủ Sql không?

  • Tác giả: qastack.vn
  • Đánh giá: 5 ⭐ ( 6352 lượt đánh giá )
  • Khớp với kết quả tìm kiếm: [Tìm thấy giải pháp!] thử cái này: SELECT * FROM INFORMATION_SCHEMA.REFERENTIAL_CONSTRAINTS WHERE CONSTRAINT_NAME =’FK_ChannelPlayerSkins_Channels’ — BIÊN TẬP — Khi ban…

Kiểm soát bắt buộc và kiểm soát quản trị trong Oracle

  • Tác giả: openplanning.net
  • Đánh giá: 3 ⭐ ( 9162 lượt đánh giá )
  • Khớp với kết quả tìm kiếm:

Xem thêm các bài viết khác thuộc chuyên mục: Kiến thức lập trình