ACCESS SQL ACCESS SQL



Ähnliche Dokumente
ISU 1. Ue_08/02_Datenbanken/SQL. 08 Datenbanken. Übung. SQL Einführung. Eckbert Jankowski.

Abfragen (Queries, Subqueries)

Übersicht der wichtigsten MySQL-Befehle

Anwendungsentwicklung Datenbanken SQL. Stefan Goebel

SQL. Ziele. Grundlagen von SQL. Beziehung zur relationalen Algebra SELECT, FROM, WHERE. Joins ORDER BY. Aggregatfunktionen. dbis.

Seminar 2. SQL - DML(Data Manipulation Language) und. DDL(Data Definition Language) Befehle.

SQL. DDL (Data Definition Language) Befehle und DML(Data Manipulation Language)

3 Query Language (QL) Einfachste Abfrage Ordnen Gruppieren... 7

Introduction to Data and Knowledge Engineering. 6. Übung SQL

MySQL-Befehle. In diesem Tutorial möchte ich eine kurze Übersicht der wichtigsten Befehle von MySQL geben.

Daten-Definitionssprache (DDL) Bisher: Realwelt -> ERM -> Relationen-Modell -> normalisiertes Relationen-Modell. Jetzt: -> Formulierung in DDL

SQL: Abfragen für einzelne Tabellen

Einführung in SQL. Sprachumfang: Indizes. Datensätzen. Zugriffsrechten

Wiederholung VU Datenmodellierung

SQL Data Manipulation Language (DML) und Query Language (QL)

SQL als Zugriffssprache

Wiederholung VU Datenmodellierung

Oracle 10g Einführung

12 BG EDV Access / Inf-SQL1 Theodor-Heuss-Schule Wetzlar

Grundlagen von SQL. Informatik 2, FS18. Dr. Hermann Lehner (Material von Dr. Markus Dahinden) Departement Informatik, ETH Zürich

5/14/18. Grundlagen von SQL. Grundlagen von SQL. Google, Facebook und Co. setzen auf SQL. Whatsapp

SQL-Sprachvielfalt. Peter Willadt (Ludwig-Erhard-Schule) SQL-Befehle / 47

Lösungen der Übungsaufgaben von Kapitel 10

WS 2010/11 Datenbanksysteme Fr 15:15 16:45 R Vorlesung #3. SQL (Teil 1)

U 8 SQL. = Structured Query Language (heute auch Standard Query Language) ALLGEMEIN:

insert, update, delete Definition des Datenbankschemas select, from, where Rechteverwaltung, Transaktionskontrolle

SQL. DDL (Data Definition Language) Befehle und DML(Data Manipulation Language)

Datenbanken. Zusammenfassung. Datenbanksysteme

SQL für Trolle. mag.e. Dienstag, Qt-Seminar

SQL-Befehlsliste. Vereinbarung über die Schreibweise

Praktische SQL-Befehle

SELECT dient dazu, aus einer vorhandenen Datenbank bestimmte Spalten und Zeilen auszugeben es handelt sich also um eine Auswahlabfrage.

SQL. strukturierte Datenbankabfragesprache eine Datenbanksprache zur. Structured Query Language:

Es geht also im die SQL Data Manipulation Language.

Einführung in SQL. 1. Grundlagen SQL. Structured Query Language. Viele Dialekte. Unterteilung: i. DDL (Data Definition Language)

Kapitel 6. Datenmalipulation (DML) d. h. insert, update, delete, select im Relationenmodell (in Oracle)

Datenbanken im WI-Unterricht mit

Dieser Foliensatz darf frei verwendet werden unter der Bedingung, dass diese Titelfolie nicht entfernt wird.

Nachtrag: Farben. Farbblindheit. (Light und Bartlein 2004)

5.8 Bibliotheken für PostgreSQL

Grundlagen von Datenbanken

ARBEITSBLATT ZUR SQL-BEFEHLEN

SQL structured query language

SQL Tutorial. SQL - Tutorial SS 06. Hubert Baumgartner. INSO - Industrial Software

1 Relationenalgebra [8 P.] Gegeben seien die folgenden Relationenschemata: Hafen(HNR, Ort, Grundsteinlegung)

SQL: Weitere Funktionen

SQL und MySQL. Kristian Köhntopp

