SQL (Structured Query Language)
Relationale Datenbanken und SQL wurden 1970 von Edgar F. Codd vorgestellt.
SQL (Structured Query Language) ist eine standardisierte Sprache für relationale Datenbanken basierend auf der relationalen Algebra.
SQL ist keine eigenständige Programmiersprache und wird in solche eingebettet.
SQL hat eigene Datentypen für die Attribute.
SQL teilt sich in folgende Sprachbereiche auf:
DCL (Data Control Language): Befehle für Rechteverwaltung und Transaktionskontrolle. Befehle GRANT, REVOKE, ...
DDL (Data Definition Language): Befehle zur Erstellung der Datenbanken. Befehle CREATE TABLE, ALTER TABLE, DROP TABLE, CREATE INDEX, DROP INDEX, ...
DML (Data Manipulation Language): Befehle zur Datenmanipulation. Befehle INSERT, UPDATE, DELETE, TRUNCATE, ...
DQL (Data Query Language): Befehle zur Abfrage von Daten. Befehle: SELECT
Gesucht ist das Land, in dem japanisch gesprochen wird. Japanisch wird in genau einem Land gesprochen.
SELECT * FROM country WHERE Code = (SELECT Country FROM language WHERE name = 'japanese')
Gesucht sind die Länder, in denen deutsch gesprochen wird. Deutsch wird in mehreren Ländern gesprochen. Eine Abfrage wie oben führt zu einem Fehler.
SELECT * FROM country WHERE Code IN (SELECT Country FROM language WHERE name = 'german')
Neben IN gibt es weitere Möglichkeiten Bedingungen zu formulieren:
IN
Bedeutung
IN prüft, ob ein bestimmter Wert in einer Menge von Werten der Unterabfrage enthalten ist.
ALL
ALL prüft, ob eine Bedingung für alle Ergebnisse der Unterabfrage erfüllt ist.
ANY
ANY prüft, ob eine Bedingung für ein beliebiges Ergebnis der Unterabfrage erfüllt ist.
EXISTS
Der Ausdruck mit EXISTS ist wahr, wenn die Unterabfrage mindestens ein Ergebnis liefert.
Aufgabe: Gesucht sind die 10 bevölkerungsreichsten Länder alphabetisch sortiert.
SELECT * FROM ( SELECT name, population FROM country ORDER BY population DESC LIMIT 10 ) AS A ORDER BY A.name;
Einfügen von Datensätzen mit Hilfe bereits vorhandener Daten.
INSERT INTO `city` (`Name`, `Country`) VALUES ( 'Hanau', (SELECT Code FROM Country WHERE Name = 'Germany'))
Zuletzt geändertvor 9 Monaten