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

Ähnliche Dokumente
SQL. strukturierte Datenbankabfragesprache eine Datenbanksprache zur. Structured Query Language:

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

Übersicht der wichtigsten MySQL-Befehle

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

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

Abfragen (Queries, Subqueries)

Wirtschaftsinformatik Jgst. 9/10. Fortbildung am in Ansbach

Mengenvergleiche: Alle Konten außer das, mit dem größten Saldo.

SQL als Zugriffssprache

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

Datenbanksysteme Teil 6 MySQL DML Die SELECT-Anweisung. Stefan Maihack Dipl. Ing. (FH) Datum:

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

Es geht also im die SQL Data Manipulation Language.

PRG2 Folien Zicari Teil 5. Einführung in Datenbanken SS 2007

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

SQL-Befehlsliste. Vereinbarung über die Schreibweise

Datenbanksysteme Kapitel 5: SQL - Grundlagen

Datenbanksysteme Kapitel 5: SQL Grundlagen Teil 1

SQL: Abfragen für einzelne Tabellen

SQL ist eine relational vollständige Datenbanksprache.

Anwendungsentwicklung Datenbanken SQL. Stefan Goebel

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

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

SQL. SQL SELECT Anweisung SQL-SELECT SQL-SELECT

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

ACCESS SQL ACCESS SQL

SQL. Structured Query Language

Datenbankabfragen und Datenmanipulation

Datenmanipulation in SQL (1): Subselect:

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

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

Wiederholung VU Datenmodellierung

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

Kapitel 3: Datenbanksysteme

Informatik 12 Datenbanken SQL-Einführung

Kapitel 3: Datenbanksysteme

Eine völlig andere Form Abfragen zu erstellen ist, sie mit Hilfe der Datenbankabfragesprache SQL zu gestalten.

SQL Teil 2. SELECT Projektion Selektion Vereinigung, Schnitt, Differenz Verbund Komplexer SELECT-Ausdruck

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

1 Vorstellung Kursbeispiel

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

Aufbau des SELECT-Befehls. Im Folgenden werden zunächst Abfragen aus einer Tabelle vorgenommen.

Aggregatfunktionen in SQL

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

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

SQL SQL. SQL = Structured Query Language (SEQUEL) IBM San Jose Research Laboratory SYSTEM R. Grundlagen der Programmierung 2

Datenbanksysteme noch Kapitel 7: SQL. Vorlesung vom Oliver Vornberger. Institut für Informatik Universität Osnabrück

Beispieldaten Um die Erläuterungen in diesem Skript besser verständlich zu machen, soll nachfolgendes einfaches Datenbankschema dienen:

SQL. Abfragesprache Datenmanipulation - DML

Details zu den Ausdrücken nach FROM, WHERE, GROUP BY und HAVING finden Sie in den Abschnitten über JOIN, WHERE und GROUP BY.

Einführung in Datenbanken und SQL

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

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

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

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

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

Informatik II Vorlesung am D-BAUG der ETH Zürich. Vorlesung 12, 2017 Datenbanksysteme: Datendefinition in SQL, Kompliziertere Datenbankabfragen

Datenmanipulation in SQL. Select Anweisung

Welche Kunden haben die gleiche Ware bestellt? select distinct a1.name, a2.name from Auftrag a1, Auftrag a2 where a1.ware = a2.ware.

SQL-Befehlsliste. Vereinbarung über die Schreibweise

Seminar 1 SQL Abfragen DML. MatrNr Name Vorname Age Gruppe Schmidt Hans Meisel Amelie

MySQL: Einfaches Rechnen.

Prakt. Datenbankprogrammierung. Sommersemester I,5: Aggregieren von Daten mit Gruppen-Funktionen

18. Hinweise zur schriftlichen Abiturprüfung 2021 im Fach Informatik

SQL SQL. SQL = Structured Query Language (SEQUEL) IBM San Jose Research Laboratory SYSTEM R. Grundlagen der Datenbanksysteme I

Fortsetzung: Projektion Selektion. NULL Werte

Vorlesung Datenbankmanagementsysteme

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

Antwort auf QB ist Menge von Tupeln, i-e. selbst wieder Relation (wie bei rel. Algebra) in QB "Zugriff" auf Tupel mit Tupel-Variablen

Informatik II Vorlesung am D-BAUG der ETH Zürich. Vorlesung 12, Datenbanksysteme: Datendefinition in SQL, Kompliziertere Datenbankabfragen

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

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

Inhaltsverzeichnis. Einleitung

Kapitel 5: Sortieren, Gruppieren und Views in SQL

gibt es kein Bundesland, en?"

MCSA: SQL 2016 Database Development