Inhaltsverzeichnis. Vorwort Kapitel 1 Einleitung... 15

Datenbanksysteme Kapitel 5: SQL Data Manipulation Language

Inhaltsverzeichnis. Vorwort 13. Kapitel 1 Einleitung 15

Üben von DDL und DML. Ergebnis:

Erstellen einer Datenbank. Datenbankabfragen

Einführung SQL Data Definition Language (DDL)

DATENBANKSYSTEME: SQL

Datenmanipulation in SQL (1): Subselect:

Datenbanksysteme I WS 18/19 Teillösung Übungsblatt 4-6

Auf einen Blick. Abfrage und Bearbeitung. Erstellen einer Datenbank. Komplexe Abfragen. Vorwort... 13

DB-Datenbanksysteme. DB SQL-DML 1 Mario Neugebauer

Daniel Warner SQL. Das Praxisbuch. Mit 119 Abbildungen. Franzis

Auf einen Blick. Abfrage und Bearbeitung. Erstellen einer Datenbank. Komplexe Abfragen. Vorwort 13

SQL. SQL SELECT Anweisung SQL-SELECT SQL-SELECT

SQL-Anweisungen. SELECT (SQL Data Query Language)

Bibliografische Informationen digitalisiert durch

Einführung in die Wirtschaftsinformatik Kapitel 4: Relationale Datenbanksprachen: SQL

Web-Technologien. Prof. Dr. rer. nat. Nane Kratzke SQL. Praktische Informatik und betriebliche Informationssysteme

Rückblick. SQL bietet viele Möglichkeiten zur Anfrageformulierung

Datenbankabfragen und Datenmanipulation

Relationentheorie grundlegende Elemente

Datenbanksysteme Kapitel 5: SQL - Grundlagen

Datenbanksysteme Kapitel 5: SQL Grundlagen Teil 1

Visualisierung in Informatik und Naturwissenschaften

SQL ist eine relational vollständige Datenbanksprache.

1. Einleitung. SQL-Abfragen. 3. Das ERM der Übungsdatenbank. 2. Grundstruktur von SQL-Abfragen

Datenbankpraxis mit Microsoft Access. Datenbankpraxis mit Microsoft Access

WS 2010/11 Datenbanksysteme Fr 15:15 16:45 R Vorlesung #5. SQL (Teil 3)

Übung ERM. Beispiel: Erstellung einer relationalen Datenbank

Übungsaufgaben mit Lösungen

PHP + MySQL. Die MySQL-Datenbank. Hochschule Karlsruhe Technik & Wirtschaft Internet-Technologien T3B250 SS2014 Prof. Dipl.-Ing.

SQL-Übungen. Nordwind-Datenbank Stefan Goebel

Datenmanagement I SoSe 2006 Aufgabenblatt 4

Leseprobe: SQL mit MySQL - Band 4 Kompendium mit Online-Übungs-DB. Kompendium zur schnellen Kurzinformation der Datenbanksprache SQL/MySQL 5.

C++ Anwendungskurs Tag 4: Datenbanken Daniela Horn Institut für Neuroinformatik Real-time Computer Vision

[ SQL] Wissen, das sich auszahlt

Datenbank und Tabelle mit SQL erstellen

Microsoft Access 2010 SQL nutzen

Aggregatfunktionen in SQL

DBSP. Vorlesung. Prof. Dr. rer. nat. Nane Kratzke. Unit. Praktische Informatik und betriebliche Informationssysteme

Datenbanksysteme Kapitel 5: SQL Data Manipulation Language

DATENBANKEN SQL UND SQLITE VON MELANIE SCHLIEBENER

Transkript:

ACCESS SQL Datenbankabfragen mit der Query-Language ACCESS SQL Datenbankpraxis mit Access 34 Was ist SQL Structured Query Language Bestehend aus Datendefinitionssprache (DDL) Datenmanipulationssprache (DML) Datenkontrollsprache (DCL) Weit verbreiteter Standart Entworfen von IBM SQL-92 momentaner Standart Meisten DBMS nutzen dies ACCESS SQL Implementiert SQL-92 teilweise Erweitert SQL Datenbankpraxis mit Access 35 1

