sql >> Database >  >> RDS >> Oracle

hoe alle beperkingen op een tafel in Oracle te controleren

Beperkingen op een tabel in Oracle kunnen worden gevonden met behulp van de onderstaande weergaven
user_constraints
all_constraints
dba_constraints
User_cons_columns
all_cons_columns
dba_cons_columns

We kunnen de weergave gebruiken op basis van de toegang die we hebben tot de Oracle-database. Nu ga ik uitleggen hoe je alle beperkingen op een tafel in oracle kunt controleren met behulp van de voorbeelden

Hoe vind je alle beperkingen op een tafel in orakel

Laten we eerst de tabellen maken

SQL> MAAK TABEL "DEPT" ("DEPTNO" NUMBER(2,0), "DNAME" VARCHAR2(14), "LOC" VARCHAR2(13), CONSTRAINT "PK_DEPT" PRIMAIRE SLEUTEL ("DEPTNO") ); Tabel gemaakt. SQL> CREATE TABLE "EMP" ("EMPNO" NUMBER (4,0), "ENAME" VARCHAR2 (10) Niet null, "JOB" VARCHAR2 (9) niet null, "MGR" NUMBER (4,0), "HIREDATE " DATE, "SAL" NUMBER (7,2), "COMM" NUMBER (7,2), "DEPTNO" NUMBER (2,0), CONSTRAINT "PK_EMP" PRIMAIRE SLEUTEL ("EMPNO"), CONSTRAINT "FK_DEPTNO" BUITENLAND SLEUTEL ("DEPTNO") REFERENTIES "DEPT" ("DEPTNO") INSCHAKELEN ); Tabel gemaakt.

Nu kunnen beperkingen worden gevonden met behulp van de onderstaande Oracle Select Constraint-query's

SQL> col CONSTRAINT_NAME formaat a20 SQL> col INDEX_NAME formaat a20 SQL> col CONSTRAINT_TYPE formaat a5 SQL> kolom SEARCH_CONDITION formaat a30 SQL>kolom R_CONSTRAINT_NAME formaat a20 selecteer CONSTRAINT_NAME C_NAME,INDEX_NAME,CONSTRAINT_TYPE_NAME_NAME_TYPE,CONSearch_condition, where 'EMP';

Hier definieert CONSTRAINT_TYPE het type beperkingen
P staat voor Oracle Primary Key
C staat voor controlebeperkingen of niet-nulbeperkingen
R staat voor Foreign Key-beperkingen
U staat voor Unique Key-beperkingen


Nu kunnen de kolommen Primaire sleutel, Foreign Key en Unieke sleutelbeperkingen worden gevonden met behulp van de onderstaande zoekopdracht

SQL> kolom OWNER formaat a10 SQL> kolom CONSTRAINT_NAME formaat a120 SQL> kolom CONSTRAINT_NAME formaat a20 SQL> kolom COLUMN_NAME formaat a20 SQL> selecteer OWNER,CONSTRAINT_NAME ,COLUMN_NAME,POSITION van User_cons_columns waar TABLE_NAME='EMP';  

We krijgen null-waarden voor de kolom Positie als we een enkele kolom in de beperking hebben. Als er meerdere kolommen aanwezig zijn in de beperkingen, zal Positie de volgorde van de kolom in de beperking specificeren

Vergelijkbare zoekopdrachten kunnen worden gebruikt voor het selecteren van beperkingen op DEPT-tabel

SQL> selecteer CONSTRAINT_NAME C_NAME,INDEX_NAME,CONSTRAINT_TYPE,Search_condition,R_CONSTRAINT_NAME R_NAME uit user_constraints waar TABLE_NAME='DEPT';
SQL> selecteer OWNER,CONSTRAINT_NAME,COLUMN_NAME,POSITION van User_cons_columns waar TABLE_NAME='DEPT';

Hoe kan ik een beperking op naam vinden in Oracle

selecteer CONSTRAINT_NAME ,INDEX_NAME,CONSTRAINT_TYPE,Search_condition,R_CONSTRAINT_NAME R_NAME uit user_constraints waarbij CONSTRAINT_NAME='&1'of selecteer eigenaar, CONSTRAINT_NAME ,INDEX_NAME,CONSTRAINT_TYPE,Search_condition1. 

Hoe de referentiële integriteitsbeperkingen in de tabel controleren

SQL> selecteer CONSTRAINT_NAME C_NAME,INDEX_NAME,CONSTRAINT_TYPE,Search_condition,R_CONSTRAINT_NAME R_NAME uit user_constraints waarbij TABLE_NAME='EMP' en CONSTRRAINT_TYPE='R';

