8 Erzeugen und Verwalten von Tabellen. 10-2 Ziele Kennenlernen der wichtigsten Datenbankobjekte...

21
8 8 Erzeugen und Verwalten von Tabellen

Transcript of 8 Erzeugen und Verwalten von Tabellen. 10-2 Ziele Kennenlernen der wichtigsten Datenbankobjekte...

Page 1: 8 Erzeugen und Verwalten von Tabellen. 10-2 Ziele Kennenlernen der wichtigsten Datenbankobjekte Anlegen von Tabellen Datentypen zur Definition von Spalten.

88

Erzeugen und Verwalten von Tabellen

Erzeugen und Verwalten von Tabellen

Page 2: 8 Erzeugen und Verwalten von Tabellen. 10-2 Ziele Kennenlernen der wichtigsten Datenbankobjekte Anlegen von Tabellen Datentypen zur Definition von Spalten.

10-2

ZieleZiele

• Kennenlernen der wichtigsten Datenbankobjekte

• Anlegen von Tabellen

• Datentypen zur Definition von Spalten kennenlernen

• Ändern von Tabellendefinitionen

• Löschen, Umbenennen und Abschneiden von Tabellen

• Kennenlernen der wichtigsten Datenbankobjekte

• Anlegen von Tabellen

• Datentypen zur Definition von Spalten kennenlernen

• Ändern von Tabellendefinitionen

• Löschen, Umbenennen und Abschneiden von Tabellen

Page 3: 8 Erzeugen und Verwalten von Tabellen. 10-2 Ziele Kennenlernen der wichtigsten Datenbankobjekte Anlegen von Tabellen Datentypen zur Definition von Spalten.

10-3

Datenbank-ObjekteDatenbank-Objekte

Objekt Beschreibung

Tabelle Basiselement; besteht aus Zeilen und

Spalten

View Stellt eine logische Teilmenge von Daten

aus ein oder mehr Tabellen dar (Sicht)

Sequence Generiert Primärschlüsselwerte

Index Verbessert die Performance von Anfragen

Synonym Alternativer Name für Objekte

Page 4: 8 Erzeugen und Verwalten von Tabellen. 10-2 Ziele Kennenlernen der wichtigsten Datenbankobjekte Anlegen von Tabellen Datentypen zur Definition von Spalten.

10-4

NamenskonventionenNamenskonventionen

• Beginnt mit einem Buchstaben

• Länge 1-30 Zeichen

• Enthält nur A–Z, a–z, 0–9, _, $, und #

• Name darf nicht bereits für ein anderes Objekt des gleichen Benutzers vergeben sein

• Darf kein in Oracle reserviertes Wort sein

• Beginnt mit einem Buchstaben

• Länge 1-30 Zeichen

• Enthält nur A–Z, a–z, 0–9, _, $, und #

• Name darf nicht bereits für ein anderes Objekt des gleichen Benutzers vergeben sein

• Darf kein in Oracle reserviertes Wort sein

Page 5: 8 Erzeugen und Verwalten von Tabellen. 10-2 Ziele Kennenlernen der wichtigsten Datenbankobjekte Anlegen von Tabellen Datentypen zur Definition von Spalten.

10-5

Der CREATE TABLE BefehlDer CREATE TABLE Befehl

• Spezifiziert werden:

– Name der Tabelle

– Name, Datentyp und Länge der Spalte

• Spezifiziert werden:

– Name der Tabelle

– Name, Datentyp und Länge der Spalte

CREATE TABLE [schema.]table (column datatype [DEFAULT expr][, ...]);

Page 6: 8 Erzeugen und Verwalten von Tabellen. 10-2 Ziele Kennenlernen der wichtigsten Datenbankobjekte Anlegen von Tabellen Datentypen zur Definition von Spalten.

10-6

Referenzen auf Tabellen anderer Benutzer

Referenzen auf Tabellen anderer Benutzer

• Tabellen, die anderen Benutzern gehören, sind nicht im eigenen Schema zu finden.

• Zum Zugriff auf diese Tabelle ist der Name des Eigentümers als Präfix zu verwenden.

• Tabellen, die anderen Benutzern gehören, sind nicht im eigenen Schema zu finden.

• Zum Zugriff auf diese Tabelle ist der Name des Eigentümers als Präfix zu verwenden.