Bisherige Datenbankabfragen Abfrage ohne Kenntnis der in der Datenbank verwendeten Query-Language mithilfe der Entwurfsansicht Benutzer erzeugt Query zur Bestimmung einer bestimmten Sicht auf die Daten Umsetzung in intern verwendete Query-Language Query-Engine verwendet Statement in der Query- Language um gewünschte Sicht zu erzeugen Wissen: Stets Umsetzung in ACCESS SQL Datenbankpraxis mit Access 36 Warum SQL? ACCESS liefert mächtiges graphisches Benutzerinterface Aber: ACCESS übersetzt alle Anfragen in SQL Nicht alle Anfragen möglich Bestimmte Theta-Joins Unterabfragen Zugriff auf Datenbankserver (MS SQL Server) SQL der Datenbankenstandart Zugriff anderer Applikationen auf ACCESS Datenbank (Excel, Word, ) Softwareentwicklung mit Datenbanken Datenbankpraxis mit Access 37 2

Übersicht DML SELECT UNION UPDATE DELETE INSERT INTO SELECT INTO Unterabfragen PARAMETER DDL CREATE ALTER TABLE DROP Datenbankpraxis mit Access 38 SELECT Abfrageschlüsselwort Basis für Abfragen: Projektion Selektion Gruppierungen Joinklauseln Kreuzprodukt Einfaches Beispiel SELECT * FROM Bücher Auswahl aller Spalten einer Tabelle Datenbankpraxis mit Access 39 3

Projektion Auswahl einzelner Spalten: SELECT Titel, Preis FROM Bücher; Umbenennung von Spalten: SELECT Titel AS Buchtitel, Preis FROM Bücher; Berechnung von Spalten: SELECT Titel, Preis*100 FROM Bücher; Zusammenfügen von Spalten: SELECT Verlag & in & Ort FROM Verlage; Datenbankpraxis mit Access 40 Kreuzprodukt Kreuzprodukt zwischen mehreren Tabellen (auch mehr als zwei!): SELECT * FROM Bücher, Verlage; Qualifizierte Auswahl von Spalten: SELECT Verlage.Verlag,, Bücher.* FROM Verlage,Bücher; Datenbankpraxis mit Access 41 4

Gruppenübung Erzeugen Sie SQL-Statements Statements für die folgenden Abfragen Die Spalten Vorname und Nachname der Tabelle Autoren zu einer Spalte zusammengefasst. Benennen Sie diese Spalte mit Name. Die Spalten Titel, Preis und VerlagID der Tabelle Bücher. Berechnen Sie zur Spalte Preis 15 Prozent Mehrwertsteuer und benennen Sie diese Spalte mit Gesamtpreis. Kreuzprodukt der Tabellen Bücher, Bücher/Autoren und Autoren. Es sollen alle Spalten der Tabelle Bücher und nur Autorname der Tabelle Autoren. (HINWEIS: verwenden sie die Klammerung [ ] wenn SQL Zeichenfolgen nicht zulässt) Überprüfen Sie die Resultate der SQL-Statements Statements Datenbankpraxis mit Access 42 Lösungsvorschläge SELECT Vorname & " " & Nachname AS Name FROM Autoren; SELECT Titel, Preis*1.15 AS Gesamtpreis, VerlagID FROM Bücher; SELECT Bücher, Autoren.Autorname FROM Bücher, [Bücher/Autoren], Autoren; Datenbankpraxis mit Access 43 5