Kompaktes Datenbank-Wissen rund um die Datenbank-Programmierung mit Transact-SQL

8 DML (1) Daten abfragen

Structured Query Language (SQL) 1

Lösungen der Übungsaufgaben von Kapitel 10

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

select DISTINCT Name, ort From Verkauf; selektiert Name und Ort von Tabelle Verkauf - DISTINCT steht dass keine Zeile mehrfach vorkommt

ARBEITSBLATT ZUR SQL-BEFEHLEN

Schlüssel. Definition: Ein Schlüssel (key) einer Relation r(r) ist eine Til Teilmenge K von R, so dass für je zwei verschiedene Tupeln t 1

SQL: Weitere Funktionen

Access Grundkurs. M. Eng. Robert Maaßen

Query Languages (QL) Relationale Abfragesprachen/Relational

SQL Intensivpraktikum SS 2008

Bibliografische Informationen digitalisiert durch

Übung Datenbanken in der Praxis. Anfragen an Datenbanken mit SQL

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

SQL Wiederholung. Datenbanktechnologien. Verbunde. Aggregation und Gruppierung. Unterabfragen. Hochschule für Technik und Wirtschaft Berlin

10 SQL-Basics: Erweiterte Abfragen mit SELECT Im Mittelpunkt dieses Kapitels steht nicht nur die einfache Auswahl von Spalten, sondern auch die

Übung 1: SQL. Übungen finden bei Bedarf anstelle der Vorlesungen statt Fragen? Vorlesung Datenbankeinsatz WS 04/05 IPD

Schulinternes Curriculum im Fach Informatik

Microsoft Access Abfragen: Informationen anzeigen und sortieren

Transkript:

SELECT-FROM SELECT dient dazu, aus einer vorhandenen Datenbank bestimmte Spalten und Zeilen auszugeben es handelt sich also um eine Auswahlabfrage. Inhaltsverzeichnis 1 Der grundlegende Aufbau 2 Doppelte Werte 3 WHERE-Teil 4 FROM-Teil 5 Sortieren 6 Umbenennen 7 Verbinden von Relationen 8 NULL-Werte 9 Geschachtelte Anweisungen 10 Gruppieren der Ergebnisse 11 Quelle Der grundlegende Aufbau SELECT Attribut1, Attribut2 FROM Relation1, Relation2 wobei es sich bei den Attributen vereinfacht gesagt um Spalten handelt und bei den Relationen um Tabellen. Um alle vorhandenen Attribute ausgeben, kann man den Operator * verwenden: SELECT * FROM Relation1, Relation2 Doppelte Werte Um doppelte Werte zu vermeiden, ergänzt man das Schlüsselwort DISTINCT :

SELECT DISTINCT Attribut1, Attribut2 FROM Relation1, Relation2 Das Gegenteil bewirkt das Schlüsselwort ALL, welches aber nicht angegeben werden muss, da es sich um die Standardeinstellung handelt. WHERE-Teil Dieser Teil gibt Bedingungen an, die das Ergebnis erfüllen muss, z. B.: SELECT kontonr FROM konto WHERE kontostand > 1000 AND filialname="josefstadt" Es können Bedingungen durch folgende logische Ausdrücke kombiniert werden: AND, OR, NOT, BETWEEN SELECT kontonr FROM konto WHERE kontostand BETWEEN AND 1000 Um nach Zeichenketten zu filtern, bietet SQL u. a. folgende spezielle Operanten: Prozent ( % ): eine beliebige Anzahl von Zeichen Unterstrich ( _ ): ein beliebiges Zeichen Außerdem wird bei String-Abfragen das Wort Like anstelle des = verwendet. Dies würde dann z. B. so aussehen: SELECT kundenname FROM kontoinhaber WHERE kundenname LIKE "%Huber%" Um wirklich nach dem Prozent-Zeichen zu suchen, geht man wie folgt vor:...like "Huber\%" ESCAPE "\" FROM-Teil Der FROM-Teil listet alle Relationen (meist Tabellen) auf, die in die Abfrage

