Die Präsentation wird geladen. Bitte warten

Die Präsentation wird geladen. Bitte warten

FH-Hof Standard Query Language Richard Göbel. FH-Hof Geschichte der Sprache SQL System/R-Projekts von IBM zu Beginn der 70er Jahre: Entwicklung der Sprache.

Ähnliche Präsentationen


Präsentation zum Thema: "FH-Hof Standard Query Language Richard Göbel. FH-Hof Geschichte der Sprache SQL System/R-Projekts von IBM zu Beginn der 70er Jahre: Entwicklung der Sprache."—  Präsentation transkript:

1 FH-Hof Standard Query Language Richard Göbel

2 FH-Hof Geschichte der Sprache SQL System/R-Projekts von IBM zu Beginn der 70er Jahre: Entwicklung der Sprache SEQUEL Anfang der 80er Jahre erste Standardisierung durch das American National Standards Institute (ANSI) Internationale Standards der ISO: 1986: SQL 1 (SQL-86) 1989: SQL-89 1992: SQL 2 (SQL-92) 1999: SQL 3

3 FH-Hof Sprachumfang in dieser Veranstaltung Aufbau einer Datenbankverbindung zu einer von mehreren Datenbanken Vergabe von Zugriffsrechten für Anwender Definition von Tabellen Einfügen, Ändern und Löschen von Einträgen Definition von 'Views' als 'virtuelle Tabellen' Kopieren von Daten zwischen unterschiedlichen Tabellen Definition von Indexstrukturen (nicht SQL-2!)

4 FH-Hof Datenbankverbindungen Syntax der Anweisungen CONNECT TO ( DEFAULT | ( [ AS ] [ USER ] )) DISCONNECT ( DEFAULT | CURRENT | ALL | ) SET CONNECTION ( DEFAULT | ) Bedeutung der Nichtterminalsymbole server-id:Bezeichnung des Datenbankservers con-id: Bezeichnung der Verbindung auth-id: Account des Anwenders

5 FH-Hof Zugriffsrechte: Syntax GRANT (, )* | ALL PRIVILEGES ON TO (, )* [ WITH GRANT OPTION ] REVOKE [ GRANT OPTION FOR ] (, )* | ALL PRIVILEGES ON FROM (, )* [ CASCADE ]

6 FH-Hof Zugriffsrechte: Objekte und Privilegien Objekte Tabellen Views weitere Objekte (z.B. Prozeduren) Privilegien SELECT INSERT UPDATE DELETE Vergabe von Rechten für einzelne Spalten (INSERT | UPDATE) [´(´ (, )* ´)´]

7 FH-Hof Zugriffsrechte: Beispiele GRANT UPDATE, SELECT ON Person TO Meier; GRANT UPDATE (PLZ, Ort, Strasse, HausNr), SELECT ON Person TO Meier; GRANT UPDATE (PLZ, Ort, Strasse, HausNr), SELECT ON Person TO Meier WITH GRANT OPTION; REVOKE UPDATE (PLZ, Ort) ON Person FROM Meier; REVOKE GRANT OPTION FOR UPDATE (PLZ, Ort, Strasse, HausNr), SELECT ON Person FROM Meier; REVOKE UPDATE (PLZ, Ort, Strasse, HausNr), SELECT ON Person FROM Meier CASCADE;

8 FH-Hof Tabellen: Syntax für Spaltendefinitionen CREATE TABLE '(' (, )* ') ::= | ::= [ ] [ (, )*] ::= DEFAULT DROP TABLE

9 FH-Hof Tabellen: Datentypen CHAR(n), CHARACTER(n) CHARACTER VARYING(n), VARCHAR(n) INT, INTEGER, SMALLINT DEC(n,m), DECIMAL(n,m) (minimal n Ziffern) NUMERIC(n,m) (genau n Ziffern) FLOAT, REAL, DOUBLE PRECISION DATE