Page 7: 8 Erzeugen und Verwalten von Tabellen. 10-2 Ziele Kennenlernen der wichtigsten Datenbankobjekte Anlegen von Tabellen Datentypen zur Definition von Spalten.

10-7

Die DEFAULT OptionDie DEFAULT Option• Definiert einen Standardwert (Default) für

eine Spalte während des Insert.• Definiert einen Standardwert (Default) für

eine Spalte während des Insert.

… hiredate DATE DEFAULT SYSDATE, …

• Gültige Werte sind Literale, Ausdrücke oder SQL-Funktionen.

• Illegale Werte sind Namen anderer Spalten oder Pseudospalten.

• Der Default-Datentyp muß zum Spaltentyp passen.

• Gültige Werte sind Literale, Ausdrücke oder SQL-Funktionen.

• Illegale Werte sind Namen anderer Spalten oder Pseudospalten.

• Der Default-Datentyp muß zum Spaltentyp passen.

Page 8: 8 Erzeugen und Verwalten von Tabellen. 10-2 Ziele Kennenlernen der wichtigsten Datenbankobjekte Anlegen von Tabellen Datentypen zur Definition von Spalten.

10-8

Anlegen von TabellenAnlegen von Tabellen

SQL> CREATE TABLE dept 2 (deptno NUMBER(2), 3 dname VARCHAR2(14), 4 loc VARCHAR2(13));Table created.Table created.

• Erzeugen (Create).• Erzeugen (Create).

• Prüfe das Ergebnis. • Prüfe das Ergebnis. SQL> DESCRIBE dept

Name Null? Type --------------------------- -------- --------- DEPTNO NUMBER(2) DNAME VARCHAR2(14) LOC VARCHAR2(13)

Page 9: 8 Erzeugen und Verwalten von Tabellen. 10-2 Ziele Kennenlernen der wichtigsten Datenbankobjekte Anlegen von Tabellen Datentypen zur Definition von Spalten.

10-9

Tabellen in der Oracle DatenbankTabellen in der Oracle Datenbank

• User Tables (Benutzertabellen)

– Menge von Tabellen, die vom Benutzer erzeugt und gepflegt werden

– Enthält Benutzerinformationen

• Data Dictionary (Datenwörterbuch)

– Menge von Tabellen, die vom Oracle Server angelegt werden

– Enthält Datenbankinformationen

• User Tables (Benutzertabellen)

– Menge von Tabellen, die vom Benutzer erzeugt und gepflegt werden

– Enthält Benutzerinformationen

• Data Dictionary (Datenwörterbuch)

– Menge von Tabellen, die vom Oracle Server angelegt werden

– Enthält Datenbankinformationen

Page 10: 8 Erzeugen und Verwalten von Tabellen. 10-2 Ziele Kennenlernen der wichtigsten Datenbankobjekte Anlegen von Tabellen Datentypen zur Definition von Spalten.

10-10

Anfragen im Data DictionaryAnfragen im Data Dictionary

• Tabellen, die dem Benutzer gehören.• Tabellen, die dem Benutzer gehören.

• Anzeige von Tabellen, Views, Synonymen und Sequenzen, die dem Benutzer gehören. • Anzeige von Tabellen, Views, Synonymen

und Sequenzen, die dem Benutzer gehören.

SQL> SELECT * 2 FROM user_tables;

SQL> SELECT * 2 FROM user_catalog;

Page 11: 8 Erzeugen und Verwalten von Tabellen. 10-2 Ziele Kennenlernen der wichtigsten Datenbankobjekte Anlegen von Tabellen Datentypen zur Definition von Spalten.

10-11

DatentypenDatentypen

Datentyp Beschreibung

VARCHAR2(länge) Variabel lange Zeichenkette

CHAR(länge) Zeichenkette mit fester Länge

NUMBER(p,s) Variabel lange numerische Daten

DATE Datum und Uhrzeit

LONG Variabel lange Zeichenkette bis zu 2 Gigabytes

CLOB Zeichendaten bis zu 4 Gigabytes

RAW and LONG RAW Binäre Rohdaten

BLOB Binärdaten bis zu 4 Gigabytes

BFILE Binärdaten gespeichert in einer externen Datei, bis zu 4 Gigabytes

Page 12: 8 Erzeugen und Verwalten von Tabellen. 10-2 Ziele Kennenlernen der wichtigsten Datenbankobjekte Anlegen von Tabellen Datentypen zur Definition von Spalten.

