sql >> Databasteknik >  >> RDS >> Oracle

hur man kontrollerar alla begränsningar på ett bord i oracle

Begränsningar på en tabell i Oracle kan hittas med hjälp av nedanstående vyer
user_constraints
all_constraints
dba_constraints
User_cons_columns
all_cons_columns
dba_cons_columns

Vi kan använda vyn enligt den åtkomst vi har i Oracle-databasen. Nu ska jag förklara hur man kontrollerar alla begränsningar på en tabell i Oracle med hjälp av exemplen

Hur man hittar alla begränsningar på en tabell i Oracle

Låt oss först skapa tabellerna

SQL> SKAPA TABELL "DEPT" ( "DEPTNO" NUMMER(2,0), "DNAME" VARCHAR2(14), "LOC" VARCHAR2(13), CONSTRAINT "PK_DEPT" PRIMÄRNYCKEL ("DEPTNO") ); Tabell skapad. SQL> SKAPA TABELL "EMP" ( "EMPNO" NUMMER(4,0), "ENAME" VARCHAR2(10) Inte null, "JOBB" VARCHAR2(9) inte null, "MGR" NUMMER(4,0), "HIREDATE " DATE, "SAL" NUMMER(7,2), "COMM" NUMBER(7,2), "DEPTNO" NUMBER(2,0), CONSTRAINT "PK_EMP" PRIMÄRNYCKEL ("EMPNO"), CONSTRAINT "FK_DEPTNO" UTLÄNDSK KEY ("DEPTNO") REFERENSER "DEPT" ("DEPTNO") ENABLE ); Tabell skapad.

Nu kan begränsningar hittas med hjälp av Oracle Select Constraint-frågorna nedan

SQL> kol CONSTRAINT_NAME format a20 SQL> kol. INDEX_NAME format a20 SQL> kol CONSTRAINT_TYPE format a5 SQL> kolumn SEARCH_CONDITION format a30 SQL>kolumn R_CONSTRAINT_NAME format a20 välj CONSTRAINT_NAME C_NAME,INDEX_NAME,CONSTRAINT_TYPE,CONSTRAINT_TYPE_Search_NAME=användarvillkor TABLE_Search_NAME 'EMP';

Här definierar CONSTRAINT_TYPE typen av begränsningar
P står för Oracle Primary Key
C står för check constraints or not null constraints
R står för Foreign Key constraints
U står för Unique Key constraints


Nu kan kolumnerna Primärnyckel, Främmande nyckel och Unika nyckelbegränsningar hittas med hjälp av frågan nedan

SQL> kolumn OWNER format a10 SQL> kolumn CONSTRAINT_NAME format a120 SQL> kolumn CONSTRAINT_NAME format a20 SQL> kolumn COLUMN_NAME format a20 SQL> välj OWNER,CONSTRAINT_NAME ,COLUMN_NAME,POSITION från User_cons_columns där TABLE_NAME='EMP';

Vi kommer att få nollvärden för kolumnen Position om vi har en enda kolumn i begränsningen. Om det finns flera kolumner i begränsningarna kommer Position att ange ordningen på kolumnen i begränsningen

Liknande frågor kan användas för att välja begränsningar på DEPT-tabellen

SQL> välj CONSTRAINT_NAME C_NAME,INDEX_NAME,CONSTRAINT_TYPE,Search_condition,R_CONSTRAINT_NAME R_NAME från user_constraints där TABLE_NAME='DEPT';
SQL> välj OWNER,CONSTRAINT_NAME ,COLUMN_NAME,POSITION från User_cons_NAME'='DEBLE_NAME' /pre>  

Hur man hittar begränsningar efter namn i Oracle

välj CONSTRAINT_NAME ,INDEX_NAME,CONSTRAINT_TYPE,Search_condition,R_CONSTRAINT_NAME R_NAME från user_constraints där CONSTRAINT_NAME='&1'ellervälj ägare, CONSTRAINT_NAME ,INDEX_NAME,CONSTRAINT_TYPE,Search_condition,R_CONSTRAINT_NAME villkor'R_NAME=där CONSTRAINT_NAME R_NAME> från alla CONSTRAINT_NAME R_NAME' 

Hur man kontrollerar referensintegritetsbegränsningarna i tabellen