Selektion 1 Auswahl von Zeilen, die ein angegebenes Kriterium erfüllen müssen Einfaches Kriterium hat die Form: Spaltenname Vergleichsoperator Konstante Konstanten sind entweder Zahlen (z.b. 10, 15.36, 1E10), Strings (z.b. Hallo ; A, 1998 ) ) oder Datumswerte (z.b. #10/10/2002#) Vergleich mittels arithmetischen Operatoren (=,<,>,<=,>=,<>) SELECT * FROM Bücher WHERE VerlagID=1; Vergleich mittels BETWEEN SELECT * FROM Bücher WHERE Erscheinungsdatum BETWEEN #01/01/1999# AND #31/12/2002#; Vergleich mittels IN SELECT * FROM Bücher WHERE Gattung IN (1,3,5); Logische Verknüpfung (AND, OR, XOR, NOT) von Teilkriterien. SELECT * FROM Bücher WHERE (VerlagID( VerlagID=1 OR VerlagID=2) AND Preis<=50; Datenbankpraxis mit Access 44 Selektion 2 Spezielle Stringvergleiche mittels LIKE Pattern mittels * SELECT * FROM Autoren WHERE Nachname LIKE G*"; Pattern mittels? SELECT * FROM Autoren WHERE Nachname LIKE??????"; Pattern mittels [] SELECT * FROM Autoren WHERE Nachname LIKE [A-G][AOP][!E]*"; Beispiele für Stringfunktionen Stringlänge (Len( Len) SELECT * FROM Autoren WHERE Len(Nachname) = 6; Ermitteln von Teilstrings (Left( Left,, Right) SELECT * FROM Autoren WHERE Left(Nachname,3)="sch sch"; Beispiel für Arithmetische Operationen SELECT * FROM Bücher WHERE Preis/100 > 1; Datenbankpraxis mit Access 45 6

Selektion 3 Vergleich von Spalten aus verschiedenen Tabellen SELECT * FROM Bücher,Verlage WHERE Bücher.VerlagID = Verlage.VerlagID VerlagID; Kreuzprodukt und Vergleich einer Tabelle mit sich selbst SELECT * FROM Bücher, Bücher AS Bücher2 WHERE Bücher.Gattung= Bücher2.Gattung; Datenbankpraxis mit Access 46 Gruppenübung Erzeugen Sie SQL-Statements Statements für die folgenden Abfragen Die ISBN und der Titel aller Bücher deren Titel mit C,D,E,F oder G beginnen. Alle Bücher die im Jahr 2000 oder später verlegt worden sind oder zwischen als 3 und 10 Euro kosten. Die Zeilen des Kreuzprodukts der Tabellen Autoren und Bücher/Autoren die in beiden Tabellen dieselbe AutorID besitzen. Überprüfen Sie die Resultate der SQL-Statements Statements Datenbankpraxis mit Access 47 7

Lösungsvorschläge SELECT ISBN, Titel FROM Bücher WHERE Titel LIKE "[C-G]* G]*"; SELECT * FROM Bücher WHERE (Erscheinungsdatum>= Erscheinungsdatum>=#01/01/2000#) OR (Preis BETWEEN 3 AND 10); SELECT * FROM Autoren,[Bücher/Autoren] WHERE Autoren.AutorID=[Bücher/Autoren].AutorID Autoren].AutorID; Datenbankpraxis mit Access 48 Joinklauseln 1 Innere Joins in FROM-Klausel SELECT * FROM Bücher INNER JOIN Verlage ON Bücher.VerlagID = Verlage.VerlagID WHERE Preis>90; Alle Bücher mit Preis über 90 Euro. Ausgabe aller Buchdaten inklusive Verlagsdaten Äußere Joins in FROM-Klausel SELECT * FROM Autoren LEFT OUTER JOIN [Bücher/Autoren] ON Autoren.AutorID = [Bücher/Autoren].AutorID WHERE ISBN IS NULL; Alle Autorendaten der Autoren ohne Bücher in der Datenbank Datenbankpraxis mit Access 49 8

Joinklauseln 2 Geschachtelte Joins in FROM-Klausel SELECT Bücher.*, Autoren.* FROM (Bücher INNER JOIN [Bücher/Autoren] ON Bücher.ISBN = [Bücher/Autoren].ISBN Autoren].ISBN) INNER JOIN Autoren ON Autoren.AutorID = [Bücher/Autoren].AutorID WHERE Bücher.Gattung=2; Alle Autoren/Buch Paare der Literaturgattung 2 (Sachbuch) Selbstjoins in FROM-Klausel SELECT Bücher.Titel,, Bücher2.Titel, Bücher.Preis FROM Bücher INNER JOIN Bücher AS Bücher2 ON (Bücher.Preis = Bücher2.Preis) AND (Bücher.Titel <> Bücher2.Titel); Alle Buchpaare die denselben Verkaufspreis haben Datenbankpraxis mit Access 50 Prädikate Entfernen von Duplikaten SELECT DISTINCT Preis FROM Bücher; Entfernung von Duplikaten bzgl. einer Basistabelle SELECT DISTINCTROW Preis FROM Bücher INNER JOIN [Bücher/Autoren] ON Bücher.ISBN= [Bücher/Autoren].ISBN Autoren].ISBN; Wie sieht das Resultat ohne DISTINCTROW bzw. mit DISTINCT aus? Angabe nur der ersten n Zeilen SELECT TOP 10 * FROM Bücher, Autoren; SELECT TOP 10 PERCENT * FROM Bücher,Autoren; Datenbankpraxis mit Access 51 9