10-12

Erzeugen einer Tabelle mit Hilfe von Subquery

Erzeugen einer Tabelle mit Hilfe von Subquery

• Erzeugen einer Tabelle und Einfügen von Zeilen durch Kombination von CREATE TABLE Befehl und AS subquery Option.

• Anzahl Spalten entspricht der Anzahl der Spalten in der Subquery.

• Define columns with column names anddefault values.

• Erzeugen einer Tabelle und Einfügen von Zeilen durch Kombination von CREATE TABLE Befehl und AS subquery Option.

• Anzahl Spalten entspricht der Anzahl der Spalten in der Subquery.

• Define columns with column names anddefault values.

CREATE TABLE table [(column, column...)]AS subquery;

Page 13: 8 Erzeugen und Verwalten von Tabellen. 10-2 Ziele Kennenlernen der wichtigsten Datenbankobjekte Anlegen von Tabellen Datentypen zur Definition von Spalten.

10-13

Erzeugen einer Tabelle mittels Subquery

Erzeugen einer Tabelle mittels Subquery

Name Null? Type ---------------------------- -------- ----- EMPNO NOT NULL NUMBER(4) ENAME VARCHAR2(10) ANNSAL NUMBER HIREDATE DATE

Name Null? Type ---------------------------- -------- ----- EMPNO NOT NULL NUMBER(4) ENAME VARCHAR2(10) ANNSAL NUMBER HIREDATE DATE

SQL> DESCRIBE dept30

SQL> CREATE TABLE dept30 2 AS 3 SELECT empno, ename, sal*12 ANNSAL, hiredate 4 FROM emp 5 WHERE deptno = 30;Table created.Table created.

Page 14: 8 Erzeugen und Verwalten von Tabellen. 10-2 Ziele Kennenlernen der wichtigsten Datenbankobjekte Anlegen von Tabellen Datentypen zur Definition von Spalten.

10-14

Der ALTER TABLE BefehlDer ALTER TABLE Befehl

ALTER TABLE Befehl für:ALTER TABLE Befehl für:

• Hinzufügen einer neuen Spalte

• Ändern einer bestehenden Spalte

• Definiere Default-Wert für die neue Spalte

ALTER TABLE Befehl für:ALTER TABLE Befehl für:

• Hinzufügen einer neuen Spalte

• Ändern einer bestehenden Spalte

• Definiere Default-Wert für die neue Spalte

ALTER TABLE tableADD (column datatype [DEFAULT expr]

[, column datatype]...);

ALTER TABLE tableMODIFY (column datatype [DEFAULT expr]

[, column datatype]...);

Page 15: 8 Erzeugen und Verwalten von Tabellen. 10-2 Ziele Kennenlernen der wichtigsten Datenbankobjekte Anlegen von Tabellen Datentypen zur Definition von Spalten.

10-15

Hinzufügen einer SpalteHinzufügen einer Spalte

DEPT30DEPT30 EMPNO ENAME ANNSAL HIREDATE ------ ---------- -------- 7698 BLAKE 34200 01-MAY-81 7654 MARTIN 15000 28-SEP-81 7499 ALLEN 19200 20-FEB-81 7844 TURNER 18000 08-SEP-81...

“…“…füge füge eine neue eine neue Spalte in Spalte in die die DEPT30 DEPT30 Tabelle ein Tabelle ein …”…”

DEPT30DEPT30 EMPNO ENAME ANNSAL HIREDATE ------ ---------- -------- 7698 BLAKE 34200 01-MAY-81 7654 MARTIN 15000 28-SEP-81 7499 ALLEN 19200 20-FEB-81 7844 TURNER 18000 08-SEP-81...

JOB

JOB

Neue SpalteNeue Spalte

Page 16: 8 Erzeugen und Verwalten von Tabellen. 10-2 Ziele Kennenlernen der wichtigsten Datenbankobjekte Anlegen von Tabellen Datentypen zur Definition von Spalten.

10-16

Hinzufügen einer SpalteHinzufügen einer Spalte

• Verwendung der ADD Klausel • Verwendung der ADD Klausel

EMPNO ENAME ANNSAL HIREDATE JOB--------- ---------- --------- --------- ---- 7698 BLAKE 34200 01-MAY-81 7654 MARTIN 15000 28-SEP-81 7499 ALLEN 19200 20-FEB-81 7844 TURNER 18000 08-SEP-81...6 rows selected.