10 FH-Hof Tabellen: Beispiel I CREATE TABLE Vorlesung ( NummerDEC(6), NameCHAR(40), DozentDEC(6), StundenDEC(2) DEFAULT 4 )

11 FH-Hof Tabellen: Syntax für Constraints I ::= ( NOT NULL | UNIQUE | PRIMARY KEY | | CHECK ) [ CONSTRAINT ] ::= ( ( PRIMARY KEY | UNIQUE ) '(' (, )* ') | FOREIGN KEY '(' (, )* ')' | CHECK ) [ CONSTRAINT ]

12 FH-Hof Tabellen: Syntax für Constraints II := REFERENCES '(' (, )* ')'

13 FH-Hof Tabellen: Beispiel 2 CREATE TABLE Person ( IdDEC(6) NOT NULL PRIMARY KEY, NameVARCHAR(40), GeschlechtCHAR(1), CHECK Geschlecht = ´m´ OR Geschlecht = ´f´ )

14 FH-Hof Tabellen: Beispiel 3 CREATE TABLE Vorlesung ( NummerDEC(6) NOT NULL PRIMARY KEY, NameCHAR(40), DozentDEC(6) REFERENCES Person(Id), StundenDEC(2) DEFAULT 4 )

15 FH-Hof Tabellen: Beispiel 4 CREATE TABLE Vorlesung ( StudiengangVARCHAR(20) NOT NULL, BezeichnungVARCHAR(20) NOT NULL, DozentDEC(6) REFERENCES Person(Id), StundenDEC(2) DEFAULT 4 PRIMARY KEY (Studiengang, Bezeichnung) )

16 FH-Hof Tabellen: Änderung ALTER TABLE (ADD [COLUMN] ( | ) |MODIFY [ COLUMN ] |DROP [ COLUMN ] |DROP CONSTRAINT ) Beispiel: ALTER TABLE Vorlesung ADD COLUMN AnzahlStunden DEC(2)

17 FH-Hof Einträge: Erzeugen, Ändern und Löschen INSERT INTO ['(' (, )* ')' ] VALUES '(' (, )* ')' DELETE FROM [ WHERE ] UPDATE SET = (, = )* WHERE

18 FH-Hof Einträge: Beispiele INSERT INTO Vorlesung VALUES (1, 'Englisch', 4, 4) INSERT INTO Vorlesung (Dozent, Nummer, Name) VALUES (4, 4, 'Englisch') DELETE FROM Vorlesung WHERE Lfd_Nummer = 7 UPDATE Vorlesung SET Name = ´Datenbanksysteme I´ WHERE Name = ´Datenbanksysteme´

19 FH-Hof Anfragen: Konzept Operationen auf Tupeln wie Projektionen und Kreuzprodukte Unterstützung aller Mengenoperationen wie Vereinigung, Durchschnitt und Restmenge. Selektionsoperationen auf Spaltenwerte mit Prädikaten ' =', '>' und '<>' Logische Verknüpfungen von Suchbedingungen mit 'AND', 'OR' und 'NOT'.

20 FH-Hof Anfragen: Einfache Anfrage Komponenten einer einfachen Anfrage SELECT * | ( (, )* ) FROM (, )* [ WHERE ] Ausdrücke statt Spaltennamen möglich Eine Suchanfrage kann weitere Komponenten enthalten

21 FH-Hof Anfragen: Beispiele 1 SELECTName FROMVorlesung WHERELfd_Nummer >= 4 AND Dozent = 2 SELECTVorlesung.name, Dozent.name FROMVorlesung, Dozent WHEREDozent = Personalnummer SELECT v.name, d.name FROMVorlesung v, Dozent d WHEREDozent = Personalnummer SELECTa.Vorlesung, b.Vorlesung FROMTermine a, Termine b WHEREa.Wochentag = b.Wochentag ANDa.Anfang = b.Anfang ANDa.Vorlesung < b.Vorlesung

22 FH-Hof Anfragen: Join-Syntax für FROM-Klausel... A JOIN B [ ON x = y,... ]...... A NATURAL JOIN B [ USING (x,...) ]...... A FULL OUTER JOIN B [ ON x = y,... ]...... A LEFT OUTER JOIN B [ ON x = y,... ]...... A RIGHT OUTER JOIN B [ ON x = y,... ]...

23 FH-Hof Anfragen: Beispiele 2 SELECTv.name, d.name FROMVorlesung v JOIN Dozent d ONDozent = Personalnummer SELECTName, Wochentag, Anfang, Ende, Raum FROMVorlesung NATURAL JOIN Termine SELECT v.name, d.name FROMVorlesung v LEFT OUTER JOIN Dozent d ON Dozent = Personalnummer

24 FH-Hof Anfragen mit Unteranfragen SELECT... FROM... WHERE... X IN (SELECT...)... SELECT... FROM... WHERE... EXISTS (SELECT...)... SELECT... FROM... WHERE... UNIQUE (SELECT...)...

25 FH-Hof Anfragen: Beispiel 3 SELECTname FROMVorlesung WHERENummer IN (SELECT Vorlesung FROM Termine WHERE Wochentag = 'Mittwoch');

26 FH-Hof Anfragen: Mengenoperationen SELECT... FROM... WHERE... UNION | INTERSECT | EXCEPT SELECT... FROM... WHERE...

27 FH-Hof Anfragen: Ausdrücke in Suchbedingungen SELECTa.Vorlesung, a.Wochentag, a.Ende, b.Vorlesung FROMTermine a, Termine b WHERETO_NUMBER(a.Ende) + 15 = TO_NUMBER(b.Anfang) AND a.Wochentag = b.Wochentag

28 FH-Hof Anfragen: Aggregatfunktionen COUNT AVG MAX MIN SUM

29 FH-Hof Anfragen: Beispiele 4 SELECT COUNT(*) FROM Vorlesung SELECT MIN(Personalnummer) FROM Dozent

30 FH-Hof Anfragen: Gruppieren von Einträgen SELECT Wochentag, count(*) FROM Termine GROUP BY Wochentag SELECT Wochentag, count(*) FROM Termine GROUP BY Wochentag HAVING count(*) > 1

31 FH-Hof Anfragen: Schlüsselwort DISTINCT SELECT Dozent FROM Vorlesung SELECT ALL Dozent FROM Vorlesung SELECT DISTINCT Dozent FROM Vorlesung

32 FH-Hof Anfragen: Sortieren von Ergebnissen SELECT Personalnummer, Name, Geburtstag FROM Dozent ORDER BY Geburtstag DESC, Name ASC

33 FH-Hof VIEWS: Syntax CREATE VIEW [ '(' (, )* ')' ] AS DROP VIEW

34 FH-Hof VIEWS: Beispiel CREATE VIEW Vorlesung2(Nummer, Vorlesungsname) AS SELECT Nummer, Name FROM Vorlesung WHERE Dozent = 2

35 FH-Hof Kopieren: Syntax INSERT INTO ['(' (, )* ')']

36 FH-Hof Kopieren: Beispiel CREATE TABLE VorlesungNeu ( Nummer DEC(6)NOT NULL, Name CHAR(40), Dozent CHAR(40), PRIMARY KEY (Nummer) ) INSERT INTO VorlesungNeu SELECT Nummer, Vorlesung.Name, Dozent.Name FROM Vorlesung v, Dozent d WHERE v.Dozent = d.Personalnummer


Herunterladen ppt "FH-Hof Standard Query Language Richard Göbel. FH-Hof Geschichte der Sprache SQL System/R-Projekts von IBM zu Beginn der 70er Jahre: Entwicklung der Sprache."

Ähnliche Präsentationen


Google-Anzeigen