Sortierung Sortieren nach einer Spalte (ASC,DESC) SELECT * FROM Autor ORDER BY Nachname; Autorendaten sortiert nach Autorennachname SELECT Titel, Preis FROM Bücher WHERE Gattung = 2 ORDER BY Titel DESC; Titel und Preis aller Bücher der Gattung 2 absteigend sortiert nach Titel Sortieren nach mehreren Spalten SELECT * FROM Bücher ORDER BY Gattung, Titel; Alle Buchdaten sortiert nach Gattung und Titel Datenbankpraxis mit Access 52 Gruppierung Berechnung von Aggregatfunktionen (Avg, Count,, Min, Max, Sum,, First, Last ) SELECT Gattung, Sum(Preis) ) AS Gesamtpreis FROM Bücher GROUP BY Gattung; Der Gesamtpreis der Bücher einer Gattung Einschränken der Ausgabe SELECT Gattung, Min(Preis) ) AS Mindestpreis FROM Bücher WHERE Verfügbar=TRUE GROUP BY Gattung HAVING Min(Preis) ) > 3; Der Mindestpreis der verfügbaren Bücher einer Gattung wenn dieser über 3 Euro liegt Aggregatfunktion über Gesamttabelle SELECT Sum(Preis) ) AS Summe, Count(ISBN) ) AS Anzahl FROM Bücher; Die Summe alle Buchpreise und die Gesamtzahl der Bücher Datenbankpraxis mit Access 53 10

Zusammenfassung SELECT [Prädikat[ Prädikat] Spaltenauswahl FROM Tabellenausdruck [WHERE Zeilenbedingung] [GROUP BY Spaltenauswahl] [HAVING Aggregatsbedingung] [ORDER BY Spaltenauswahl] Datenbankpraxis mit Access 54 Gruppenübung Erzeugen Sie SQL-Statements Statements für die folgenden Abfragen Alle Autorennamen mit Büchern unter 10 Euro Titel, Verlag, Preis aller Bücher sortiert nach Preis (absteigend), Verlag und Titel Der Mittlere Preis der Bücher eines Verlages und dessen Name Gesamtzahl der Autoren Überprüfen Sie die Resultate der SQL- Statements Datenbankpraxis mit Access 55 11

Lösungsvorschlag SELECT Autoren.Nachname FROM (Bücher INNER JOIN [Bücher/Autoren] ON Bücher.ISBN = [Bücher/Autoren].ISBN Autoren].ISBN) INNER JOIN Autoren ON Autoren.AutorID = [Bücher/Autoren].AutorID WHERE Bücher.Preis<10; SELECT Bücher.Titel, Verlage.Verlag, Bücher.Preis FROM Verlage INNER JOIN Bücher ON Verlage.VerlagID = Bücher.VerlagID ORDER BY Bücher.Preis DESC, Verlage.Verlag, Bücher.Titel; SELECT Verlage.Verlag, Avg(Bücher.Preis) ) AS MittlererPreis FROM Verlage INNER JOIN Bücher ON Verlage.VerlagID = Bücher.VerlagID GROUP BY Verlage.Verlag; SELECT Count(AutorID) ) AS Autorenanzahl FROM Autoren; Datenbankpraxis mit Access 56 Unterabfragen Unterabfrage mit einer Resultatzeile SELECT Titel, Preis FROM Bücher WHERE Preis = (SELECT Max(Preis) ) FROM Bücher); Titel und Preis des teuersten Buchs Unterabfrage mit Resultattabelle (ALL, ANY) SELECT Titel, Preis FROM Bücher WHERE Preis >= ALL (SELECT Preis FROM Bücher WHERE Gattung=3); Titel und Preis der Bücher die teurer sind als alle Bücher der Literaturgattung 3 Datenbankpraxis mit Access 57 12

