SQL PLUS (ORACLE)
Datenbanken Übersicht <--- ---> PL/SQL (Oracle)
select * from tab; //alle Tabellen anzeigen
describe tablename //Metadaten anzeigen
edit
//Letzter Befehl editieren
run
//Letzter Befehl ausführen
@dateiname.sql //sql script datei ausführen
rollback
//letzte mutation rückgangig
CREATE TABLE [OwnerName.]TableName (
TableID INTEGER NOT NULL,
Name CHAR(20) NULL,
Anzahl DECIMAL(7,2) NULL,
Datum DATE DEFAULT sysdate,
PRIMARY KEY(TableID)
);
ALTER TABLE TableName
[ (ADD | MODIFY) namefk FOREIGN KEY(Name)
REFERENCES otherTableName ]
[ ADD | DROP TableContraints(z.B. namefk) ]
DROP TABLE TableName [ RESTRICT / CASCADE ]
RESTRICT: (default) fals referenzen
bestehen wird operation abgebrochen.
CASCADE: Constraints(referenzen)
und Views werden mitgelöscht.
INSERT INTO TableName (Name, Anzahl) VALUES ('Development', 20.04)
SELECT * FROM TableName; //liefert alle Zeilen
SELECT
DISTINCT Name,
Anzahl
//keine Mehrfachnennungen
FROM TableName
//sortieren nach name(absteigend) und
ORDER BY Name DESC, Anzahl
ASC
//Anzahl(aufsteigend)
SELECT Name, Anzahl
FROM TableName
WHERE Name='Schneider' AND Anzahl>200 //Bedingungen mit WHERE
OR Anzahl BETWEEN 100 AND 300 //AND, OR, BETWEEN
AND Name IN ('Schneider', 'Silvio') //IN
WHERE
Name
LIKE('___%')
//mindest 3 Zeichen
SELECT Name AS
'Mitarbeiter'
//Überschrift ändern
WHERE Chef IS NOT
NULL
//keine Nullwerte
SELECT
MAX(Anzahl) FROM
Table
//Maximum
SELECT MIN(Anzahl) FROM
Table
//Minimum
SELECT AVG(Anzahl) FROM
Table
//Durchschnitt
SELECT SUM(Anzahl) FROM
Table
//Summe aller Werte
SELECT COUNT(*) AS 'Anzahl' FROM Table //Anzahl Tupels zählen
SELECT MIN(Wohnort), COUNT(Wohnort) //Kunstgriff
FROM Angestellter
WHERE
Wohnort='Luzern'
//Case sensitive
SELECT COUNT (DISTINCT Wohnort) FROM
Angestellter
//Anzahl Wohnorte
SELECT AbtNr FROM
Angestellter
GROUP
BY
AbtNr
//nach Abteilung gruppieren
HAVING
COUNT(*) >=5
//min. 5 Mitarbeiter
SELECT
ab.Name,
a.Name
//alias verwenden
FROM Abteilung ab, Angestellter
a
//alias definieren
WHERE ab.AbtNr =
a.AbtNr
//Tabellen über Fremd/PrimaerSchlüssel verbinden
SELECT
Salaer
//Angestellter der Entwicklung
FROM Angestellter a, Abteilung
abt
//mit dem kleisten Lohn
WHERE Abt.AbtNR=a.AbtNr
AND Abteilung.Name = 'Entwicklung'
AND Salaer =
(SELECT MIN(Salaer)
FROM Angestellter a, Abteilung abt
WHERE a.AbtNr = aAbtNr
AND abt.Name='Entwicklung')
SELECT
Name
//Alle Mitarbeiter die noch nicht zugewiesen sind
FROM Angestellter
WHERE PersNr NOT IN //Komplement
(Select PersNr
FROM Projektzuteilung )
UPDATE
Angestellter
//Mitarbeiter hat gezügelt
SET Wohnort='Luzern'
WHERE Name='Hans, Muster'
DELETE TUPEL
DELETE FROM Angestellter
WHERE Name='XY'
Datenbanken Übersicht <--- ---> PL/SQL (Oracle)