Studium, Ausbildung und Beruf

web uni-protokolle.de
 powered by
NachrichtenLexikonProtokolleBücherForenDienstag, 2. September 2014 

SQL


Dieser Artikel von Wikipedia ist u.U. veraltet. Die neue Version gibt es hier.
SQL ( S tructured Q uery L anguage) ist eine Abfragesprache für relationale Datenbanken . Sie hat eine relativ einfache Syntax die an die englische Umgangssprache angelehnt und stellt eine Reihe von Befehlen zur von Datenstrukturen nach der relationalen Algebra zur von Datenbeständen (Anfügen Bearbeiten und Löschen von und zur Abfrage von Daten zur Verfügung. ihre Rolle als Quasi-Standard ist SQL von Bedeutung da eine weitgehende Unabhängigkeit von der Software erzielt werden kann. Die meisten SQL-Implementierungen darüber hinaus allerdings noch herstellerspezifische Erweiterungen die dem Standard-Sprachumfang entsprechen.

Viele bekannte Datenbanksysteme wie DB2 Microsoft SQL Server MySQL Oracle PostgreSQL und neueren Versionen von Access implementieren Teile des SQL Sprachstandards.

Inhaltsverzeichnis

Geschichte

Die Grundlage aller relationalen Datenbanken legte 1970 Edgar F. Codd mit seinem Artikel "A Relational Model Data for Large Shared Data Banks". Codd damals im IBM -Forschungslabor in San Jose Kalifornien . Bei den auf diesen Artikel folgenden Forschungsarbeiten war ein Aspekt die Entwicklung relationaler Die Bedeutendste von der kommerziellen Sichtweise her die "Structured English Query Language" SEQUEL die den IBM Forschungslabors 1974 entwickelt wurde. 1976 wurde SEQUEL /2 definiert und aus Gründen in SQL umbenannt. Der Prototyp System R wurde 1977 funktionsfähig implementiert und enthielt einen Großteil Sprache SQL.

Nach den Erfolgen bei den Benutzern System R beschlossen mehrere Firmen SQL-basierte Datenbanken auf Markt zu bringen. Das System ORACLE der Relational Software Inc. (später in Oracle Corporation kam 1980 vor IBMs SQL/DS ( 1981 ) auf den Markt. Die Urversion der aktuell verfügbaren SQL-Implementierung DB2 von IBM entstand 1983 . INGRES folgte im Jahre 1985 SYBASE 1986 . SQL hatte sich innerhalb von 10 zum de-facto-Standard in der Welt der Datenbanken

Das American National Standards Institute ( ANSI ) beauftragte 1982 die Standardisierung einer relationalen Sprache die 1986 ratifiziert wurde und zum guten Teil dem IBM-Dialekt von SQL bestand. 1987 wurde SQL/86 auch als ISO -Standard akzeptiert. Aktualisierungen und Erweiterungen erfolgten mit SQL/92 und SQL/99.

Sprachelemente und Beispiele

Die SQL-Befehle lassen sich in 4 untergliedern: Datenabfrage Datendefinition Datenmanipulation und Rechteverwaltung

Befehle zur Datenabfrage: SELECT

  • select * from Adressen where Name="Müller"
Wählt alle Einträge aus der Tabelle Adressen bei denen in der Spalte Name der Wert Müller steht.
  • select Name from Adressen order by Name
Zeigt die Spalte Name aus der Tabelle Adressen an. Da die abgefragten Datensätze im nicht geordnet werden muss ein Ordnungsbegriff (hier Name) ausdrücklich angegeben werden.
  • select count (*) Anzahl_Adressen from Adressen
Gibt die Anzahl der Datensätze in Tabelle Adressen aus. Die Ausgabe besteht lediglich aus Zeile und einer Spalte welche die Überschrift Anzahl_Adressen trägt.

Befehle zur Datenmanipulation: INSERT UPDATE DELETE

  • insert into Adressen (Name Vorname Ort) values "Knut" "Köln")
Fügt eine Zeile mit den geg. für die Spalten Name Vorname und Ort in die Tabelle Adressen hinzu.
  • update Adressen set Ort="Berlin" where Name="Schroeder"
Ändert das Feld Ort aller Einträge mit Namen "Schroeder" auf
  • truncate table Adressen
Löscht alle Einträge aus der Tabelle Adressen
  • delete from Adressen where name="Müller"
Löscht alle Datensätze aus der Tabelle Adressen mit dem Namen Müller.

Befehle zur Datendefinition: CREATE ALTER DROP

  • create table Laender (Kuerzel_ISO character (2) primary  Land_Name varchar2 (50) not null)
Erzeugt eine neue Tabelle namens Laender mit den Spalten Kuerzel_ISO und Land_Name wobei Kuerzel_ISO der Primärschlüssel ist und in keiner der Spalten Felder erlaubt sind.
  • alter table Laender add Kuerzel_Auto varchar2 (3)
Definiert eine neue Spalte namens Kuerzel_Auto in der Tabelle Laender .
  • drop table Adressen
Löscht die gesamte Tabelle Adressen .
  • create index idx_Adressen on Adressen (Name)
Legt einen Index auf die Spalte Name der Tabelle Adressen . der Index bekommt die Bezeichnung idx_Adressen und beschleunigt die Suche nach Datensätzen der Tabelle Adressen wenn der Name als Suchkriterium angegeben wird.
  • drop index idx_Adressen
Löscht den Index idx_Adressen .

SQL-Datentypen

In den oben vorgestellten Befehlen create table und alter table wird bei der Definition jeder Spalte angegeben Datenformat sie unterstützen soll. Dazu liefert SQL ganze Reihe standardisierter Datentypen mit. Dies sind wichtigsten von ihnen:

  • integer
Ganzzahl (positiv oder negativ)
  • number (n)
Ganzzahl (positiv oder negativ) mit maximal n Stellen
  • number (n m)
Festkommazahl (positiv oder negativ) mit maximal n Stellen davon m nach dem Komma
  • float (m)
Gleitkommazahl (positiv oder negativ) mit maximal m Stellen nach dem Komma
  • character (n)
Zeichenkette (also Text) mit n druckbaren und/oder nicht druckbaren Zeichen
  • varchar (n) varchar2 (n)
Zeichenkette (also Text) mit maximal n druckbaren und/oder nicht druckbaren Zeichen. Die Variante varchar2 ist für Oracle spezifisch.
  • date
Datum (bei Oracle inklusive Uhrzeit)
  • boolean
Boolesche Variable (kann die Werte true (wahr) oder false (falsch) annehmen). Dieser Datentyp fehlt in Oracle.
  • raw (n)
Binärdaten von maximal n Bytes Länge

Statisches und Dynamisches SQL

Die meisten Datenbanken welche SQL unterstützen zwischen statischem und dynamischem SQL.

Bei statischem SQL sind die SQL-Anweisungen in einem Anwendungsprogramm kodiert (sogenanntes Embedded SQL ). Während der Programmvorbereitung übersetzt ein Precompiler die SQL-Befehle in Funktionsaufrufe anschliessend definiert Optimizer den besten Zugriffspfad auf die Daten speichert diesen im Datenbanksystem ab.

Dynamisches SQL wird dagegen während der eines Programms interpretiert und der Zugriffspfad wird jedem Durchlauf neu optimiert.

Beide Arten von SQL haben ihre und Nachteile. Statisches SQL mit voroptimierten Zugriffen den aufwändigen Aufruf des Optimizers und wird häufig für zeitkritische Transaktionsverarbeitungen gebraucht. Das flexiblere SQL kommt dort zum Tragen wo zur die auszuführenden SQL - Anweisungen noch nicht sind.

SQL-Datenbanksysteme

  1. Adabas - eine kommerzielle Datenbank von der AG.
  2. DB2 - eine kommerzielle Datenbank von IBM .
  3. dBase IV
  4. Firebird (Datenbank)
  5. GUPTA
  6. INGRES
  7. InterBase
  8. JetSQL
  9. Microsoft Access
  10. Microsoft SQL Server
  11. MySQL - eine sehr verbreitete Open-Source -Datenbank.
  12. PostgreSQL - ebenfalls eine sehr verbreitete Open Source -Datenbank die für Linux und Unix verfügbar ist.
  13. Oracle - eine kommerzielle Datenbank vom gleichnamigen
  14. MaxDB (früher SAP DB) - von SAP und MySQL weiterentwickelte Datenbank.
  15. SQLite
  16. SYBASE
  17. T-SQL
  18. Teradata

Literatur

  • Günter Matthiessen; Michael Unterstein: Relationale Datenbanken und SQL m. CD-ROM
    München: Addison-Wesley Neuaufl. 2003. ISBN 3-8272-2085-8
  • Edwin Schicker: Datenbanken und SQL. Eine praxisorientierte Einführung. Stuttgart: Teubner 1996. ISBN 3-519-02991-X
Obwohl bereits etwas betagt ist dieses gerade als wissenschaftlich fundierte und trotzdem leicht Einführung in SQL sehr zu empfehlen.

Weblinks

Siehe auch : SQL-Injection



Bücher zum Thema SQL

Dieser Artikel von Wikipedia unterliegt der GNU FDL.

ImpressumLesezeichen setzenSeite versendenSeite drucken

HTML-Code zum Verweis auf diese Seite:
<a href="http://www.uni-protokolle.de/Lexikon/SQL.html">SQL </a>