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

cách kiểm tra tất cả các ràng buộc trên bảng trong oracle

Các ràng buộc trên bảng trong tiên tri có thể được tìm thấy bằng cách sử dụng các chế độ xem bên dưới
user_constraints
all_constraints
dba_constraints
User_cons_columns
all_cons_columns
dba_cons_columns

Chúng ta có thể sử dụng dạng xem tùy theo quyền truy cập mà chúng ta có trong cơ sở dữ liệu Oracle. Bây giờ tôi sẽ giải thích cách kiểm tra tất cả các ràng buộc trên một bảng trong oracle bằng cách sử dụng các ví dụ

Cách tìm tất cả các ràng buộc trên bảng trong oracle

Đầu tiên chúng ta hãy tạo các Bảng

 SQL> TẠO BẢNG "DEPT" ("DEPTNO" NUMBER (2,0), "DNAME" VARCHAR2 (14), "LOC" VARCHAR2 (13), CONSTRAINT "PK_DEPT" PRIMARY KEY ("DEPTNO")); Đã tạo bảng. SQL> TẠO BẢNG "EMP" ("EMPNO" NUMBER (4,0), "ENAME" VARCHAR2 (10) Không null, "JOB" VARCHAR2 (9) không null, "MGR" NUMBER (4,0), "HIREDATE "DATE," SAL "NUMBER (7,2)," COMM "NUMBER (7,2)," DEPTNO "NUMBER (2,0), CONSTRAINT" PK_EMP "PRIMARY KEY (" EMPNO "), CONSTRAINT" FK_DEPTNO "FOREIGN KEY ("DEPTNO") TÀI LIỆU THAM KHẢO "DEPT" ("DEPTNO") BẬT); Đã tạo bảng. 

Bây giờ bạn có thể tìm thấy các ràng buộc bằng cách sử dụng các truy vấn ràng buộc chọn oracle dưới đây

Định dạng
 SQL> col CONSTRAINT_NAME a20 SQL> col INDEX_NAME định dạng a20 SQL> col Định dạng CONSTRAINT_TYPE a5 SQL> cột Định dạng SEARCH_CONDITION a30 SQL> cột R_CONSTRAINT_NAME định dạng a20 chọn CONSTRAINT_NAME C_NAME, INDEX_NAME, CONSTRAINT_TYPE, Search_condition, R_cons_NAME R_CONSTR 'EMP'; 

Ở đây CONSTRAINT_TYPE xác định loại ràng buộc
P là viết tắt của Oracle Primary Key
C là viết tắt của kiểm tra các ràng buộc hoặc không null ràng buộc
R là viết tắt của các ràng buộc Khoá ngoại
U là viết tắt của các ràng buộc Khoá duy nhất


Bây giờ bạn có thể tìm thấy các cột ràng buộc Khóa chính, Khóa ngoài và Khóa duy nhất bằng cách sử dụng truy vấn dưới đây

 SQL> cột định dạng CHỦ SỞ HỮU a10 SQL> cột CONSTRAINT_NAME định dạng a120 SQL> cột CONSTRAINT_NAME định dạng a20 SQL> cột COLUMN_NAME định dạng a20 SQL> chọn CHỦ SỞ HỮU, CONSTRAINT_NAME, COLUMN_NAME, POSITION từ User_cons_columns trong đó TABLE_NAME ='EMP'; 

Chúng ta sẽ nhận được giá trị null cho cột Vị trí nếu chúng ta có một cột duy nhất trong ràng buộc. Nếu có nhiều cột hiện diện trong các ràng buộc, Vị trí sẽ chỉ định thứ tự của cột trong ràng buộc

Các truy vấn tương tự có thể được sử dụng để chọn các ràng buộc trên Bảng DEPT

 SQL> chọn CONSTRAINT_NAME C_NAME, INDEX_NAME, CONSTRAINT_TYPE, Search_condition, R_CONSTRAINT_NAME R_NAME từ user_constraints trong đó TABLE_NAME ='DEPT'; 
 SQL> chọn CHỦ SỞ HỮU, CONSTRAINT_NAME, COLUMN_NAME, POSITION từ User_cons_columns trong đó TABLE_NAME ='DEPT'; 

Cách tìm ràng buộc theo tên trong Oracle

 chọn CONSTRAINT_NAME, INDEX_NAME, CONSTRAINT_TYPE, Search_condition, R_CONSTRAINT_NAME R_NAME từ user_constraints trong đó CONSTRAINT_NAME ='&1'chọn chủ sở hữu, CONSTRAINT_NAME, INDEX_NAME, CONSTRAINT_TYPE, Search_condition, R_CONSTRAINT_NAME'INT_NAME từ tất cả các CONSTRAINTA  Cách kiểm tra các ràng buộc toàn vẹn tham chiếu trong bảng  
 SQL> chọn CONSTRAINT_NAME C_NAME, INDEX_NAME, CONSTRAINT_TYPE, Search_condition, R_CONSTRAINT_NAME R_NAME từ user_constraints trong đó TABLE_NAME ='EMP' và CONSTRAINT_TYPE ='R'; 

Bảng mẹ đang được tham chiếu có thể được tìm thấy bằng cách sử dụng R_CONSTRAINT_NAME

 SQL> chọn CONSTRAINT_NAME, INDEX_NAME, CONSTRAINT_TYPE, tên_bảng từ user_constraints trong đó CONSTRAINT_NAME ='PK_DEPT'; 

