wer ist, was ist, wo ist, wann war, was war - Lexikon / Chronik / Biografie / Wissen - SQL


Werbung

Produkte / Services :|: Chronik CD :|: als Startseite | zu den | empfehlen :|: Impressum
Lexika @ InfoBitte.de :|: Universal-Lexikon | WeltKunst | Geteiltes Deutschland | Zweiter Weltkrieg
WeltChronik.de :|: Welt | Deutschland | Kultur/Kunst/Technik :|: BildDatenBank :|: Biografien

Navigation

WeltChronik
Deutsche Chronik
KulturChronik
Biografien
Bilddatenbank
Kalenderblatt
Epochen
Lexika @ InfoBitte.de
Produkte

Suchfunktionen
Chronik-Jahr direkt

Nur Zahl eingeben
Bereich: '0'-'2001'
PARTNER
Ahnenforschung

Quellen für die Schule

FREE 4 WebMasters

Wir haben eine ganze Palette kostenloser Angebote von uns
für WebMaster und HomePage Besitzer aufbereitet

Holen Sie sich hier ab

was Sie gerne einsetzen würden
Suchfunktionen, Kalenderblatt, uam
für Ihre WebSite



SQL

ein InfoBitte / WeltChronik
Sach-Artikel (Enzyklopädie / Lexikon)

Entwickelt von ICA-D aus der XML-Version der deutschen WikiPedia
© 2004/2005 ff by de.wikipedia.org, teilw. by ICA-D
blättern» voriger Artikel | Hauptseite | nächster Artikel «blättern

SQL (Structured Query Language) ist eine Abfragesprache für relationale Datenbanken. Sie hat eine relativ einfache Syntax, die an die englische Umgangssprache angelehnt ist, und stellt eine Reihe von Befehlen zur Definition von Datenstrukturen nach der relationalen Algebra, zur Manipulation von Datenbeständen (Anfügen, Bearbeiten und Löschen von Datensätzen) und zur Abfrage von Daten zur Verfügung. Durch ihre Rolle als Quasi-Standard ist SQL von großer Bedeutung, da eine weitgehende Unabhängigkeit von der benutzten Software erzielt werden kann. Die meisten SQL-Implementierungen bieten darüber hinaus allerdings noch herstellerspezifische Erweiterungen, die nicht 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


1 Geschichte

2 Sprachelemente und Beispiele

  2.1 Data Manipulation Language: INSERT, UPDATE, DELETE

    2.1.1 Befehle zur Datenabfrage: SELECT

    2.1.2 Befehle zur Datenmanipulation: INSERT, UPDATE, DELETE

  2.2 Data Definition Language: CREATE, ALTER, DROP

    2.2.1 Befehle zur Datendefinition: CREATE, ALTER, DROP

  2.3 Data Control Language: GRANT and REVOKE

3 SQL-Datentypen

4 Statisches und Dynamisches SQL

5 SQL-Datenbanksysteme

6 Literatur

7 Weblinks


Geschichte

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


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


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


Neue SQL-Version SQL:2003 vor der Veröffentlichung


Im Juni dieses Jahres (2003) wurden bei einer Tagung der Arbeitsgruppe der ISO/IEC JTC1/SC32/WG3 in Stockholm die Arbeiten an 9 SQL-Dokumenten abgeschlossen. Die letzte Abstimmungsrunde startet in den nächsten Wochen und Anfang des Jahres 2004 sollten die Dokumente veröffentlicht werden.


Sprachelemente und Beispiele

Die Sprache SQL wird in drei Teilsprachen untergliedert: die Data Manipulation Language (DML, Datenabfrage und -manipulation), die Data Definition Language (DDL, Datendefinition) und die Data Control Language (DCL, Rechteverwaltung).


Data Manipulation Language: INSERT, UPDATE, DELETE

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 Inhalte der Spalte Name aus der Tabelle Adressen an. Da die abgefragten Datensätze im Normalfall nicht geordnet werden, muss ein Ordnungsbegriff (hier der Name) ausdrücklich angegeben werden.
  • select count (*) Anzahl_Adressen from Adressen


Gibt die Anzahl der Datensätze in der Tabelle Adressen aus. Die Ausgabe besteht lediglich aus einer Zeile und einer Spalte, welche die Überschrift Anzahl_Adressen trägt.

Befehle zur Datenmanipulation: INSERT, UPDATE, DELETE

  • insert into Adressen (Name, Vorname, Ort) values ('Schroeder', 'Knut', 'Köln')


Fügt eine Zeile mit den geg. Werten 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 auf "Berlin" wenn dieser Eintrag als Namen "Schroeder" aufweist.
  • 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.

Data Definition Language: CREATE, ALTER, DROP