EMPNO ENAME ANNSAL HIREDATE JOB--------- ---------- --------- --------- ---- 7698 BLAKE 34200 01-MAY-81 7654 MARTIN 15000 28-SEP-81 7499 ALLEN 19200 20-FEB-81 7844 TURNER 18000 08-SEP-81...6 rows selected.

SQL> ALTER TABLE dept30 2 ADD (job VARCHAR2(9));Table altered.Table altered.

• Die neue Spalte wird die letzte Spalte• Die neue Spalte wird die letzte Spalte

Page 17: 8 Erzeugen und Verwalten von Tabellen. 10-2 Ziele Kennenlernen der wichtigsten Datenbankobjekte Anlegen von Tabellen Datentypen zur Definition von Spalten.

10-17

Ändern einer SpalteÄndern einer Spalte

• Änderbar sind Datentyp, Länge und Default-Wert der Spalte.

• Eine Änderung des Default-Werts beeinflußt nur nachfolgende Ein-fügungen in die Tabelle.

• Änderbar sind Datentyp, Länge und Default-Wert der Spalte.

• Eine Änderung des Default-Werts beeinflußt nur nachfolgende Ein-fügungen in die Tabelle.

ALTER TABLE dept30MODIFY (ename VARCHAR2(15));Table altered.Table altered.

Page 18: 8 Erzeugen und Verwalten von Tabellen. 10-2 Ziele Kennenlernen der wichtigsten Datenbankobjekte Anlegen von Tabellen Datentypen zur Definition von Spalten.

10-18

Löschen einer Table (Drop)Löschen einer Table (Drop)

• Alle Daten und die Struktur der Tabelle werden gelöscht.

• Laufende Transaktionen werden beendet.

• Alle Indexe werden gelöscht.

• Dieser Befehl kann nicht rückgängig gemacht werden.

• Alle Daten und die Struktur der Tabelle werden gelöscht.

• Laufende Transaktionen werden beendet.

• Alle Indexe werden gelöscht.

• Dieser Befehl kann nicht rückgängig gemacht werden.

SQL> DROP TABLE dept30;Table dropped.Table dropped.

Page 19: 8 Erzeugen und Verwalten von Tabellen. 10-2 Ziele Kennenlernen der wichtigsten Datenbankobjekte Anlegen von Tabellen Datentypen zur Definition von Spalten.

10-19

Objekte umbennenObjekte umbennen

• Zur Umbenennung von Tabelle, View oder Sequenz: RENAME Befehl.

• Nur der Eigentümer kann umbennen.

• Zur Umbenennung von Tabelle, View oder Sequenz: RENAME Befehl.

• Nur der Eigentümer kann umbennen.

SQL> RENAME dept TO department;Table renamed.Table renamed.

Page 20: 8 Erzeugen und Verwalten von Tabellen. 10-2 Ziele Kennenlernen der wichtigsten Datenbankobjekte Anlegen von Tabellen Datentypen zur Definition von Spalten.

10-20

ZusammenfassungZusammenfassung

Befehl Beschreibung

CREATE TABLE Erzeugt eine Tabelle

ALTER TABLE Ändert Tabellenstruktur

DROP TABLE Löscht Zeilen und Tabellenstruktur

RENAME Ändert den Namen von Tabelle, Sicht oder Sequenz

TRUNCATE Löscht alle Zeilen der Tabelle und gibt den Speicherbereich frei

COMMENT Hinzufügen von Kommentaren zu einer Tabelle oder View

Page 21: 8 Erzeugen und Verwalten von Tabellen. 10-2 Ziele Kennenlernen der wichtigsten Datenbankobjekte Anlegen von Tabellen Datentypen zur Definition von Spalten.

10-21

ÜbungenÜbungen

• Anlegen neuer Tabellen

• Erzeugen neuer Tabellen mittels CREATE TABLE AS ...

• Ändern von Spaltendefinitionen

• Vorhandensein von Tabellen testen

• Löschen von Tabellen

• Ändern von Tabellen

• Anlegen neuer Tabellen

• Erzeugen neuer Tabellen mittels CREATE TABLE AS ...

• Ändern von Spaltendefinitionen

• Vorhandensein von Tabellen testen

• Löschen von Tabellen

• Ändern von Tabellen