DarkSQL by Darkleo.com
DarkSQL Einführung in die Syntax
Data Definition Language (DDL)
Tabellen
Anlegen einer Tabelle
Löschen einer Tabelle
Ändern der Tabelle
Index
Key (Primary und Foreign)
Ansichten (Views)
Data Manipulation Language (DML)
INSERT
UPDATE
DELETE
Anfragen: SELECT
WHERE-Klausel
Herstellerspezifisches
Die Systemtabellen
Ex- und Import der Daten
Definitionen
Notation der Befehle
CREATE TABLE <TabellenName> ( [ PRIMARY KEY ( <FeldNamensListe> ), ] [ FOREIGN KEY ( <FeldName> ) REFERENCES <TabellenName>, ]* [ UNIQUE ( <FeldNamensListe> ), ] <FeldDeklarationen> ) |
Die Verwendung des Schlüsselwortes UNIQUE an dieser Stelle wird nicht von allen Datenbanken unterstützt. In solchen Fällen verwendet man einen INDEX mit dem Attribut UNIQUE.
ALTER TABLE <TabellenName> DROP <Spalte> ALTER TABLE <TabellenName> ADD <FeldDeklarationen> ALTER TABLE <TabellenName> MODIFY <FeldDeklaration> ALTER TABLE <TabellenName> ALTER <VorhandeneSpalte NeuerDatentyp> |
Mit DROP wird eine Spalte wieder gelöscht. Mit ADD wird eine oder mehrere Spalten hinzugefügt. Mit MODIFY wird eine Spalte in ihren Datentyp geändert.
CREATE [UNIQUE] INDEX <Indexname> ON <TabellenName> ( <FeldNamensListe> ); |
Auf den Primary Key kann sich der Foreign Key einer anderen Tabelle beziehen. In dieser Spalte befindet sich der Wert des Primary Key der Zieltabellenzeile, auf den referenziert werden soll. Bevor ein Foreign Key gesetzt wird, muss der Primary Key der Zieltabelle definiert sein.
ALTER TABLE <TabellenName> { [ADD] | DROP } PRIMARY KEY ( <FeldNamensListe> ); ALTER TABLE <TabellenName> { [ADD] | DROP } FOREIGN KEY <KeyName> ( <FeldName> ) REFERENCES <TabellenName>; |
CREATE VIEW <ViewName> [ (<FeldNamensListe>) ] AS SELECT <Select-Parameter> ; |
Wird die FeldNamensListe angegeben, werden die Spaltennamen des FROM-Attribut auf diese Namen umgesetzt.
INSERT INTO <TabellenName> ( <FeldNamensListe> ) VALUES (<Wert> [, <Wert>]* ); |
Es kann durch Kombination mit einer Abfrage auch der Inhalt einer oder mehrerer anderer Tabellen eingefügt werden.
INSERT INTO <Tabellenname> [ ( <Feldname> [, <Feldname]* ) ] SELECT <Select-Parameter> ; |
UPDATE <TabellenName> SET <FeldName>=<Wert> [,<FeldName>=<Wert>]* <WhereKlausel> |
DELETE FROM <TabellenName> <WhereKlausel> |
SELECT {<FeldNamensListe> | '*' } FROM <TabellenName> [ <WhereKlausel> ] ; |
WHERE <Bedingung> |
Das WHERE kennt neben =, <, >, <>, <= und >= die Vergleichsoperatoren:
LIKE | enthält die Zeichenkette. Dabei gelten die Wildcards _ für ein Zeichen und % für eine beliebige Zeichenkette. |
BETWEEN | der Wert liegt zwischen zwei Werten. Beispiel: Wert BETWEEN 'A' AND 'Z' |
IS NULL | der Wert ist bisher nicht besetzt worden. Beispiel: Wert IS NULL |
SELECT * FROM USER_TABLES; SELECT * FROM ALL_TABLES; SELECT * FROM DBA_TABLES; |
SELECT * FROM systables; --zeigt alle angelegten Tabellen der DB SELECT * FROM syscolumns WHERE tbname='ORDERS'; --zeigt alle Spalten der Tabelle ORDERS |
UNLOAD { ASCII | DIF | [ DATA ] SQL } <DateiName> [ OVERWRITE ] <TabellenName> LOAD { ASCII | DIF | SQL } <DateiName> ; |
Mit dem Schlüsselwort ASCII werden reine Textdateien mit den Tabelleninhalten erzeugt. DIF ist ein Standard zum Austausch von Tabellen zwischen Datenbanken und Spreadsheets und enthält keine Strukturinformation. SQL erzeugt eine Datei, die SQL-Befehle enthält, die die Tabelle mit allen Inhalten erzeugen.
Beim Export (UNLOAD) sind nur Tabellen, nicht aber VIEWs zulässig. Auch das Anhängen von WHERE ist nicht möglich.
<DateiName> bezeichnet einen Dateinamen, wie er im Betriebssystem des lokalen Rechners üblich ist.
Eine durch Komma getrennte Liste von Feldnamen.
CHAR(<n>) | Zeichenkette |
NUM [(<StellenZahl> [, <NachKommaStellen>])] | ganzzahlig |
FLOAT | Fließkomma |
DATE | Datum: Konstante: 12/24/1999 |
<xxx> | xxx ist durch etwas anderes zu füllen, beispielsweise Namen oder Werte |
[xxx] | xxx kann auftreten, muß aber nicht. |
[xxx]* | xxx kann nicht oder mehrfach auftreten. |
{ xxx | yyy | zzz } | Es muß exakt eines von xxx oder yyy oder zzz auftreten. |
'x' | Hier ist das Zeichen x, nicht das Metazeichen x gemeint. Bsp.: '*' meint das Zeichen * |