A Relational Model for Large Shared Data Banks

Werbung
Einführung in ORACLE SQL
SQL
Datendefinition
Datenmanipulation
Zugriffsrechte
•
Basiert auf dem Aufsatz von E. Codd 1970
“A Relational Model for Large Shared Data Banks”
Benutzer anlegen
GRANT <privilege> TO <user>;
•
Deskriptive Sprache basierend auf dem Relationenkalkül
(Prädikatenlogik 1. Ordnung)
Benutzer löschen
REVOKE <privilege> FROM <user>;
•
Anlegen von Tabellen
Rollen
•
Nutzerbereiche einrichten
CREATE ROLE <role> IDENTIFIED BY <password>;
GRANT <role> TO <user>;
•
Zugriffsrechte bestimmen
Passwort ändern
ALTER USER <user> IDENTIFIED BY <password>;
•
Einfügen, Ändern, Suchen & Löschen von Daten
•
Steuerung von Transaktionen
oder einfacher in SQL*Plus:
PASSW[ORD]
berlin
Technische Universität Berlin
LV Datenbanksysteme
berlin
LV Datenbanksysteme
Technische Universität Berlin
Computergestützte
Informationssysteme (CIS)
Computergestützte
Informationssysteme (CIS)
Datendefinition: Tabellen (1)
Datendefinition: Tabellen (2)
Tabellen anlegen
CREATE TABLE <name> (
{ <columnElement> | <tableConstraint>}
[, { <columnElement> | <tableConstraint> } ]…
);
<columnElement> ::=
<colName>
{ VARCHAR(<size>) | DATE | NUMBER (<s>,<nk>) }
[ <columnConstraint> ]
Beispiel
CREATE TABLE Ergebnis
(PNr
NUMBER (2)
,MatNr
NUMBER (7)
,Pruefer VARCHAR (20)
,Termin
DATE
,Note
NUMBER (2,1)
);
Zum Datentyp DATE
Das Grundformat für den Datentyp DATE lautet:
‘24-Apr-98’
Zum Datentyp CHAR
Das Grundformat für den Datentyp CHAR lautet:
‘text’
Computergestützte
Informationssysteme (CIS)
LV Datenbanksysteme
Technische Universität Berlin
berlin
berlin
LV Datenbanksysteme
Technische Universität Berlin
CHECK (Note < 6)
,PRIMARY KEY (PNr, MatNr)
,FOREIGN KEY (PNr) REFERENCES Pfach
,FOREIGN KEY (MatNr) REFERENCES Student
<columnConstraint> ::=
[ DEFAULT <value>] [NOT NULL]
[ UNIQUE | PRIMARY KEY ] [ CHECK (<condition>) ]
<tableConstraint> ::=
FOREIGN KEY (<columnName) REFERENCES [<user>.] <table>
PRIMARY KEY (<columnName> [, <columnName> ]…);
NOT NULL
NOT NULL
NOT NULL
Computergestützte
Informationssysteme (CIS)
Datendefinition: Tabellen (3)
Datenmanipulation (1)
Tabellen löschen
DROP TABLE <name>;
Attribute hinzufügen
ALTER TABLE <name>
ADD ( { <columnElement> | <tableConstraint>}
[, { <columnElement> | <tableConstraint>} ]… );
Attributtyp Ändern
Daten einfügen
ALTER TABLE <name>
MODIFY ( <columnElement>
[, <columnElement> ]… );
Anzeigen der Definition
DESCRIBE <table>;
Anzeigen aller Defs.
SELECT * FROM cat;
INSERT INTO <table> [ ( <column> [, <column>]… ) ]
VALUES ( <value> [, <value>]… );
INSERT INTO Ergebnis VALUES
( 6, 951058, ‘Oheim’, ‘19-DEC-97’, 2.0);
Konvertierung und
Formatmasken
INSERT INTO Ergebnis VALUES
( 6, 951058, ‘Oheim’,
TO_DATE(‘19.2.2000’, ‘DD.MM.YYYY’), 2.0);
Suchen
SELECT [ DISTINCT ] { * | <attr> [ , <attr>]… }
FROM <table> [, <table>]…
WHERE <condition>;
SELECT s.MatNr, Name, Note FROM Ergebnis erg, Student s
WHERE s.Matnr = erg.Matnr and Note < 3;
LV Datenbanksysteme
berlin
Technische Universität Berlin
berlin
LV Datenbanksysteme
Technische Universität Berlin
Computergestützte
Informationssysteme (CIS)
Computergestützte
Informationssysteme (CIS)
Datenmanipulation (2): Anfragen mit Funktionen
Datenmanipulation (3)
Funktionen
Für Berechnungen über Spalten stellt SQL Funktionen wie
COUNT, MIN, MAX, AVG, SUM, VARIANCE & STDDEV bereit
Daten löschen
DELETE [ FROM ] <table> [ WHERE <condition> ];
DELETE FROM Student WHERE MatNr = ‘951570’;
Beispiel:
Das (digitale) Prüfungsamt interessiert sich für die
Durchschnittsnote aller Studenten
Daten ändern
UPDATE <table>
SET <column> = <expr> [ , <column> = <expr> ]…
WHERE condition;
SELECT AVG(Note) FROM Ergebnis;
Gruppen
Beispiel:
Das (digitale) Prüfungsamt interessiert sich für die
Anzahl der abgelegten Prüfungen und den
Durchschnitt der jeweiligen Studenten
UPDATE Student SET Name = ‘Meyer’
WHERE MatNr = 951058;
Transaktionen
Eine Folge von SELECT, DELETE & UPDATE kann zu Transaktionen
zusammengefaßt werden
SELECT erg.MatNr, Name, Vorname, COUNT(Note), AVG(Note)
FROM Ergebnis erg, Student s
WHERE s.MatNr = erg.MatNr
GROUP BY erg.Matnr, Name, Vorname;
•
•
COMMIT;
ROLLBACK;
Computergestützte
Informationssysteme (CIS)
LV Datenbanksysteme
Technische Universität Berlin
berlin
Technische Universität Berlin
berlin
LV Datenbanksysteme
Bestätigen der Transaktion
Verwerfen der Transaktion
Computergestützte
Informationssysteme (CIS)
Datendefinition: Views
Views
Optimierung der Datendefinition
•
Views erzeugen virtuelle Tabellen auf der Basis von Anfragen
•
Views definieren das externe Schema auf Basis der
bestehenden Tabellen (konzeptuelles Schema)
CREATE VIEW <name> AS <query>;
Sekundärschlüssel anlegen
CREATE INDEX <name> ON <table>
(<column> {ASC | DESC} [, <column> {ASC | DESC} ]… );
Schlüsselwerte erzeugen
CREATE SEQUENCE <name>
[ INCREMENT BY <step> ]
[ START WITH <value> ] ;
CREATE VIEW GimGepruefteStudenten AS
SELECT s.MatNr, Name, Note
FROM Student s, Ergebnis erg, Pfach p
WHERE Fach = 'GIM' AND p.Pnr = erg.Pnr AND
erg.MatNr = s.MatNr;
CREATE SEQUENCE PNrSequence;
INSERT INTO Pfach VALUES (PNrSequence.nextval, …);
Synonyme anlegen
SELECT * FROM GimGepruefteStudenten
WHERE Name = 'Meier';
CREATE SYNONYM <name> FOR
[<user>.] { <table> | <sequence> | <synonym> };
Technische Universität Berlin
Computergestützte
Informationssysteme (CIS)
Computergestützte
Informationssysteme (CIS)
SQL*Plus
Der Zeileneditor
SQL*Plus besitzt einen primitiven Zeileneditor, der die folgenden
Möglichkeiten zur Verfügung stellt:
c/<old>/<new>
r
SQL Skripte
ersetzt <old> durch <new> im letzten Kommando
führt das letzte Kommando nochmals aus
Eine Folge von SQL Befehlen kann in einer Datei gesammelt und
als Skript in SQL*Plus ausgeführt werden.
Beispiel:
“~cispub/datenbanken/WS-0304/Oracle-Sourcen/pruefung.sql”
SQL> @/home/cis/cispub/datenbanken/WS-0304/Oracle-Sourcen/pruefung
berlin
LV Datenbanksysteme
Technische Universität Berlin
Computergestützte
Informationssysteme (CIS)
LV Datenbanksysteme
berlin
Technische Universität Berlin
berlin
LV Datenbanksysteme
Herunterladen