De bovenliggende tabel waarnaar wordt verwezen, kan worden gevonden met behulp van de R_CONSTRAINT_NAME

 SQL> selecteer CONSTRAINT_NAME,INDEX_NAME,CONSTRAINT_TYPE,table_name uit user_constraints waarbij CONSTRRAINT_NAME='PK_DEPT';

Hoe de primaire sleutel in de tabel te controleren

SQL> selecteer CONSTRAINT_NAME C_NAME,INDEX_NAME,CONSTRAINT_TYPE uit user_constraints waarbij TABLE_NAME='EMP' en CONSTRAINT_TYPE='P'; C_NAME INDEX_NAME CONST ---- ------- ----- PK_EMP PK_EMP P

query om unieke beperkingen op een tafel in orakel te vinden

SQL> CREATE TABLE DEPT_MASTER ( dept_nr NUMBER UNIEK, dept_name varchar2(100) NOT NULL, dept_status NUMBER (1,0) NOT NULL, create_at datum); Tabel gemaakt. SQL> selecteer CONSTRAINT_NAME,INDEX_NAME,CONSTRAINT_TYPE uit user_constraints waar TABLE_NAME='DEPT_MASTER' en CONSTRAINT_TYPE='U';

Andere zoekopdrachten voor beperkingen

select table_name van user_constraints waar (r_constraint_name) in (select constraint_name van user_constraints waar table_name ='T' en constraint_type in ( 'P', 'U' ) );

We kunnen dus gemakkelijk alle beperkingen op de tabel in Oracle vinden met behulp van datadictionary-weergaven. We kunnen dan elke actie ondernemen, zoals wijzigen, uitschakelen, laten vallen, we willen deze beperkingen overnemen. Beperkingen dwingen regels voor gegevensintegriteit af in de Oracle-database en we moeten voorzichtig zijn bij het wijzigen/verwijderen ervan.

Ik hoop dat je deze inhoud leuk vindt over het controleren van alle beperkingen op een tabel in een Oracle-database. Geef alsjeblieft feedback op dit artikel.

Leest ook Beperking in Oracle laten vallen:We kunnen de beperking in Oracle laten vallen met behulp van de opdracht alter table. we kunnen de primaire, externe sleutel, vinkje, niet null en unieke beperking laten vallen met dezelfde opdracht
Coalesce-functie in Oracle:de Coalesce-functie in Oracle zal de eerste expressie retourneren als deze niet nul is, anders zal hij de rest samenvoegen van de uitdrukking.
Aanvullende logboekregistratie in Oracle:aanvullende logboekregistratie in Oracle is de aanvullende kolominformatie die nodig is voor het reconstrueren van SQL om toe te passen op een andere database
Query om objectafhankelijkheden in Oracle te vinden:Check out for Query to find objectafhankelijkheden in Oracle, afhankelijkheid op kindniveau, afhankelijkheid op bovenliggend niveau, vinden met behulp van dbms_utility.get_dependency
JSON in Oracle-database:bekijk dit bericht over het gebruik van JSON in Oracle, hoe u een tabel maakt met JSON-gegevens, hoe om uit te pakken, voegt u de JSON-gegevens in oracle
https://docs.oracle.com/cd/B19306_01/server.102/b14200/clauses002.htm

Aanbevolen cursussen

Hier is de mooie Udemy-cursus voor Oracle SQL
Oracle-Sql-Step-voor-stap:deze cursus behandelt basis-sql, joins, tabellen maken en de structuur wijzigen, weergave maken, Union, Union -alles en nog veel meer . Een geweldige cursus en een must-have cursus voor SQL-starters
De complete Oracle SQL-certificeringscursus :Dit is een goede cursus voor iedereen die Job-klaar wil zijn voor SQL-ontwikkelaarsvaardigheden. Een mooi uitgelegde cursus
Oracle SQL Developer:Essentials, Tips and Tricks :Oracle Sql-ontwikkelaarstool wordt door veel ontwikkelaars gebruikt. Deze cursus geeft ons trucs en lessen om het effectief te gebruiken en een productieve sql-ontwikkelaar te worden
Oracle SQL Performance Tuning Masterclass 2020 :Het afstemmen van prestaties is een van de belangrijkste en meest gezochte vaardigheden. Dit is een goede cursus om erover te leren en te beginnen met het afstemmen van sql-prestaties


  1. De grootte van een database controleren in MySQL

  2. Hoe utf-8 mb4-teken (emoji in ios5) in mysql in te voegen?

  3. Tabel- of kolomnaam mag niet beginnen met numeriek?

  4. Hoe een CSV-bestand in een MySQL-tabel te importeren