Referat: SQL - Structured Query Language
Gliederung
Einleitung/Erläuterung des Begriffes
a) Entstehung und Geschichteb) SQL Versionshistorie
Programmiersprache anhand von Beispielen
DQL (Data Query Language)
DML (Data Manipulation Language)
DDL (Data Definition Language)
DCL (Data Control Language)
Quellenangaben
Einleitung/Erläuterung des BegriffesSQL ist eine in den achtziger Jahren entstandene Programmiersprache zur Erstellung und Bearbeitung von relationalen Datenbanken. Ihre Syntax ist an die englische Umgangssprache angelehnt.Sie hat sich unter ständig durchgeführten Optimierungen und Verbesserungen bis heute zum QuasiStandard durchgesetzt.
b) SQL VersionshistorieDer Fortschritt von SQL kann am besten anhand einer Pyramide dargestellt werden, da diese auch veranschaulicht, dass es sich um einen stufenweisen Aufbau handelt.Die Grundlagen der SEQUEL Befehle aus dem Bestand der DQL, also Datenabfragesprache sind natürlich auch in der neuesten Version SQL3 enthalten. Die Spitze der Pyramide, also die erste Version enthielt nichts weiter als die eben erwähnte DQL. Zur Erläuterung der Bedeutung der Sprachenuntergruppen D(?(L komme ich im nächsten Punkt.SQL1 oder auch SQL-86 wurde dann, wie in der Pyramide zu erkennen, um alle weiteren Sprachuntergruppen (DDL, DML, DCL) ergänzt. SQL-89 oder auch SQL1 + IEF erhielt wiederum, wie der Name schon sagt, das Integrity Enhancement Feature; dieses verbesserte die Datenintegrität, indem es Datenredundanzen und Inkonsistenzen durch Überprüfungsvorgänge vor jedem Schreibvorgang verhinderte. Das vermeidet unnötige Wartungsvorgänge und sorgt für eine sauberere Datenbank.
Der nächste Schritt führt die Entwickler zu SQL2 (SQL-92). Zum einen wurde der Sprachentwurf von SQL verbessert und zum anderen wurde den bisherigen Features Embedded SQL (ESQL) hinzugefügt. Mit dessen Hilfe erlaubt der Quelltext nun SQLCode in eine strukturierte oder objektorientierte Programmiersprache einzubinden. So kann eine der derzeit gängige Sprachen C/C++, COBOL, Ada oder Pascal um ein oder mehrere Funktion von SQL erweitert werden.Von den weitreichenden Änderungen von SQL3, die nun folgen, werde ich allerdings nur die Wichtigsten erläutern:Das Hinzufügen von abstrakten Datentypen und Objektorientierung macht das in der Vor-Version eingeführte ESQL weitgehend überflüssig. Die neue Version ist nun auch selbst in der Lage mit abstrakten Datentypen und Objektorientierung zu arbeiten.Ein anderes Feature ergänzt die Datenbank um die 4. Dimension – Die Zeit. Eine so genannte temporale Datenbank ist in der Lage dem Benutzer auch die vor der Veränderung existierenden Daten anzuzeigen. Man kann zum Beispiel die alte Post- oder Mailadresse eines Kunden bis zu einem definierten Zeitpunkt einsehen, auch wenn man sie vor der Änderung nicht explizit extrahiert hat.Ein weiteres Feature ermöglicht Multimedia-Integration. Bilder, Sounds und Videos sind nun kein unüberwindbares Hindernis mehr für Datenbanken der neuen Generation.Zudem ist durch Remote-Data-Access (RDA) auch ohne weiteres Fernzugriff auf die Daten möglich.Programmiersprache anhand von Beispielen
a) DQL (Data Query Language)
Bei dieser Sprachuntergruppe handelt es sich um eine reine Datenabfragesprache. Sie ist nicht in der Lage die Datensätze in irgendeiner Weise zu verändern, sondern kann sie nur auf verschiedenste Weise zusammenstellen. Die unterschiedlichen Implementierungen bieten hierzu vielerlei Möglichkeiten. Daten können sowohl als einfache nach dem Alphabet sortierte Liste, als auch in Form einer Kreuztabelle oder Datendiagramm dargestellt werden.Zur Erläuterung habe ich ein Beispiel ausgewählt, welches den Namen und die Postadressen aus einer Adressliste zunächst zusammen mit dem Gehalt aus der Gehaltstabelle in einer Liste darstellt und das Layout und die Spaltenbezeichnungen nach bestimmten Kriterien gestaltet.Im letzen Schritt wird die eigentliche Auswahlabfrage nach definierten Kriterien vorgenommen.Nun folgt eine Darstellung der einzelnen Codes, welche in jedem Schritt um weitere Befehle ergänzt werden. Diese werden nachfolgend erläutert. (Hierbei sind alle neu eingefügten Befehle fett gedruckt; Befehle sind immer in GROSSBUCHSTABEN geschrieben; Programmcode und Feldnamen in der Beschreibung kursiv.
SELECT Name, Vorname, Straße, Hausnummer, Wohnort, PLZ FROM tblAdressen;Dieses Kommando zeigt alle Datensätze der angegebenen Datenfelder aus der Tabelle mit der Bezeichnung tblAdressen an. Abgeschlossen wird jeder Befehl mit einem Semikolon.
SELECT Name, Vorname, Straße, Hausnummer, Wohnort, PLZ FROM tblAdressenORDER BY Name, Vorname;Dieser Befehl stellt die Daten zudem nach dem Alphabet sortiert dar. Zunächst erfolgt die Sortierung nach dem Feld Name und dann nach dem Feld Vorname. Wird dem Befehl nachfolgend der Parameter DESC (eng. descending = absteigend) hinzugefügt, wird absteigend sortiert. Wird nichts oder ASC (eng. ascending = aufsteigend) hinzugefügt, sortiert das Datenbankprogramm aufsteigend.
SELECT Name, Vorname, Straße || ' ' || Hausnummer "Strasse/Nr.", Wohnort, PLZ "Postleitzahl" FROM tblAdressenORDER BY Name, Vorname;In diesem Erklärungsschritt werden gleich zwei neue Befehle erläutert. Der erste Befehl sorgt dafür, dass für die Ziffern PLZ ein so genannter Aliasname eingesetzt wird. Nun steht als Spaltenüberschrift anstatt der Abkürzung PLZ das ausgeschriebene Wort Postleitzahl.Der andere Befehl fügt die zwei Felder Straße und Hausnummer zu einem einzigen Feld mit der Bezeichnung Straße/Nr. zusammen. Die Zeichenfolge zwischen den beiden Anführungszeichen gibt den Separator an. Bei der Kombination Name, Vorname könnte beispielsweise das Leerzeichen um ein führendes Komma ergänzt werden (also || ', ' || ).
SELECT tblAdressen.Name, tblAdressen.Vorname, tblAdressen.Straße || ' ' || tblAdressen.Hausnummer "Strasse/Nr.", tblAdressen.Wohnort, tblAdressen.PLZ "Postleitzahl" tblGehaltsliste.Gehalt FROM tblAdressen, tblGehaltslisteORDER BY Name, Vorname;Dieser Befehl fügt den Datenfeldern der bisherigen DatentblAdressenbellen auch noch das Feld Gehalt aus der bereits in der Einleitung angekündigten Gehaltsliste hinzu. Da nun mit zwei Adressenbellen gearbeitet wird, muss jeder Feldname um die Datenblattherkunft ergänzt werden, um dem Datenbankprogramm mitzuteilen, wo die Information steht.
SELECT tblAdressen.Name, tblAdressen.Vorname, tblAdressen.Straße || ' ' || tblAdressen.Hausnummer "Strasse/Nr.", tblAdressen.Wohnort, tblAdressen.PLZ "Postleitzahl" tblGehaltsliste.Gehalt FROM tblAdressen, tblGehaltslisteORDER BY Name, Vorname;WHERE tblAdressen.Name = 'Bohlen'AND tblAdressen.Vorname = 'Dieter'AND tblGehaltsliste.Gehalt > 20.000Nach der Durchführung der gesamten „optischen Operationen“ gelangen wir nun zur eigentlichen Auswahl. Diese wird ausgeführt, indem in den letzten Befehlszeilen jeweils die Bedingungen eingesetzt werden. Im Beispiel sind relativ einfache Bedingungen beschrieben, jedoch kann alles Denkbare eingefügt werden. Dazu zählen verschachtelte WENN Funktionen und verschiedenste mathematische Aggregatfunktionen wie MITTELWERT, MAX, MIN und weitere.Die erste Bedingung wird immer mit WHERE eingeführt, wobei folgende, je nach Bedarf, entweder mit AND oder OR ergänzt werden. Bei Ersterem müssen alle Bedingungen erfüllt werden,bei Letzterem nur Eine.
In meiner Beschreibung habe ich nur ein einfaches Beispiel aus den am häufigsten verwendeten Funktionen zusammengestellt. In der Praxis sind noch sehr viel mehr Befehle verfügbar und werden auch eingesetzt und zu SQLCode zusammengestellt.
b) DML (Data Manipulation Language)
Diese Sprachuntergruppe hat weitaus mehr Macht, als zuvor beschriebene. Mit ihrer Hilfe kann der Datenbestand nicht nur selektiv eingesehen werden, sondern auch manipuliert, also verändert werden. Oft wird ein Veränderungsbefehl mit den bereits bekannten DQL Befehlen WHERE und AND kombiniert, um die zu verändernden Daten zusammenzustellen. Wie zuvor werde ich einige Sprachbefehle zu einem einfachen Beispiel bezüglich der Person „Dieter Bohlen“ zusammenstellen.
DELETE FROM tblAdressen WHERE Name = "ab del Farrag" AND Vorname = "Nadja"Im ersten Schritt wird zunächst einmal die Ex-Freundin Nadja aus dem Adressbestand entfernt.Der angewandte Befehl löscht zunächst alle Datensätze in denen der Name mit "ab del Farrag" und der Vorname mit "Nadja" übereinstimmt. Wie zuvor können Bedingungen je nach Bedarf mit AND oder OR kombiniert werden.
INSERT INTO tblAdressen (Name, Vorname, Straße, Hausnummer)VALUES ('Küster', 'Stefanie', 'Küstenweg', 5);Da wir nun seine Exfreundin entfernt habe, ist Platz für eine Neue. Stefanie Küster, besser bekannt als Estefania wird nun unserem Datenbestand hinzugefügt.Dazu verwendet man den Befehl INSERT INTO. Zunächst einmal gibt man an welche Datenfelder in welcher Datentabelle ein neuer Datensatz hinzugefügt werden soll und nach VALUES werden die einzufügenden Werte nach zuvoriger Reihenfolge definiert. Dies stellt sicher, dass der Name auch in dem Feld Name erscheint und nicht etwa im Feld Hausnummer Konflikte mit der Datentypdefinition verursacht. Des Weiteren ist wichtig alle Textstrings in einfache Anführungszeichen zu setzen. Zahlenformate wie Hausnummer und Datumsformate benötigen diese nicht.
UPDATE tblGehaltsliste SET Gehalt = 7000, Arbeitsstd.= NULL WHERE Name = 'Küster'Als letztes wird der UPDATE Befehl vorgestellt. Er ist in der Lage Daten in zuvor bestehenden Datensätzen zu aktualisieren bzw. neu zu schreiben.Der Befehl wird mit UPDATE und der Auswahl der Datentabelle eingeleitet und gibt nach SET die Felder an, in denen neue Werte eingefügt werden sollten. Das Gehalt wird in allen Feldern, in denen der Name Küster ist, auf 7000 gesetzt. Des Weiteren wird auch der Wert im Feld Arbeitsstd. gleich Null gesetzt. Dieser Befehl bewirkt eine Löschung des Feldes.
Die Sprachuntergruppe besitzt noch weitere Befehle, die nur für den Eingriff in eine „lebende Datenbank“ erforderlich sind. Damit ist eine Datenbank gemeint, die zur Zeit der Bearbeitung in Betrieb ist. Dies könnte die SQL-Datenbank eines Online Auktionshauses sein, oder auch die einer Suchmaschine. Hierbei ist es sehr wichtig während einer Editierungs-Operation den Schreibzugriff auf die Daten zu sperren. Hierzu sind zwei Befehle sehr praktisch.Sehr hilfreich ist der Befehl COMMIT. Mit ihm wird eine Befehlskette eingeleitet. Bei seiner Eingabe werden die Änderungen an der Datenbank vorerst nur in einer internen Datenbankkopie durchgeführt. Jeder User bekommt noch die Datensätze zu sehen, die vor der Operation vorhanden waren und hat keine Schreibberechtigung. Sobald der Datenbankbearbeiter den COMMIT Befehl erneut eingibt, werden die Änderungen überschrieben und der normale Betrieb bearbeiteten Datenfelder kann fortgesetzt werden. Sehr praktisch ist, dass immer nur ein kleiner Teil oder maximal eine Datentabelle gesperrt ist; nie aber die gesamte Datenbank.Des Weiteren ist auch der Befehl ROLLBACK sehr gut zu gebrauchen. Mit seiner Hilfe können alle seit der ersten Eingabe von COMMIT durchgeführten Änderungen rückgängig gemacht werden.Der zweite äußerst nützliche Befehl ist LOCK TABLE. Dieser sperrt eine gesamte Datentabelle. Er kann eingesetzt werden, wenn sehr viele Änderungen an einer Datentabelle durchzuführen sind, oder aber auch im Notfall bei massenhaften auftretenden unautorisierten Manipulationen.
c) DDL (Data Definition Language)
Dies ist die Untergruppe der SQL-Programmiersprache die für die Datendefinition zuständig ist.Die meisten Operationen arbeiten mit dem Hinzufügen oder Entfernen von Tabellenspalten oder ganzen Tabellen. Im Beispiel wird eine weitere Datentabelle für die Eingabe aller Alben von unserem‚Gott der PopMusik’ Dieter Bohlen erzeugt.
CREATE TABLE tblAlben(Nr INTEGER primary key, Titel varchar (20), Erscheinungsdatum, DATETIME Not Null)UNIQUE (Nr);CREATE SEQUENCE Nr INCREMENT BY 1 MINVALUE 1;Dieser, zunächst sehr lang und unübersichtlich wirkende Befehl, hat bei genauerer Betrachtung eine eindeutige Syntax. Nach CREATE TABLE folgt zunächst der Datentabellenname und eingeklammert die Bezeichnung der Datenfelder. Nach jedem Datenfeldnamen folgt die Angabe des Datentyps und eventuell der String primary key falls das Feld als Primärschlüssel definiert werden soll.Die Datentypbezeichnungen sind leider trotz der 1982 durchgeführten ANSI-Standardisierung nicht einheitlich. Für MS Access gelten die in der Fußnote angegebenen. Nach Angabe aller Datenfelder erfolgt noch in der Klammer die Angabe von Not Null, um Eingaben in allen Feldern zu erzwingen.Der Zweite Befehl erzeugt für das Feld Nr einen AutoWert, der von dem Minimalwert(MINVALUE) 1 in 1er Schritten(INCREMENT) aufgezählt wird.
ALTER TABLE tblAlben ADD Verkaufszahlen INTEGERDieser Befehl fügt der soeben erstellten Datentabelle ein weiteres Datenfeld mit der Bezeichnung „Verkaufszahlen“ hinzu. Der Datentyp wird auf INTEGER festgelegt.
d) DCL (Data Control Language)
Diese Sprachuntergruppe ist für die Datenkontrolle zuständig. Zu Deutsch: Rechteverwaltung.Mit ihrer Hilfe kann der Datenbankadministrator Rechte vergeben oder entziehen.In unserem Beispiel entziehe ich Dieter Bohlen alle Rechte an allen behandelten Datentabellen und gewähre sie dem Benutzer GOB3. Dies geschieht in zwei Schritten.
REVOKE SELECT, DELETE, UPDATE ON tblAdressen, tblGehaltsliste, tblAlbenFROM D.Bohlen;Mit diesem Befehl entziehe ich dem Benutzer D.Bohlen alle Rechte an den drei Beispieltabellen. Anstatt ALL lassen sich jedoch auch einzelne Rechte definieren. Diese sind in der rechtsseitigen Tabelle zu erkennen.
Recht Anweisung Alle Rechte eines Datenbankobjekts ALL Recht zum Lesen von Datensätzen SELECT Recht zum Ändern von Datensätzen UPDATE Recht zum Einfügen von Datensätzen INSERT Recht zum Löschen von Datensätzen DELETE Recht zum Definieren von referenzieller Integrität REFERENCES Recht um Tabellen nachträglich zu verändern ALTER Recht zum Löschen von Datenbankobjekten DROP Recht zum Erstellen von Datenbankobjekten CREATE INSERT INTO user (host, user, password) VALUES (“localhost”, “GOB3”,PASSWORD(“Schule”));Dieser Befehl ist im Grunde genommen ein DML Befehl. Allerdings arbeitet er nicht mit irgendeiner Datentabelle, sondern mit jener, die die Benutzerrechte festlegt. Diese definiert Loginnamen und Passwörter und je nach Bedarf auch Email-Adressen und Telefonnummern der Benutzer.In diesem Fall weisen wir dem Benutzer GOB3, der sich nur lokal anmelden darf (localhost) das Passwort Schule zu. Mit diesem kann er sich zukünftig einloggen, hat aber noch keine Lese- oder Bearbeitungsrechte.
GRANT ALL ON tblAdressen, tblGehaltsliste, tblAlben TO GOB3;Dieser Befehl weist unserem soeben erstellten Benutzer alle Rechte an den Datentabellen zu.
Quellenangaben
Insbesondere Geschichte von SQL und teilweise Versionshistorie und Beispielehttp://de.wikipedia.org/wiki/SQL
Pyramide der Versionen Informationen über Fachbegriffe RDA, IEF, usw. über versch. Google Resultate)http://rnvs.informatik.tu-chemnitz.de/proseminare/www03/doku/datenbank/datenbanken.html Informationen über das Liebesleben der Beispielfigur Dieter Bohlenhttp://www.bohlen-fanpage.de/lebenslauf.php
Praktische Beispielehttp://www.torsten-horn.de/techdocs/sql.htm
Gute Bespiele zu DCL http://www.it-academy.cc/content/article_browse.php?ID=0000001293
(Angeben sind nur die ‚Hauptquellen’. Wie schon beschrieben recherchierte ich Detailinformationen zu Fachbegriffen und bestimmten Themen über verschiedene Seiten, die ich über die internationale Google-Suche gefunden habe, da auf keiner Seite eindeutige Begriffsdefinitionen angegeben wurden.)
Bezeichnung von Zeichen bis Zeichen Komma Speicher Byte 0 255 - 1 Byte Integer -32.768 +32.767 - 2 Byte LongInteger ca. -2Mia. ca. +2Mia. - 4 Byte Single -3,5*1038 +3,5*1038 7 4 Byte Double 1,797*10308 1,797*10308 15 8 Byte Dezimal -1038 1038 28 12 Byte Datetime - - - - Char(n) - - - - Varchar(n) - - - - Longchar - - - 64KByte NOW() - - - -
1/6 GOB3 Tobias Twardon WIO Referat SQL 29.05.2004 12:14
© 2004 Tobias@twardon.de
Inhalt
In diesem Referat gehe ich genau auf die Programmiersprache SQL ein.
Hierbei werden folgende Punkte berücksichtigt:
1. Einleitung/Erläuterung des Begriffes
2.a) Entstehung und Geschichte
b)SQL Versionshistorie
3. Programmiersprache anhand von Beispielen
a) DQL (Data Query Language)
b) DML (Data Manipulation Language)
c) DDL (Data Definition Language)
d) DCL (Data Control Language)
4. Quellenangaben (Aussschließlich das Internet) (2671 Wörter)
Hierbei werden folgende Punkte berücksichtigt:
1. Einleitung/Erläuterung des Begriffes
2.a) Entstehung und Geschichte
b)SQL Versionshistorie
3. Programmiersprache anhand von Beispielen
a) DQL (Data Query Language)
b) DML (Data Manipulation Language)
c) DDL (Data Definition Language)
d) DCL (Data Control Language)
4. Quellenangaben (Aussschließlich das Internet) (2671 Wörter)
Hochgeladen
von unbekannt
Schlagwörter
SQL | Structered Query Language | Sequel | DQL | Data Query Language | DML | Data Manipulation Language | DDL | Data Definition Language | DCL | Data Control Language | programmieren | Datenbank | Access | Microsoft | relationale Datenbank | IBM | Ingris | Sybase | Informatik
Optionen
1 weitere Dokumente zum Thema "Programmiersprachen"
7 Diskussionen zum Thema im Forum
7 Diskussionen zum Thema im Forum
- MS Query, Abfrage in Word aus einer Excel Tabelle (3 Antworten)
- Einführung in die Programmierng Pseudocode Frage (2 Antworten)
- PHP - INSERT INTO Frage (24 Antworten)
- Dokumentation über Pascal-Dreieck bis 23.11 (3 Antworten)
- PHP variable -> Javascript übergeben (3 Antworten)
- mehr ...
Wenn du dieses Dokument verwendest, zitiere es bitte als: "SQL - Structured Query Language", https://e-hausaufgaben.de/Referate/D4062-Datenbankprogrammierung-SQL-Structured-Query-Language.php, Abgerufen 21.11.2024 17:20 Uhr
Es handelt sich hier um einen fremden, nutzergenerierten Inhalt für den keine Haftung übernommen wird.
Es handelt sich hier um einen fremden, nutzergenerierten Inhalt für den keine Haftung übernommen wird.
ÄHNLICHE DOKUMENTE:
- Programmiersprache SQL - Structured Query LanguageIn diesem Referat gehe ich genau auf die Programmiersprache SQL ein. Hierbei werden folgende Punkte berücksichtigt: 1. ..
- mehr ...
PASSENDE FRAGEN:
- MS Query, Abfrage in Word aus einer Excel TabelleDie Frage sagt ja eigentlich alles, wie starte ich MS Query? Muss eine Abfrage in Word machen und dabei in einer excel ..
- Einführung in die Programmierng Pseudocode FrageKonvertierung: Konkatenation: Ich muss diese zwei Begriffe der Informatik erklären Wie kann ich diese Begriffe erlären..
- PHP - INSERT INTO FrageHallo. Ich versuche gerade ein Formular zu erstellen. Dabei wird ein Text ($zitat) übergeben. Diesen Text möchte ich nachher ..
- Dokumentation über Pascal-Dreieck bis 23.11Brauche Hilfe bei einer Doku, ich soll das Pascalsche Dreieck in Java programmieren und eine ausführliche Doku schreiben. Das..
- PHP variable -> Javascript übergebenhi, ich habe gegoogelt... aber keine deren lösungen klappt bei mir?! Quelltext: <?php $d=date ("d"); $m=date ("m..
- mehr ...