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