Befehle zur Datendefinition: CREATE, ALTER, DROP

  • create table Laender (Kuerzel_ISO character (2) primary key, 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 leere 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 in der Tabelle Adressen, wenn der Name als Suchkriterium angegeben wird.
  • drop index idx_Adressen


Löscht den Index idx_Adressen.

Data Control Language: GRANT and REVOKE

Befehle zur Vergabe von Rechten.


  • grant select,update on table Adressen to groupx


Gestattet dem Benutzer bzw. der Gruppe groupx einen lesenden und ändernden Zugriff auf die Tabelle Adressen.
  • revoke execute on procedure DSN8ED6 from public


Entzieht allen nicht explizit berechtigten Benutzern das Recht, die Stored-Procedure DSN8ED6 auszuführen. Berechtigungen, die einem Benutzer oder einer Gruppe erteilt wurden, bleiben bestehen.

SQL-Datentypen

In den oben vorgestellten Befehlen create table und alter table wird bei der Definition jeder Spalte angegeben, welches Datenformat sie unterstützen soll. Dazu liefert SQL eine ganze Reihe standardisierter Datentypen mit. Dies sind die 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, unterscheiden zwischen statischem und dynamischem SQL.


Bei statischem SQL sind die SQL-Anweisungen fix in einem Anwendungsprogramm kodiert (so genanntes Embedded SQL). Während der Programmvorbereitung übersetzt ein Precompiler die SQL-Befehle in Funktionsaufrufe, anschließend definiert ein Optimizer den besten Zugriffspfad auf die Daten und speichert diesen im Datenbanksystem ab.


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


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


SQL-Datenbanksysteme



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 Buch gerade als wissenschaftlich fundierte und trotzdem leicht verständliche Einführung in SQL sehr zu empfehlen.

Weblinks



Siehe auch: SQL-Injection


blättern» voriger Artikel | Hauptseite | nächster Artikel «blättern

Dieser Beitrag ist aus der XML-Version der deutschen WikiPedia® entwickelt worden und unterliegt inhaltlich den GNU FDL-Lizenzbestimmungen. Linkziele außerhalb der wikipedia-Inhalte unterliegen den Urheberrechten der jeweiligen Anbieter




Wörterbuch


Produkte
2000 Jahre
Chronik CD-ROM


Kalenderblatt in
Schmuckblatt
Ausführung


Geburtstags-Bios

Suchen/Google-Ads
Kalenderblatt
druckfertig
( DirectDownloads )
Kalenderblätter
druckfertig aufbereitet für Schmuckblätter
zum Selbstdrucken

im Word DOC6/RTF Format, je Euro 5
über Click&Buy
JAN | FEB | MÄRZ
APRIL | MAI | JUNI
JULI | AUG | SEPT
OKT | NOV | DEZ

Das Geschenk für jeden Anlass, nicht nur bei 'runden' Jubiläen
Andere Einzeltage
oder Zahlungsarten

bitte HIER bestellen


© 2000 ff by ICA-D, D-76751 Jockgrim, Germany
Verantwortlich im Sinne des Presse- und Multimedia-Rechts: Dipl.-Ing. Rainer Detering, Waidweg 18, 76189 Karlsruhe


| Immer | Unsere | InfoBitte weiterempfehlen
KALENDERBLATT von HEUTE | SUCH-Funktionen ALLE und nach BEREICHEN | Startseite
Welt-Chronik | Kunst-, Kultur-, Technik-Geschichte | Deutsche Chronik | 2000 Biografien | Bild-Datenbank
Gesetzestexte | SkateGuide | Online Jigsaw Puzzles | GeschenkTip | Produkte, Services, Impressum



*NEU* bei InfoBitte *NEU*



die deutsche WikiPedia
bei InfoBitte.de mit
650,000 Querverweisen zu
2000 Jahre Chronik



InfoBitte
Portal zu Portalen
Hauptseite


Suchfunktionen

Wissen, Biografien, Geschichte
besser gezielt suchen mit
domain-Filterung

die Links führen im neuen Fenster
zu den jeweiligen Hauptseiten,
das Anklicken eines Buttons zur
Filterung für die Google-Suche



Google
Lexika @ InfoBitte.de

ib InfoBitte.de (alle Lexika)
ib Universal-/Hand-Lexikon
die WikiPedia @ InfoBitte
ib L. WeltKunstGeschichte
ib L. Geteiltes Deutschland
ib L. Zweiter Weltkrieg

2000 Jahre Chronik

WeltChronik.de (Texte)
  
WeltChronik auf CDROM
deutsche Geschichte
Kultur-/TechnikGeschichte
WeltChronik Bilder
Chronik Biografien

Google
2000 Jahre Chronik
offline auf CDROM

Hier Kaufen


WeltChronik Jahr...
(eigene Suchfunktion)

Nur Zahl eingeben
Bereich: '0'-'2001'





Diese Web Site verdient ihr Geld durch Produktverkäufe (CD-ROM, downloads) und in erster Linie durch Anzeigen. Wenn Sie als Webmaster zuverlässige Partner suchen für Ihr eigenes Anzeigenschäft, dürfen Sie sich gerne auf unsere Empfehlungen stützen:
z.B.: GigaCash & ProfiWin