involviert sind. Diese Tabellen müssen über den WHERE-Teil verknüpft werden! Bei gleichlautenden Attributnamen müssen diese durch Vorstellen des Relationsnamens und einem Punkt qualifiziert werden (Also z. B. anstelle von kontonr dann konto.kontonr ). SELECT kundenname, kontoinhaber.kontonr, kontostand FROM konto, kontoinhaber WHERE konto.kontonr = kontoinhaber.kontonr AND filialname="neubau" Sortieren Die Ergebnisse können mit ORDER BY sortiert werden. Das Schlüsselwort ASC (Default-Wert) bewirkt eine aufsteigende, DESC eine absteigende Sortierung: SELECT kundenname, kontoinhaber.kontonr, kontostand FROM konto, kontoinhaber WHERE konto.kontonr = kontoinhaber.kontonr AND filialname="neubau" ORDER BY kundenname ASC Umbenennen Sowohl Attribute (Spalten) als auch Relationen (Tabellen) können unbenannt werden. Dazu verwendet man das Schlüsselwort AS : SELECT kundenname AS kunde, kundenliste.kontonr, kontostand FROM kontoinhaber AS kundenliste, konto AS K WHERE K.kontonr = kundenliste.kontonr Dies ist auch ein Weg, um Abfragen auf sich selbst durchzuführen man verwendet im FROM-Teil zwei mal die gleiche Tabelle, benennt diese allerdings anders.

Verbinden von Relationen Mit Mengen-Operatoren kann man Ergebnisse mehrerer Relationen zusammen fassen. Hier gibt es folgende Varianten: UNION: Entspricht einem logischen OR, z. B.: Alle Kunden, die ein Konto, einen Kredit oder beides haben : (SELECT kundenname FROM kontoinhaber) UNION (SELECT kundenname FROM kreditnehmer) INTERSECT: Entspricht einem logischen AND, z. B.: Alle Kunden, die ein Konto und einen Kredit haben : (SELECT kundenname FROM kontoinhaber) INTERSECT (SELECT kundenname FROM kreditnehmer) EXCEPT: Alle Ergebnisse der 1. Relation, die nicht in der 2. Relation vorkommen, z. B.: Alle Kunden, die ein Konto aber keinen Kredit haben : (SELECT kundenname FROM kontoinhaber) EXCEPT (SELECT kundenname FROM kreditnehmer) NULL-Werte Wenn eine Information in einem Datensatz in einer Spalte fehlt, hat dieses Feld einen speziellen Wert, den NULL-Wert. Diese sind speziell zu behandeln: Arithmetische Ausdrücke, die NULL beinhalten, liefern als Ergebnis immer NULL (NULL + 3 = NULL) und in Aggregatfunktionen (z. B. Anzahl der Datensätze) wird NULL nicht mitgezählt. Auch die Behandlung in Vergleichsausdrücken ist anders, z. B.: SELECT kundenname FROM kontoinhaber WHERE betrag IS NULL

Geschachtelte Anweisungen Man kann auch Unter-Abfragen verwenden, um z. B. Mengen-Mitgliedschaften zu testen. Wenn man eine Unter-Abfrage (also ein SELECT-FROM) in einer Abfrage verwendet, nennt man dies Nested Subquery. Mögliche Schlüsselwörter zum Verknüpfen sind IN und NOT IN : z. B.: Alle Kunden, die ein Konto aber keinen Kredit haben : SELECT kundenname FROM kontoinhaber NOT IN (SELECT kundenname FROM kreditinhaber) Gruppieren der Ergebnisse Um Ergebnisse zu aggregieren, gibt es u. a. folgende Möglichkeiten: AVG: Durchschnittswert MIN: Minimum-Wert MAX: Maximum-Wert SUM: Summe der Werte COUNT: Anzahl der Werte Das jeweilige Schlüsselwort stellt man nach SELECT. Z. B. Die Anzahl aller Konten der Bankfiliale mit dem Namen Josefstadt' : SELECT COUNT (kontonummer) FROM konto WHERE filialname = "Josefstadt" Um doppelte Ergebnisse auszuschließen, verwendet man wiederum das Schlüsselwort DISTINCT. Z. B. Die Anzahl der Kunden der Filiale Josefstadt' : SELECT COUNT (DISTINCT kundennummer) FROM kunde WHERE filialname = "Josefstadt"

Um die Ergebnisse zu gruppieren, verwendet man das Schlüsselwort GROUP BY. Wichtig ist, dass die Attribute der SELECT-Anweisung, die nicht in der Aggregat-Funktion verwendet werden, in der GROUP BY-Anweisung auftauchen müssen (denn entweder in aggregiere diese oder es ist ein Attribut, nach welchem ich gruppiere). Z. B. Die Anzahl der Kontoinhaber für jede Filiale : SELECT filialname, COUNT (kontonummer) FROM konto GROUP BY filialname Falls man im Falle einer Aggregatsfunktion diese danach noch filtern möchte, verwendet man Ausdruck HAVING: Z. B. Die Anzahl der Kontoinhaber für jede Filiale; allerdings nur die Filialen, die mehr als 1000 Kontoinhaber haben : SELECT filialname, COUNT (kontonummer) FROM konto GROUP BY filialname HAVING COUNT (kontonummer) > 1000 Quelle Schikuta, Erich: Datenmodellierung und Datenbanksysteme, FFH, 2008