Einschränkungen für eine Tabelle in Oracle können mithilfe der folgenden Ansichten ermittelt werden
user_constraints
all_constraints
dba_constraints
User_cons_columns
all_cons_columns
dba_cons_columns
Wir können die Ansicht entsprechend dem Zugriff verwenden, den wir in der Oracle-Datenbank haben. Jetzt werde ich anhand der Beispiele erklären, wie alle Einschränkungen einer Tabelle in Oracle überprüft werden
So finden Sie alle Einschränkungen für eine Tabelle in Oracle
Lassen Sie uns zuerst die Tabellen erstellen
SQL> CREATE TABLE "DEPT" ( "DEPTNO" NUMBER(2,0), "DNAME" VARCHAR2(14), "LOC" VARCHAR2(13), CONSTRAINT "PK_DEPT" PRIMARY KEY ("DEPTNO") ) ; Table created. SQL> CREATE TABLE "EMP" ( "EMPNO" NUMBER(4,0), "ENAME" VARCHAR2(10) Not null, "JOB" VARCHAR2(9) not 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") REFERENCES "DEPT" ("DEPTNO") ENABLE ); Table created.
Jetzt können Einschränkungen gefunden werden, indem die folgenden Orakelauswahl-Einschränkungsabfragen verwendet werden
SQL> col CONSTRAINT_NAME format a20 SQL> col INDEX_NAME format a20 SQL> col CONSTRAINT_TYPE format a5 SQL> column SEARCH_CONDITION format a30 SQL>column R_CONSTRAINT_NAME format a20 select CONSTRAINT_NAME C_NAME,INDEX_NAME,CONSTRAINT_TYPE,Search_condition,R_CONSTRAINT_NAME R_NAME from user_constraints where TABLE_NAME='EMP';
Hier definieren CONSTRAINT_TYPE die Art der Constraints
P steht für Oracle Primary Key
C steht für Check Constraints oder Not Null Constraints
R steht für Foreign Key Constraints
U steht für Unique Key Constraints
Jetzt können die Spalten Primärschlüssel, Fremdschlüssel und Eindeutigkeitsschlüssel mit der folgenden Abfrage gefunden werden
SQL> column OWNER format a10 SQL> column CONSTRAINT_NAME format a120 SQL> column CONSTRAINT_NAME format a20 SQL> column COLUMN_NAME format a20 SQL> select OWNER,CONSTRAINT_NAME ,COLUMN_NAME,POSITION from User_cons_columns where TABLE_NAME='EMP';
Wir erhalten Nullwerte für die Positionsspalte, wenn wir eine einzelne Spalte in der Einschränkung haben. Wenn in den Einschränkungen mehrere Spalten vorhanden sind, gibt Position die Reihenfolge der Spalte in der Einschränkung an
Ähnliche Abfragen können zum Auswählen von Einschränkungen in der DEPT-Tabelle verwendet werden
SQL> select CONSTRAINT_NAME C_NAME,INDEX_NAME,CONSTRAINT_TYPE,Search_condition,R_CONSTRAINT_NAME R_NAME from user_constraints where TABLE_NAME='DEPT';
SQL> select OWNER,CONSTRAINT_NAME ,COLUMN_NAME,POSITION from User_cons_columns where TABLE_NAME='DEPT';
So finden Sie Einschränkungen nach Namen in Oracle
select CONSTRAINT_NAME ,INDEX_NAME,CONSTRAINT_TYPE,Search_condition,R_CONSTRAINT_NAME R_NAME from user_constraints where CONSTRAINT_NAME='&1' or select owner, CONSTRAINT_NAME ,INDEX_NAME,CONSTRAINT_TYPE,Search_condition,R_CONSTRAINT_NAME R_NAME from all_constraints where CONSTRAINT_NAME='&1'
So überprüfen Sie die Einschränkungen der referenziellen Integrität in der Tabelle
SQL> select CONSTRAINT_NAME C_NAME,INDEX_NAME,CONSTRAINT_TYPE,Search_condition,R_CONSTRAINT_NAME R_NAME from user_constraints where TABLE_NAME='EMP' and CONSTRAINT_TYPE='R' ;
Die übergeordnete Tabelle, auf die verwiesen wird, kann mithilfe von R_CONSTRAINT_NAME
gefunden werdenSQL> select CONSTRAINT_NAME,INDEX_NAME,CONSTRAINT_TYPE,table_name from user_constraints where CONSTRAINT_NAME='PK_DEPT';
So überprüfen Sie den Primärschlüssel in der Tabelle
SQL> select CONSTRAINT_NAME C_NAME,INDEX_NAME,CONSTRAINT_TYPE from user_constraints where TABLE_NAME='EMP' and CONSTRAINT_TYPE='P'; C_NAME INDEX_NAME CONST ---- ------- ----- PK_EMP PK_EMP P
Abfrage, um eindeutige Einschränkungen für eine Tabelle in Oracle zu finden
SQL> CREATE TABLE DEPT_MASTER ( dept_nr NUMBER UNIQUE, dept_name varchar2(100) NOT NULL, dept_status NUMBER(1,0) NOT NULL, created_at date ); Table created. SQL> select CONSTRAINT_NAME,INDEX_NAME,CONSTRAINT_TYPE from user_constraints where TABLE_NAME='DEPT_MASTER' and CONSTRAINT_TYPE='U';
Andere Abfragen für Einschränkungen
select table_name from user_constraints where (r_constraint_name) in ( select constraint_name from user_constraints where table_name = 'T' and constraint_type in ( 'P', 'U' ) );
So können wir mithilfe von Datenwörterbuchansichten problemlos alle Einschränkungen für die Tabelle in Oracle finden. Wir können dann jede beliebige Aktion ausführen, z. B. ändern, deaktivieren, löschen, um diese Einschränkungen zu übernehmen. Einschränkungen erzwingen Datenintegritätsregeln in der Oracle-Datenbank und wir müssen vorsichtig sein, wenn wir sie ändern/löschen.
Ich hoffe, Ihnen gefällt dieser Inhalt zum Überprüfen aller Einschränkungen einer Tabelle in einer Oracle-Datenbank. Bitte geben Sie Feedback zu diesem Artikel.
Liest auch
Einschränkung in Oracle löschen:Wir können die Einschränkung in Oracle mit dem Befehl alter table löschen. Wir können Primärschlüssel, Fremdschlüssel, Prüfung, nicht null und eindeutige Einschränkung mit demselben Befehl löschen
Koaleszenzfunktion in Oracle:Die Koaleszenzfunktion in Oracle gibt den ersten Ausdruck zurück, wenn er nicht null ist des Ausdrucks.
Supplemental Logging in Oracle:Supplemental Logging in Oracle ist die zusätzliche Spalteninformation, die für die Rekonstruktion von SQL erforderlich ist, um sie auf jede andere Datenbank anzuwenden.
Abfrage zum Auffinden von Objektabhängigkeiten in Oracle:Check out for Query to find Objektabhängigkeiten in Oracle, Abhängigkeit auf untergeordneter Ebene, Abhängigkeit auf übergeordneter Ebene, Finden mit dbms_utility.get_dependency
JSON in Oracle-Datenbank:Sehen Sie sich diesen Beitrag an, um zu erfahren, wie Sie JSON in Oracle verwenden, wie Sie eine Tabelle mit JSON-Daten erstellen, wie Fügen Sie zum Extrahieren die JSON-Daten in Oracle
https://docs.oracle.com/cd/B19306_01/server.102/b14200/clauses002.htm
Empfohlene Kurse
Hier ist der nette Udemy-Kurs für Oracle SQL
Oracle-Sql-Schritt-für-Schritt :Dieser Kurs behandelt grundlegendes SQL, Joins, Erstellen von Tabellen und Ändern ihrer Struktur, Erstellen von Ansichten, Union, Union -all und vieles mehr . Ein großartiger Kurs und ein Muss für SQL-Einsteiger
Der vollständige Oracle SQL-Zertifizierungskurs :Dies ist ein guter Kurs für alle, die für SQL-Entwicklerfähigkeiten einsatzbereit werden möchten. Ein gut erklärter Kurs
Oracle SQL Developer:Grundlagen, Tipps und Tricks :Das Oracle Sql-Entwicklertool wird von vielen Entwicklern verwendet. Dieser Kurs gibt uns Tricks und Lektionen, wie man es effektiv nutzt und ein produktiver SQL-Entwickler wird
Oracle SQL Performance Tuning Masterclass 2020 :Leistungsoptimierung ist eine der kritischsten und gefragtesten Fähigkeiten. Dies ist ein guter Kurs, um mehr darüber zu erfahren und mit der Optimierung der SQL-Leistung zu beginnen