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.

Slides:



Advertisements
Ähnliche Präsentationen
Datenintegrität Einschränkung der möglichen Datenbankzustände und -übergänge auf die in der Realität möglichen Formulierung von Integritätsbedingungen.
Advertisements

Datenintegrität Integitätsbedingungen Schlüssel
ER-Datenmodell und Abfragen in SQL
PL/SQL - Programmierung von Programmeinheiten. © Prof. T. Kudraß, HTWK Leipzig Gespeicherte Prozeduren – Eine Prozedur ist ein benannter PL/SQL Block,
PL/SQL - Kurze Einführung -.
System J – Compiler – Praktikum: Datenbanksystementwicklung Knut Stolze
MySQL.
© A. Kemper / A. Eickler1 Kapitel 5: Datenintegrität Integitätsbedingungen Schlüssel Beziehungskardinalitäten Attributdomänen Inklusion bei Generalisierung.
Folienadaption HS, 4/00. Relationen sind Tabellen! Relationales Modell = Tabellarische Repräsentation der Daten + assoziative Anfragesprache Datenbank.
Systemüberblick Beispiele: Microsoft Access Oracle Ingres Informix
SQL::Geschichte/Normen (Übersicht)
Grundlagen Datenbanken
Binäre Bäume Richard Göbel.
FH-Hof SQLJ Richard Göbel. FH-Hof SQLJ - Idee Erweiterung von Java um SQL Die Verwendung von SQL-Anweisungen innerhalb einer Programmiersprache wird vereinfacht.
FH-Hof Effizienz - Anweisungen für Indexstrukturen Richard Göbel.
SQL als Abfragesprache
SQL als Abfragesprache
Datensicherheit in DBMS
IS: Datenbanken, © Till Hänisch 2000 Tabellen In relationalen DB werden Daten in Tabellen organisiert Jede Spalte enthält eine bestimmte Art von Information,
IS: Datenbanken, © Till Hänisch 2000 CREATE TABLE Syntax: CREATE TABLE name ( coldef [, coldef] [, tableconstraints] ) coldef := name type [länge], [[NOT]NULL],
PL/SQL - Programmierung von Programmeinheiten. © Prof. T. Kudraß, HTWK Leipzig Gespeicherte Prozeduren – Eine Prozedur ist ein benannter PL/SQL Block,
Datenintegrität Referentielle Integrität create table
Oracle interMedia Audio Vortrag für das Seminar Oracle Zusatzoptionen Chris Haußmann.
1 Datenintegrität Statische Bedingung (jeder Zustand) Dynamische Bedingung (bei Zustandsänderung) Bisher: Definition eines Schlüssels 1:N - Beziehung Angabe.
Kapitel 7: SQL.
1 Kapitel 8: Datenintegrität. 2 Datenintegrität Statische Bedingung (jeder Zustand) Dynamische Bedingung (bei Zustandsänderung) Bisher: Definition eines.
Kapitel 9: Integritätssicherung
Erhard Künzel für Info 9. Klasse: digitale-schule-bayern.de © Erhard Künzel.
Erhard Künzel für Info 9. Klasse: Digitale Schule Bayern © Erhard Künzel.
2.2 Definition eines Datenbankschemas (SQL-DDL)
SQL in Visual FoxPro. © 1999 TMN-Systemberatung GmbH SQL Historie n SQL - Structured Query Language n In den 70er Jahren von IBM entwickelt n 1986 zum.
objekt-relationale Datenbanken
FH-Hof Sortieren mit Binären Bäumen Richard Göbel.
Datenbankentwicklung IV-LK
Datenintegrität Integitätsbedingungen Schlüssel
Advanced Mapping Persistente Domänenmodelle mit JPA 2.0 und Bean Validation.
WS 2009/10 Datenbanksysteme Fr 15:15 – 16:45 R Vorlesung #6 SQL (Teil 3)
WS 2013/14 Datenbanksysteme Do 17:00 – 18:30 R Vorlesung #4 SQL (Teil 1)
WS 2012/13 Datenbanksysteme Fr 15:15 – 16:45 R Vorlesung #6 SQL (Teil 3)
WS 2013/14 Datenbanksysteme Do 17:00 – 18:30 R Vorlesung #6 SQL (Teil 3)
SS 2004 Datenbanken 4W Mi 13:30 – 15:00 G 2.30 Vorlesung #7 SQL (Teil 2)
Vorlesung #4 SQL (Teil 1).
SS 2004 Datenbanken 4W Mi 13:30 – 15:00 G 2.30 Vorlesung #8 SQL (Teil 3)
SS 2004 Datenbanken 4W Mi 13:30 – 15:00 G 2.30 Vorlesung #6 SQL (Teil 1)
WS 2013/14 Datenbanksysteme Do 17:00 – 18:30 R Vorlesung #7 SQL (Teil 4)
WS 2007/08 Datenbanksysteme Mi 17:00 – 18:30 R Vorlesung #5 SQL (Teil 2)
WS 2011/12 Datenbanksysteme Fr 15:15 – 16:45 R Vorlesung #4 SQL (Teil 1)
Erläuterung der wichtigsten Befehle
Datenbanksysteme für hörer anderer Fachrichtungen
WS 2011/12 Datenbanksysteme Fr 15:15 – 16:45 R Vorlesung #5 SQL (Teil 2)
Relationales Datenmodell und DDL
1 Gruppierung, Aggregierung und Sortierung (2) Abarbeitungsmodell bei Gruppierung: Werte from- und where-Klauseln aus wie bisher (Bildung von Kreuzprodukt.
Folienadaption HS, 4/99.
Einführung in SQL Universeller Zugriff auf Daten in Datenbanksystemen unterschiedlicher Systemhersteller!
1 Stammdaten-Export/Import Eindeutigkeitsproblem Beschreibung und vorgeschlagene Lösung
Structured Query Language
Integritätsbedingungen (Constraints)
WS 2014/15 Datenbanksysteme D0 15:15 – 16:45 R Vorlesung #6 SQL (Teil 3)
11 Zugriffskontrolle (Access Control) Ziele Privilegien Rollen GRANT und REVOKE Befehl Privilegien Rollen GRANT und REVOKE Befehl.
WS 2014/15 Datenbanksysteme Do 17:00 – 18:30 R Vorlesung #9 SQL Zusammenfassung.
Datenbanken erstellen mit PostgreSQL
Datenbanken abfragen mit SQL
SQL Structured Query Language Enzio Thiem. INHALT CREATE TABLE Anweisung Gängige Datentypen Beispiel CREATE TABLE Beispiel CREATE TABLE - erweitert Beispiel.
Datenbanken. Gliederung ● Einsatz und Verwendung ● Historische Entwicklung ● Datenbankmodelle ● (Codd'sche) Prinzipien ● Datenbankoperatoren ● Beispielcode.
Vorlesung #4 Relationales Kalkül und SQL (Teil 1)
Vorlesung #5 SQL (Teil 2).
Vorlesung #6 SQL (Teil 3).
Vorlesung #7 SQL (Teil 4).
(Structured Query Language)
 Präsentation transkript:

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 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 : SQL 2 (SQL-92) 1999: SQL 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!)

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

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

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) [´(´ (, )* ´)´]

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;

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

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

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

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

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

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

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 )

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) )

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

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

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´

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'.

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

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

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,... ]...

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

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

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

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

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

FH-Hof Anfragen: Aggregatfunktionen COUNT AVG MAX MIN SUM

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

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

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

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

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

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

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

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