SQL> välj CONSTRAINT_NAME C_NAME,INDEX_NAME,CONSTRAINT_TYPE,Search_condition,R_CONSTRAINT_NAME R_NAME från user_constraints där TABLE_NAME='EMP' och CONSTRAINT_TYPE='R';

Den överordnade tabellen som refereras till kan hittas med R_CONSTRAINT_NAME

 SQL> välj CONSTRAINT_NAME,INDEX_NAME,CONSTRAINT_TYPE,tabellnamn från user_constraints där CONSTRAINT_NAME='PK_DEPT';

Hur man kontrollerar primärnyckeln i tabellen

SQL> välj CONSTRAINT_NAME C_NAME,INDEX_NAME,CONSTRAINT_TYPE från user_constraints där TABLE_NAME='EMP' och CONSTRAINT_TYPE='P'; C_NAME INDEX_NAME CONST ---- ------- ----- PK_EMP PK_EMP P

fråga för att hitta unika begränsningar på en tabell i Oracle

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 ); Tabell skapad. SQL> välj CONSTRAINT_NAME,INDEX_NAME,CONSTRAINT_TYPE från user_constraints där TABLE_NAME='DEPT_MASTER' och CONSTRAINT_TYPE='U';

Andra frågor om begränsningar

välj tabellnamn från user_constraints där (r_constraint_name) i (välj constraint_name från user_constraints där tabellnamn ='T' och constraint_typ in ( 'P', 'U') );

Så vi kan enkelt hitta alla begränsningar på bordet i Oracle med hjälp av dataordbokvyer. Vi kan sedan vidta vilken åtgärd som helst som modifiera, inaktivera, släppa, vi vill ta på oss dessa begränsningar. Restriktioner upprätthåller dataintegritetsregler i Oracle-databasen och vi måste vara försiktiga när vi ändrar/släpper dem.

Jag hoppas att du gillar det här innehållet om hur man kontrollerar alla begränsningar på en tabell i en orakeldatabas. Lämna gärna feedback om den här artikeln.

Läser också
släpp begränsning i Oracle :Vi kan släppa begränsningen i Oracle med hjälp av kommandot alter table. vi kan släppa primär, främmande nyckel, check, inte null och unik restriktion med samma kommando
Coalesce-funktion i Oracle:Coalesce-funktionen i oracle kommer att returnera det första uttrycket om det inte är null, annars kommer det att göra resten av uttrycket.
Supplerande inloggning i Oracle:Kompletterande inloggning i Oracle är den ytterligare kolumninformation som krävs för att rekonstruera SQL för att tillämpas på vilken annan databas som helst
Fråga för att hitta objektberoende i Oracle:Kolla in för Query för att hitta objektberoende i Oracle, beroende på underordnad nivå, beroende på föräldranivå, hitta med dbms_utility.get_dependency
JSON i Oracle-databas:Kolla in det här inlägget om hur man använder JSON i Oracle, hur man skapar en tabell som innehåller JSON-data, hur för att extrahera, infoga JSON-data i oracle
https://docs.oracle.com/cd/B19306_01/server.102/b14200/clauses002.htm

Rekommenderade kurser

Här är den trevliga Udemy-kursen för Oracle SQL
Oracle-Sql-Steg-för-steg :Den här kursen täcker grundläggande sql, går med, skapar tabeller och ändrar dess struktur, Skapa vy, Union, Union -allt och mycket annat . En bra kurs och måste-kurs för SQL-startare
The Complete Oracle SQL Certification Course :Det här är en bra kurs för alla som vill vara redo för SQL-utvecklare. En trevlig förklarad kurs
Oracle SQL Developer:Essentials, Tips and Tricks :Oracle Sql-utvecklarverktyget används av många utvecklare. Den här kursen ger oss tricks och lektioner om hur man effektivt använder den och blir en produktiv SQL-utvecklare
Oracle SQL Performance Tuning Masterclass 2020 :Prestandajustering är en av de kritiska och mest eftertraktade färdigheterna. Det här är en bra kurs för att lära dig mer om det och börja göra sql prestandajustering


  1. Undvika PostgreSQL dödlägen när du utför massuppdateringar och raderingsåtgärder

  2. MySQL och NoSQL:Hjälp mig att välja rätt

  3. MySQL Workbench Tutorial – En omfattande guide till RDBMS-verktyget

  4. Hur RANK() fungerar i SQL Server