Skip to Main Content

 

Auswahl  

Übersicht der wichtigsten DDL-Befehle (Teil 2) 

Oracle
SQL
RDBMS 11.x
08.10.19 (MP)
12.07.23(MD)
Oracle DDL Befehle

Passende Schulungen zum Thema

Constraints

Stellt sicher, dass keine Null-Werte in die Spalte eingetragen werden können

 Beispiel:

CREATE TABLE t (
name varchar2(50) CONSTRAINT cons1 NOT NULL,
vname varchar2(20));
ALTER TABLE t MODIFY (vname NOT NULL);


Setzt voraus, dass jeder Wert einer Spalte eindeutig ist 

 Beispiel:

CREATE TABLE kunden (
nr number, sub_nr number, name varchar2(50),
CONSTRAINT kdn_nr_uk UNIQUE (nr,sub_nr));
ALTER TABLE kunden
ADD CONSTRAINT kunden_uk UNIQUE (nr);


UNIQUE KEY + NOT NULL

 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    

 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
 
 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 eine 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 1G 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