Cách kiểm tra khóa chính trong bảng

 SQL> chọn CONSTRAINT_NAME C_NAME, INDEX_NAME, CONSTRAINT_TYPE từ user_constraints trong đó TABLE_NAME ='EMP' và CONSTRAINT_TYPE ='P'; C_NAME INDEX_NAME CONST ---- ------- ----- PK_EMP PK_EMP P 

truy vấn để tìm các ràng buộc duy nhất trên bảng trong oracle

 SQL> CREATE TABLE DEPT_MASTER (dept_nr NUMBER UNIQUE, dept_name varchar2 (100) NOT NULL, dept_status NUMBER (1,0) NOT NULL, create_at date); Đã tạo bảng. SQL> chọn CONSTRAINT_NAME, INDEX_NAME, CONSTRAINT_TYPE từ user_constraints trong đó TABLE_NAME ='DEPT_MASTER' và CONSTRAINT_TYPE ='U'; 

Các truy vấn ràng buộc khác

 select table_name from user_constraints in (r_constraint_name) in (select bind_name from user_constraints where table_name ='T' and bind_type in ('P', 'U')); 

Vì vậy, chúng ta có thể dễ dàng tìm thấy tất cả các ràng buộc trên bảng trong oracle bằng cách sử dụng các dạng xem từ điển dữ liệu. Sau đó, chúng tôi có thể thực hiện bất kỳ hành động nào như sửa đổi, vô hiệu hóa, thả, chúng tôi muốn thực hiện các ràng buộc này. Các ràng buộc đang thực thi các quy tắc toàn vẹn dữ liệu trong cơ sở dữ liệu oracle và chúng tôi phải cẩn thận khi sửa đổi / loại bỏ chúng.

Tôi hy vọng bạn thích nội dung này về cách kiểm tra tất cả các ràng buộc trên một bảng trong cơ sở dữ liệu oracle. Vui lòng cung cấp phản hồi cho bài viết này.

Cũng đã đọc Bỏ ràng buộc
trong Oracle:Chúng ta có thể loại bỏ ràng buộc trong oracle bằng cách sử dụng lệnh bảng thay đổi. chúng ta có thể loại bỏ ràng buộc chính, khóa ngoại, kiểm tra, không null và duy nhất bằng cùng một lệnh
Hàm Coalesce trong Oracle:Hàm coalesce trong oracle sẽ trả về biểu thức đầu tiên nếu nó không phải là null, nếu không nó sẽ thực hiện kết hợp phần còn lại của biểu thức.
Đăng nhập bổ sung trong Oracle:Đăng nhập bổ sung trong Oracle là thông tin cột bổ sung cần thiết để tạo lại SQL để áp dụng cho bất kỳ cơ sở dữ liệu nào khác
Truy vấn để tìm các phụ thuộc đối tượng trong oracle:Kiểm tra Truy vấn để tìm đối tượng phụ thuộc trong oracle, phụ thuộc cấp con, phụ thuộc cấp cha, tìm bằng cách sử dụng dbms_utility.get_dependency
JSON trong cơ sở dữ liệu Oracle:Xem bài đăng này về cách sử dụng JSON trong oracle, cách tạo bảng chứa dữ liệu JSON, cách để giải nén, chèn dữ liệu JSON trong oracle
https://docs.oracle.com/cd/B19306_01/server.102/b14200/clauses002.htm

Các khóa học được đề xuất

Đây là Khóa học Udemy hay dành cho Oracle SQL
Oracle-Sql-Step-by-step:Khóa học này bao gồm sql cơ bản, các phép nối, Tạo Bảng và sửa đổi cấu trúc của nó, Tạo Dạng xem, Liên minh, Liên hợp-tất cả và nhiều thứ khác . Một khóa học tuyệt vời và phải có cho người mới bắt đầu sử dụng SQL
Khóa học chứng chỉ SQL hoàn chỉnh của Oracle :Đây là một khóa học tốt cho bất kỳ ai muốn sẵn sàng tìm việc cho các kỹ năng của nhà phát triển SQL. Một khóa học được giải thích thú vị
Oracle SQL Developer:Cơ bản, Mẹo và Thủ thuật :Công cụ dành cho nhà phát triển Oracle Sql đang được nhiều nhà phát triển sử dụng. Khóa học này cung cấp cho chúng ta các thủ thuật và bài học về cách sử dụng nó một cách hiệu quả và trở thành một nhà phát triển sql hiệu quả
Oracle SQL Performance Tuning Masterclass 2020 :Điều chỉnh hiệu suất là một trong những kỹ năng quan trọng và được tìm kiếm nhiều nhất. Đây là một khóa học tốt để tìm hiểu về nó và bắt đầu thực hiện điều chỉnh hiệu suất sql


  1. Database
  2.   
  3. Mysql
  4.   
  5. Oracle
  6.   
  7. Sqlserver
  8.   
  9. PostgreSQL
  10.   
  11. Access
  12.   
  13. SQLite
  14.   
  15. MariaDB
  1. Hàm NVL2 trong Oracle

  2. Chỉ mục phân vùng Oracle

  3. Sự cố tò mò với Oracle UNION và ORDER BY

  4. Các giá trị NULL ảnh hưởng đến hiệu suất trong tìm kiếm cơ sở dữ liệu như thế nào?

  5. thay đổi cột thả bảng trong cơ sở dữ liệu oracle