SQL Datenbanksprache SQL Structured Query Language 1 Artikel
SQL Datenbanksprache SQL (Structured Query Language) 1
Artikel - Datenbank: Sammlung von Daten (Eigenschaften) von Objekten Die Datenbank kann vom Benutzer nach bestimmten Kriterien abgefragt werden. Die Objekte werden Entitäten genannt. Der Objekttyp (Bauplan) heißt Entitätstyp Darstellung durch ein Rechteck. Eine Entität hat Eigenschaften (Attribute) Darstellung durch Rechtecke mit abgerundeten Ecken. Modellierung 2
Artikel - Datenbank Artikel-Datenbank Artikel Datenbank ANr Artikel AName ABild ALieferumfang APreis ABestand Die Daten zu den verschiedenen Artikeln werden in einer Tabelle verwaltet. Die Attribute sind die Spaltenköpfe. ANr AName ABild APreis ABestand ALieferumfang 31190 3130 31105. . . Lustige Winterfiguren Jubiläumsedition Mittelalt. Stundenbücher 31190. jpg 3130. jpg 31105. jpg 12. 00 15. 00 12. 00 10 Karten 15 Karten 10 Karten 69 55 34 3
Datenbanksystem My. SQL Das Datenbanksystem My. SQL ist das zur Zeit populärste Open. Source-DBS der Welt. Vor allem im World Wide Web wird es zur Herstellung dynamischer Webseiten eingesetzt. My. SQL arbeitet auf der Grundlage der standardisierten Datenbanksprache SQL, in den 70 er Jahren des 20. Jh. von der Firma IBM entwickelte Abfragesprache für die relationale Datenbank DB 2. Datenbankmanagmentsystem mit SQL Datenbank My. SQL Daten Artikel Daten 4
Sprachelemente von SQL Die SQL-Befehle lassen sich in verschiedene Bereiche untergliedern: Datenabfrage, Datendefinition, Datenmanipulation und Rechteverwaltung Befehl zur Datenabfrage: SELECT Befehle zur Datenmanipulation: INSERT, UPDATE, DELETE Befehle zur Datendefinition: CREATE, ALTER, DROP php. My. Admin ist ein Tool (Frontend) mit dem man My. SQLDatenbanken verwalten kann. Start im browser mit: ip-Adresse des Lehrerrechners/phpmyadmin 5
php. My. Admin 6
Der SELECT Befehl - allgemein SELECT [DISTINCT] { spalten | * } FROM tabelle [alias] [, tabelle [alias]]. . . Der SELECT Befehl allgemein [ WHERE { bedingung } ] [GROUP BY spalten [HAVING {bedingung }]] [ORDER BY spalten [ASC | DESC]]; Selektion ANr Projektion AName ABild APreis ABestand ALieferumfang 31120 Weihn. Formenspiel 31120. jpg 13. 00 69 10 Karten 3130 Jubiläumsedition 3130. jpg 15. 00 55 15 Karten 31105 Mittelalt. Stundenbücher 31105. jpg 12. 00 34 10 Karten . . . 7
Der SELECT Befehl - Projektion Der SELECT Befehl Projektion SELECT * FROM artikel SELECT ANr, AName, APreis FROM artikel SELECT ANr AS Nummer, AName AS Bezeichnung, APreis AS Preis FROM artikel ORDER BY APreis, AName Beim Tabellennamen muss Groß / Kleinschreibung beachtet werden. In ORDER BY darf auch der ALIAS-Name (z. B. Preis) verwendet werden. Standard bei ORDER BY ist ASC 8
Der SELECT Befehl – Berechnete Spalte Bei einer Abfrage können auch neue Spalten erzeugt werden: SELECT AName, APreis, (APreis*1. 16) AS Preis_mit_Mwst FROM artikel AName APreis_mit_Mwst Weihnachtliches Formenspiel 13. 00 15. 08 Jubiläumsedition 15. 00 17. 40 Mittelalterliche Stundenbücher 12. 00 13. 92 Der SELECT Befehl – Berechnete Spalte 9
Der SELECT Befehl - DISTINCT gibt an, dass im Ergebnis nur verschiedene Zeilen auftauchen dürfen. SELECT DISTINCT ALieferumfang FROM artikel ALieferumfang 10 Karten 15 Karten 8 Karten Der SELECT Befehl DISTINCT 10
Der SELECT Befehl – WHERE (Selektion) SELECT * FROM artikel WHERE APreis = 6 AND ALieferumfang = "10 Karten" SELECT * FROM artikel WHERE ANr < 10000 SELECT ANr, AName, ABestand FROM artikel WHERE ABestand BETWEEN 50 AND 60 Der Vergleichsoperator LIKE ermöglicht den Vergleich eines Feldes mit einem Text, der den Platzhalter % enthalten kann. % steht für eine beliebige Anzahl von Zeichen. SELECT * FROM artikel WHERE AName LIKE "%Kalender%" (Groß / Kleinschreibung spielt bei LIKE keine Rolle) Der SELECT Befehl - WHERE (Selektion) 11
Der SELECT Befehl – GROUP BY, COUNT, SUM Mit der GROUP BY können Datensätze in Gruppen eingeteilt werden. Dabei wird jeder Datensatz genau einer Gruppe zugeordnet. COUNT (*) zählt die Anzahl der erhaltenen Datensätze je Gruppe SELECT APreis FROM artikel GROUP BY APreis SELECT APreis AS Preis_in_Euro, COUNT(*) AS Anzahl_der_Artikel FROM artikel GROUP BY APreis (Wie viele verschiedene Artikel gibt es von den verschiedenen Preisen) SELECT APreis AS Preis, SUM(ABestand) AS Verfügbare_Artikel FROM artikel GROUP BY APreis Der SELECT Befehl - GROUP BY, COUNT, SUM 12
Der SELECT Befehl – GROUP BY spalten HAVING Bedingung Wenn man nicht an allen Gruppen interessiert ist, so kann man mit der having-Klausel die in Frage kommenden Gruppen auswählen. SELECT APreis AS Preis_in_Euro, COUNT(*) AS Anzahl_der_verschiedenen_Kalender FROM artikel WHERE AName LIKE ("%kalende%") GROUP BY APreis HAVING Preis_in_Euro BETWEEN 8 AND 13 Preis_in_Euro Anzahl_der_verschiedenen Kalender 9. 00 1 13. 00 2 Der SELECT Befehl GROUP BY spalten [HAVING {bedingung }] 13
Der UPDATE Befehl modifiziert den Inhalt eines Datenfeldes. UPDATE Tabelle SET Spalte 1 = Wert 1 [Spalte 2 = Wert 2]. . . [WHERE Bedingung] UPDATE artikel Set ABestand = ABestand +1000 WHERE ABestand = 69 31120 Weihnachtliches Formenspiel 1069 34520 Grafische Weihnachtspostkarten 98 32240 Kunsthandwerk aus Thailand 95 Der UPDATE Befehl 14
Der INSERT Befehl fügt in eine bestehende Tabelle Datensätze ein. INSERT INTO artikel (ANr, ALieferumfang, AName, APreis) VALUES (1234, "1 Kalender", "Ostern", 22) 31940 Schreib mal wieder 10 Karten 31940. jpg 13. 00 77 32503 Weihnachtsgeschenkanhänger 10 Kärtchen 32503. jpg 6. 00 79 Ostern 1 Kalender NULL 22. 00 0 1234 Der INSERT Befehl 15
- Slides: 15