Auswahl  

Übersicht der wichtigsten DDL-Befehle (Teil 2) 

Oracle
PL/SQL
12.1, 12.2
08.10.19 (MP)
08.10.19 (MP)

Body

Constraints

Stellt sicher, dass keine Null-Werte in die Spalte eingetragen werden können
 Syntax:
      NOT NULL
 Beispiel:

   CREATE TABLE tab1 (
   name varchar2(50) CONSTRAINT cons1 NOT NULL,
   vname varchar2(20));

    ALTER TABLE tab1 MODIFY (vname NOT NULL);

Setzt voraus, dass jeder Wert einer Spalte eindeutig ist
  Syntax:
   UNIQUE
 
 
Beispiel:

   CREATE TABLE kunden1 (
   nr number, sub_nr number, name varchar2(50),
   CONSTRAINT kdn_nr_uk UNIQUE (nr,sub_nr));

   ALTER TABLE kunden1
   ADD CONSTRAINT kunden_uk UNIQUE (nr);


UNIQUE KEY + NOT NULL
 
Syntax:
   PRIMARY KEY
 
 
Beispiel:
     
CREATE TABLE kunden2 (
   nr number, sub_nr number, CONSTRAINT   kunden_pk PRIMARY KEY (nr,sub_nr));
  
   ALTER TABLE kunden2
   ADD CONSTRAINT kunden_pk PRIMARY KEY (nr);


Legt Beziehung zu Primärschlüssel in derselben oder anderer
Tabelle fest
   

  Syntax:
   FOREIGN KEY REFRENCES
 
Beispiel:
   CREATE TABLE rechnung (
   kd_nr number(2) CONSTRAINT kunden_fk
   REFERENCES kunden(kd_nr)
   ON DELETE cascade);

   ALTER TABLE emp   
   ADD CONSTRAINT emp_deptno_fk FOREIGN KEY
  (deptno) REFERENCES dept(deptno); 


Definiert eine Beziehung, die jede Zeile erfüllen muss
 
Syntax:
      CHECK 
 Beispiel:
  
  CREATE TABLE kunden3 (
   kd_nr number CONSTRAINT kunden_ch
   CHECK (kd_nr>0 AND kd_nr<1000);

   ALTER TABLE kunden4
   ADD CONSTRAINT kunden_geschlecht
   CHECK (geschlecht IN ('M','W')));


Löscht bestehende Constraints
  Syntax:
   ALTER TABLE 
tabelle
  
DROP PRIMARY KEY | UNIQUE (spalte) CONSTRAINT constraint [cascade]  

  Beispiel:  
   ALTER TABLE kunden3
   DROP CONSTRAINT kunden_ch;

 

Sequenzen, Indizes und Synonyme

Legt eine Sequenz an
  Syntax:
   CREATE SEQUENCE name  
  [optionen
]
 
Beispiel: 
   CREATE SEQUENCE emp_empno
   INCREMENT BY 10
   START WITH 2500
   MAXVALUE 9990; 


Verwendet beim Einfügen neuer Daten ein Sequenz
 Syntax:
     INSERT INTO tabelle [(spalte, ...)] 
              
VALUES

                            (name.NEXTVAL,  
               value
,...)
  Beispiel: 
  
INSERT INTO emp (empno, ename, job, sal)
   VALUES
   (emp_empno.NEXTVAL,'HUBER','CLERK',2500);


Legt einen Index auf Spalte einer Tabelle an
 Syntax:
   CREATE [UNIQUE] INDEX
name
  
ON tabelle
(spalte)
   [
tablespace idx_tbs
  Beispiel: 
   CREATE UNIQUE INDEX dept_deptno_idx ON dept     
  
(deptno) TABLESPACE indx; 


Legt ein Synonym für ein DB-Objekt an
  Syntax:
   CREATE [PUBLIC] SYNONYM name
  
FOR object_name
 
  Beispiel: 
   CREATE PUBLIC SYNONYM emp FOR scott.emp;
 

Benutzerverwaltung und Data Contol Language (DCL)

Legt einen neuen Benutzer mit Passwort an
  Syntax:
     CREATE USER  user_name 
          IDENTIFIED BY password

                               [optionen] 
  Beispiel:
    CREATE USER hugo IDENTIFIED BY lion 
   DEFAULT TABLESPACE users
   TEMPORARY TABLESPACE temp
   QUOTA 10M ON users

Ändert das Passwort eines Benutzers
  Syntax:
   ALTER USER  username 
        IDENTIFIED BY password        
  Beispiel:
    ALTER USER hugo IDENTIFIED BY cat;

Gewährt Zugriffsrechte auf die DB und darin enthaltene Strukturen  
  Syntax:
     GRANT  objekt_priv  
          [(spalten)]  
   ON objekt  
   TO {user|role|public}
   [WITH GRANT OPTION]
  Beispiel:
   GRANT CREATE SESSION, CREATE TABLE TO huber;

   GRANT CONNECT, RESOURCE TO hugo;

   GRANT SELECT, INSERT ON freunde
   TO hugo, heidi WITH GRANT OPTION;

   GRANT UPDATE (job, mgr, deptno) ON emp
   TO buchhaltung; 


Entzieht Zugriffsrechte
  Syntax:
   REVOKE 
{privileg, ...|all}
  
ON objekt
   FROM {user, ...|role|public}
   [
cascade constraints]

 Beispiel:
 
    REVOKE SELECT, INSERT ON freunde FROM hugo; 
 

SQL*Plus-Befehle

DESC  table                       zeigt Tabellenstruktur an
                                              
DESC emp

COL  spalte                       ändert Spaltenformat
FORMAT [a]...            COL ename FORMAT a20
                       COL sal FORMAT 99,999.99

CONNECT  user/pwd            stellt Verbindung zu einem anderen Benutzer her
                                             
CONNECT system/manager

DEFINE                                 zeigt definierte Variablen an
                       
DEFINE

SET  parameter         ändert Parameter für die Sitzung
                       SET lines 1000 pages 100 head off

SHOW  parameter               zeigt Parameter der laufenden Sitzung an                                               
                       SHOW linesize
                       SHOW all

EDIT  [dateiname]      ruft Editor auf (Standard: afiedt.buf)
                                             
ED
 
                     ED c:\oracle\ora81\rdbms\admin\scott.sql


EXIT                                      beendet SQL*Plus
                                             
EXIT 

GET  dateiname                 schreibt / holt Inhalt einer gespeicherten Datei in SQL-Puffer
 
                     GET c:\oracle\ora81\bin\date

SAVE  dateiname                 speichert aktuellen Inhalt des SQL-Puffers in Datei
  
                      SAVE date
                       SAVE c:\temp\test.sql


SPOOL  dateiname       speichert Abfrageergebnisse in einer Datei
                       SPOOL c:\temp\sicherung.lst

START  dateiname              führt gespeicherte Befehlsdatei aus
 
                                            START c:\oracle\ora81\bin\date
dateiname                      führt gespeicherte Befehlsdatei aus
                                             
è @ date

CL[EAR]                 option  nimmt Löschoperation vor
 
                     CL SCR

L[IST] [n] [m n]              listet Zeilen im SQL-Puffer auf [im Bereich m - n]
 
                      L 5
R[UN]                                   zeigt aktuelle SQL-Anweisung im Puffer und führt sie aus
 
                     R

 

Besuchen Sie uns doch bei einer unsere über 40 Oracle Schulungen in München - Unterhaching.