PARAMETER Verwendung von Benutzereingaben SELECT * FROM Bücher WHERE Preis >= [Bitte Preis eingeben]; Festlegung des Eingabetyps (TEXT, CURRENCY, DATE, INT, DOUBLE, ) PARAMETERS [Bitte Preis eingeben] CURRENCY; SELECT * FROM Bücher WHERE Preis >= [Bitte Preis eingeben]; Datenbankpraxis mit Access 58 UNION Vereinigung von Tabellen oder Abfragen mit gleicher Spaltenanzahl SELECT Ort FROM Verlage UNION SELECT Geburtsort FROM Autoren; Alle (verschiedenen) Ortsnamen der Tabellen Verlage und Autoren Sortierung SELECT Ort FROM Verlage UNION SELECT Geburtsort FROM Autoren ORDER BY Ort DESC; aufsteigend sortiert nach Ort Bestimmung aller Zeilen SELECT AutorID AS Nr FROM Autoren UNION ALL SELECT VerlagID FROM Verlage; Alle IDs der Verlage und Autoren Datenbankpraxis mit Access 59 13

Aktualisieren UPDATE/DELETE UPDATE Bücher SET Preis = Preis * 1.1 WHERE Gattung = 3; Erhöhe den Preis um 10% für Bücher der Gattung 3 Löschen DELETE FROM Bücher WHERE Gattung = 3; Lösche alle Bücher der Gattung 3 Datenbankpraxis mit Access 60 INSERT/SELECT INTO Einfügen neuer Zeilen in Tabelle INSERT INTO Verlage VALUES (4,"O Reilly", "Sebastopol"); Einfügen einer Abfrage in neue Tabelle SELECT * INTO TeureBücher FROM Bücher WHERE Preis>=100; Einfügen einer Abfrage INSERT INTO TeureBücher SELECT * FROM Bücher WHERE Preis>=80; Datenbankpraxis mit Access 61 14

CREATE/DROP Erzeugen einer neuen Tabelle mit Spalten des Typs (CURRENCY, DATE, TEXT, INT, DOUBLE, ) CREATE TABLE Exemplar (Kennung INT,Verfügbar LOGICAL, ISBN TEXT(20)); Angabe von Constraints (PRIMARY KEY, REFERENCES) CREATE TABLE Exemplar (Kennung INT CONSTRAINT PrimaryKey PRIMARY KEY, Verfügbar LOGICAL, ISBN TEXT(20) CONSTRAINT ForeignKey REFERENCES Bücher); Löschen einer Tabelle DROP TABLE Exemplar; Datenbankpraxis mit Access 62 ALTER TABLE Hinzufügen von Spalten ALTER TABLE Verlage ADD COLUMN Straße TEXT(30); Löschen von Spalten ALTER TABLE Verlage DROP COLUMN Straße; Datenbankpraxis mit Access 63 15

Gruppenübung Erzeugen Sie SQL-Statements Statements für die folgenden Abfragen Verlagname der Bücher die älter sind als alle Bücher der Gattung 3 Die Bücher des Reclamverlag werden am 02.02.2006 neu verlegt Erzeugen Sie eine Tabelle ihrer Wahl mit drei Attributen und einem Primary Key. Fügen sie eine Zeile hinzu. Überprüfen Sie die Resultate der SQL- Statements Datenbankpraxis mit Access 64 Lösungsvorschläge SELECT DISTINCT Verlag FROM Bücher INNER JOIN Verlage ON Bücher.VerlagID=Verlage.VerlagID WHERE Erscheinungsdatum>= ALL (SELECT Erscheinungsdatum FROM Bücher WHERE Gattung=3); UPDATE Bücher SET Erscheinungsdatum = #02/02/2006# WHERE VerlagID = 1; CREATE TABLE Adresse (AID INT CONSTRAINT PrimaryKey PRIMARY KEY, Straße TEXT(30), Hausnummer INT, Ort TEXT(30)); INSERT INTO Adresse VALUES (1,"Behringstr.", 50,"Trier"); Datenbankpraxis mit Access 65 16

Übersicht Data Manipulation Language (DML) SELECT UNION UPDATE DELETE INSERT INTO SELECT INTO Unterabfragen PARAMETER Data Definition Language (DDL) CREATE ALTER TABLE DROP Datenbankpraxis mit Access 66 17