SQL structured query language



Ähnliche Dokumente
DATENBANKEN SQL UND SQLITE VON MELANIE SCHLIEBENER

SQL für Trolle. mag.e. Dienstag, Qt-Seminar

IV. Datenbankmanagement

Einführung in SQL. Sprachumfang: Indizes. Datensätzen. Zugriffsrechten

SQL. strukturierte Datenbankabfragesprache eine Datenbanksprache zur. Structured Query Language:

Datenbanken SQL Einführung Datenbank in MySQL einrichten mit PhpMyAdmin

Einführung in SQL. 1. Grundlagen SQL. Structured Query Language. Viele Dialekte. Unterteilung: i. DDL (Data Definition Language)

Labor 3 - Datenbank mit MySQL

SQL Tutorial. SQL - Tutorial SS 06. Hubert Baumgartner. INSO - Industrial Software

Aufbau des SELECT-Befehls. Im Folgenden werden zunächst Abfragen aus einer Tabelle vorgenommen.

SQL-Befehlsliste. Vereinbarung über die Schreibweise

3 Query Language (QL) Einfachste Abfrage Ordnen Gruppieren... 7

Informatik 12 Datenbanken SQL-Einführung

Oracle 10g Einführung

Sructred Query Language

Mengenvergleiche: Alle Konten außer das, mit dem größten Saldo.

Referenzielle Integrität SQL

Erstellen einer Datenbank. Datenbankabfragen

7. Übung - Datenbanken

MySQL-Befehle. In diesem Tutorial möchte ich eine kurze Übersicht der wichtigsten Befehle von MySQL geben.

Datumsangaben, enthält mindestens Jahr, Monat, Tag

Übersicht der wichtigsten MySQL-Befehle

Informatik Datenbanken SQL-Einführung

Access Grundkurs. M. Eng. Robert Maaßen

Relationale Datenbanken in der Praxis

105.3 SQL-Datenverwaltung

Inhalt. Ein Einführung in die Nutzung von SQL-Datenbanken am Beispiel Oracle. Daten und Tabellen - ein Beispiel. Daten und Tabellen - Normalisierung

Grundlagen von SQL. Informatik 2, FS18. Dr. Hermann Lehner (Material von Dr. Markus Dahinden) Departement Informatik, ETH Zürich

5/14/18. Grundlagen von SQL. Grundlagen von SQL. Google, Facebook und Co. setzen auf SQL. Whatsapp

SQL und MySQL. Kristian Köhntopp

Übung Datenbanken in der Praxis. Datenmodifikation mit SQL

Datenbanken im WI-Unterricht mit

Anwendungsentwicklung Datenbanken SQL. Stefan Goebel

Kurzanleitung für Umsteiger von DataEase.

Carl-Engler-Schule Karlsruhe Datenbank 1 (5)

(Von der Nähe zur Distanz zum User geordnet)

Fachhochschule Kaiserslautern Labor Datenbanken mit MySQL SS2006 Versuch 1

Abfragen: Grundbausteine

Nachtrag: Farben. Farbblindheit. (Light und Bartlein 2004)

Whitepaper. Produkt: combit Relationship Manager. Datensatzhistorie mit dem SQL Server 2000 und combit GmbH Untere Laube Konstanz

Datenbanktechnologie mit praktischen Übungen in MySQL und PHP

Arbeiten mit ACCESS 2013

Datenbanktechnologie mit praktischen Übungen in MySQL und PHP

Übersicht über Datenbanken

Universität Augsburg, Institut für Informatik WS 2006/2007 Dr. W.-T. Balke 27. Nov M. Endres, A. Huhn, T. Preisinger Lösungsblatt 5

ISU 1. Ue_08/02_Datenbanken/SQL. 08 Datenbanken. Übung. SQL Einführung. Eckbert Jankowski.

Datenbanken: Datenintegrität.

Abbildung 1: Das ERM. Nun zu den Tabellen: Zunächst wird aus jeder Entity eine Tabelle, d.h. wir erhalten:

Datenbanken. Zusammenfassung. Datenbanksysteme

Details zu den Ausdrücken nach FROM, WHERE, GROUP BY und HAVING finden Sie in den Abschnitten über JOIN, WHERE und GROUP BY.

Dipl. Inf. Dipl. Math. Y. Orkunoglu Datum:

5.3 Datenänderung/-zugriff mit SQL (DML)

Datenbanken für Online Untersuchungen

Datenbanken Microsoft Access 2010

PHP + MySQL. Die MySQL-Datenbank. Hochschule Karlsruhe Technik & Wirtschaft Internet-Technologien T3B250 SS2014 Prof. Dipl.-Ing.

Bibliografische Informationen digitalisiert durch

DBS ::: SERIE 5. Join Right Semi- Join Left Semi-Join Projektion Selektion Fremdschlüssel. Kreuzprodukt

Begleitskript. zum PHP/MySQL. Kurs

Es geht also im die SQL Data Manipulation Language.

DB-Datenbanksysteme. DB SQL-DML 1 Mario Neugebauer

7. Datenbank-Zugriff. Vorlesung und Übung Dr. Peter Pfahler Institut für Informatik Universität Paderborn. Zum Beispiel aus PHP-Skripten: Client 7-2

SQL (Structured Query Language) Schemata Datentypen

4. Datenbanksprache SQL

Seminar 2. SQL - DML(Data Manipulation Language) und. DDL(Data Definition Language) Befehle.

WS 2010/11 Datenbanksysteme Fr 15:15 16:45 R Vorlesung #3. SQL (Teil 1)

desk.modul : WaWi- Export

MySQL Installation. AnPr

SQL. Fortgeschrittene Konzepte Auszug

Wiederholung VU Datenmodellierung

Web Technologien Klassische Datenbanken am Beispiel von MySQL

SQL-Befehlsliste. Vereinbarung über die Schreibweise

Leseprobe: SQL mit MySQL - Band 4 Kompendium mit Online-Übungs-DB. Kompendium zur schnellen Kurzinformation der Datenbanksprache SQL/MySQL 5.

Die SQL-Syntax für den Befehl CREATE TABLE sieht folgendermassen aus:

SQL. DDL (Data Definition Language) Befehle und DML(Data Manipulation Language)

Programmieren für mobile Endgeräte SS 2013/2014. Dozenten: Patrick Förster, Michael Hasseler

Eine völlig andere Form Abfragen zu erstellen ist, sie mit Hilfe der Datenbankabfragesprache SQL zu gestalten.

Integritätsbedingungen / Normalformen- Beispiel: Kontoführung

XAMPP-Systeme. Teil 3: My SQL. PGP II/05 MySQL

Datenmanagement in Android-Apps. 16. Mai 2013

Wirtschaftsinformatik 2. Tutorium im WS 11/12

Arbeiten mit einem lokalen PostgreSQL-Server

U8: SQL Datenbank Daniel Baron 1

PHP und MySQL. Integration von MySQL in PHP. Zellescher Weg 12 Willers-Bau A109 Tel Michael Kluge (michael.kluge@tu-dresden.

Relationales Modell: SQL-DDL. SQL als Definitionssprache. 7. Datenbankdefinitionssprachen. Anforderungen an eine relationale DDL

Uni Duisburg-Essen Fachgebiet Informationssysteme Prof. Dr. N. Fuhr

Semantische Integrität (auch: Konsistenz) der in einer Datenbank gespeicherten Daten als wichtige Anforderung

Daten-Definitionssprache (DDL) Bisher: Realwelt -> ERM -> Relationen-Modell -> normalisiertes Relationen-Modell. Jetzt: -> Formulierung in DDL

ACCESS SQL ACCESS SQL

Structured Query Language (SQL) 1

Einstieg in das SQL- und Datenbanktuning Loblied auf den Tabellen-Index!

Abfragen (Queries, Subqueries)

PHP & MySQL. MySQL Einführung. Zellescher Weg 12 Willers-Bau A109 Tel Michael Kluge (Michael.Kluge@tu-dresden.

Auf einen Blick. Abfrage und Bearbeitung. Erstellen einer Datenbank. Komplexe Abfragen. Vorwort... 13

Dieser Foliensatz darf frei verwendet werden unter der Bedingung, dass diese Titelfolie nicht entfernt wird.

Probeklausur im Modul Informationstechnik 1, WS 2003/04. Studiengang IWD 1. Semester Seite 1 von 5

insert, update, delete Definition des Datenbankschemas select, from, where Rechteverwaltung, Transaktionskontrolle

SQL. SQL: Structured Query Language. Früherer Name: SEQUEL. Standardisierte Anfragesprache für relationale DBMS: SQL-89, SQL-92, SQL-99

Transkript:

Umfangreiche Datenmengen werden üblicherweise in relationalen Datenbank-Systemen (RDBMS) gespeichert Logische Struktur der Datenbank wird mittels Entity/Realtionship-Diagrammen dargestellt structured query language Manipulation und Abfrage der Daten erfolgt mittels (Structured Michael Query Language) Kamleitner, 7.3.2003 Entwickelt anfang der 70er von E.F. Codd (IBM) Aktueller Standard: ANSI--92 (bzw. 99) Am Markt etablierte Datenbanken Oracle, Microsoft -Server, IBM DB2......implementieren mehr oder weniger ANSI--92

E/R Diagramm Umfangreiche Datenmengen werden üblicherweise in relationalen Datenbank-Systemen (RDBMS) gespeichert Logische Struktur der Datenbank wird mittels Entity/Realtionship-Diagrammen dargestellt Manipulation und Abfrage der Daten erfolgt mittels (Structured Query Language) Entwickelt anfang der 70er von E.F. Codd (IBM) Aktueller Standard: ANSI--92 (bzw. 99) Am Markt etablierte Datenbanken Oracle, Microsoft -Server, IBM DB2......implementieren mehr oder weniger ANSI--92

E/R Diagramm Datenbanken bestehen aus Tabellen Spalten Attribute, Felder Zeilen Datensätze Primärschlüssel: ermöglicht eindeutige Identifikation eines Datensatzes, darf also in einer Tabelle niemals doppelt vorkommen ID (Primärschlüssel) 2 3 4 Hersteller VW VW Opel Audi Modell Käfer Golf 2 Manta A4 Preis 9.00,-.200,- 2.300,- 2.400,- Kritik am : entspricht nicht der Normalform! Feld Hersteller ist nicht funktional abhängig vom Primärschlüssel Folge: Ineffiziente Speicherung, Redundanz Lösung: Aufteilen in zwei separate Tabellen

E/R Diagramm Verknüpfung von Tabellen mittels Fremdschlüssel Hersteller-ID (Primärschlüssel) Name VW 2 Opel 3 Audi Hersteller-ID (Fremdschl.) 2 3 Automobil-ID 2 Name Käfer Golf 2 Manta A4 Preis 9.00,-.200,- 2.300,- 2.400,- { Primärschlüssel

Darstellung mittels Entity/Relationship Diagramm Hersteller Hersteller-ID Name : n Automobil Automobil-ID Hersteller-ID (FK) Modellname Preis

- einfach in Betrieb zu nehmende -Datenbank frei verfügbare Demo -Version kommt im Orionserver zum Einsatz Nachteil: Daten werden in der Demo-Version nicht dauerhaft gespeichert und sind nach Beenden des Programms verloren! Freie (bzw. günstige) Alternativen: My, postgre, Microsoft Access

Installation: Download der Datei hsql_42.zip von http://javaboutique.internet.com/ Enpacken der Datei bspw. in C:\H Aufruf von C:\H\hypersonicsql\index.html Klick auf In-Memory Database Manager

Anlegen von Tabellen Vor der ersten Verwendung muss die Struktur (Felder, Datentypen) und die Beziehungen der Tabellen definiert werden Syntax: CREATE TABLE Tabellenname ( Feldname Feldtyp2 [Not Null], Feldname Feldtyp [Not Null],... ); CONSTRAINT Schlüsselname PRIMARY KEY (Feldname,...) CONSTRAINT Schlüsselname2 FOREIGN KEY (Feldname d. aktuellen Tab.) REFERENCES Fremdtabelle (Feldname d. Fremdtab.) Einfache Feldtypen: INTEGER DOUBLE VARCHAR (n) DATE... Ganze Zahlen... Dezimalzahlen... Zeichenkette der Länge n... Datum

: Tabelle Hersteller Hersteller-ID (Primärschlüssel) 2 3 Name VW Opel Audi CREATE TABLE Hersteller ( HerstellerID INTEGER NOT NULL, Name VARCHAR(00) NOT NULL, ); CONSTRAINT HerstellerPK PRIMARY KEY (HerstellerID)

: Tabelle Automobil Hersteller-ID (Fremdschl.) 2 3 Automobil-ID 2 Name Käfer Golf 2 Manta A4 CREATE TABLE Automobil ( HerstellerID INTEGER NOT NULL, AutomobilID INTEGER NOT NULL, Name VARCHAR(00) NOT NULL, Preis DOUBLE, Preis 9.00,-.200,- 2.300,- 2.400,- ); CONSTRAINT AutomobilPK PRIMARY KEY (HerstellerID, AutomobilID), CONSTRAINT HerstellerFK FOREIGN KEY (HerstellerID) REFERENCES Hersteller (HerstellerID)

Einfügen von Datensätzen Beim Einfügen werden die Datentypen sowie evt. vorhandene Constraints von der Datenbank überprüft Syntax: INSERT INTO Tabellenname VALUES (Feld, Feld2,...); e: INSERT INTO Hersteller VALUES (,'VW'); INSERT INTO Hersteller VALUES (2,'Opel'); INSERT INTO Hersteller VALUES (3,'Audi'); INSERT INTO Automobil VALUES (,,'Käfer', 900); INSERT INTO Automobil VALUES (,2,'Golf 2', 200); INSERT INTO Automobil VALUES (2,,'Manta', 2300); INSERT INTO Automobil VALUES (3,,'A4', 2400); INSERT INTO Hersteller VALUES (2,'Mercedes'); INSERT INTO Automobil VALUES (5,,'Civic', 3400);

Einfache Abfragen Dienen der Selektion eines Ausschnitts aus der Datenbank nach bestimmten Kriterien Syntax: SELECT Feldname, Feldname2,... FROM Tabellenname WHERE Bedingung... AND OR Bedingung2...; e: SELECT Name, Preis FROM Automobil; SELECT * FROM Automobil; SELECT Name, Preis FROM Automobil WHERE HerstellerID = AND Preis > 0000;

Ändern von Datensätzen Manipuliert den Inhalt von beliebig vielen Felder in einem definierten Ausschnitt einer Tabelle Syntax: UPDATE Tabellenname SET Feldname = Wert, Feldname2 = Wert,... WHERE Bedingung...; e: UPDATE Automobil SET Preis = Preis * 2; UPDATE Automobil SET Name = 'Golf' WHERE HerstellerID = AND AutomobilID = ;

Löschen von Datensätzen Löscht beliebige Zeilen aus der Tabelle Syntax: DELETE FROM Tabellenname WHERE Bedingung,...; e: DELETE FROM Automobil WHERE HerstellerID = ; DELETE FROM Automobil;

Abfragen mit Verknüpfung (Join) Bildet das Kreuzprodukt von 2 oder mehreren Tabellen ( kombiniert jede Zeile aus Tab. mit jeder Zeile aus Tab. 2 ) Das Kreuzprodukt wird mittels WHERE auf übereinstimmende Schlüsselpaare eingeschränkt Syntax: SELECT Feldname, Feldname2,... FROM Tabellenname, Tabellenname2,... WHERE Verknüpfungsbedingung,...; e: SELECT * FROM Hersteller, Automobil; SELECT * FROM Hersteller, Automobil WHERE Hersteller.HerstellerID = Automobil.HerstellerID;

Abfragen mit Sortierung (order by) Das Abfrageergebnis kann beliebig aufsteigend (ASC[ending]) oder absteigend (DESC[ending]) sortiert werden Syntax: SELECT... ORDER BY Feldname ASC DESC, Feldname2 ASC DESC,...; e: SELECT * FROM Automobil ORDER BY Preis ASC;

Abfragen mit Gruppierung (group by) Anwendung mathematischer Funktionen auf Felder Syntax: SELECT SUM(Feldname) AVG(Feldname) MAX(Feldname) MIN(Feldname) COUNT(Feldname) FROM Tabellenname; Ohne group by-anweisung: Anwendung auf die ganze Tabelle Mit der group by-anweisung: Gruppierung nach einem Feld SELECT Gruppierungsspalte, Math. Funktion FROM Tabellenname GROUP BY Gruppierungsspalte; : Gesucht ist das teuerstes Modell jedes Herstellers SELECT HerstellerID,MAX(Preis) FROM Automobil GROUP BY HerstellerID;

Weitere -Befehle DROP TABLE Tabellenname; ALTER TABLE Tabellenname ADD COLUMN Feldname Feldtyp;

Datenbank zur Personalverwaltung Zu jedem Mitarbeiter sollen Name, Anschrift, PLZ und Gehalt in geeigneten Datentypen gespeichert werden Die Mitarbeiter sind in Abteilungen organisiert, die jeweils durch einen Namen und eine Kostenstellennummer beschrieben werden Jeder Mitarbeiter ist genau einer Abteilung zugeteilt Mitarbeiter MitarbeiterID Name Anschrift PLZ Gehalt AbteilungsID (FK) Abteilungen AbteilungID Bezeichnung Kostenstelle

Anlegen der Tabellen CREATE TABLE Abteilungen ( AbteilungID INTEGER NOT NULL, Name VARCHAR(50) NOT NULL, Kostenstelle INTEGER, ); CONSTRAINT AbteilungenPK PRIMARY KEY (AbteilungID) CREATE TABLE Mitarbeiter ( MitarbeiterID INTEGER NOT NULL, Name VARCHAR(50), Anschrift VARCHAR(50), PLZ INTEGER NOT NULL, Gehalt DOUBLE NOT NULL, AbteilungID INTEGER NOT NULL, ); CONSTRAINT MitarbeiterPK PRIMARY KEY (MitarbeiterID), CONSTRAINT AbteilungFK FOREIGN KEY (AbteilungID) REFERENCES Abteilungen (AbteilungID)

Anlegen einiger Testdatensätze: 4 Abteilungen (Geschäftsführung, Rechnungswesen, Verkauf, Service) Mehrere Mitarbeiter pro Abteilung

Anlegen einiger Testdatensätze: INSERT INTO Abteilungen VALUES (,'Geschäftsführung',000); INSERT INTO Abteilungen VALUES (2,'Rechnungswesen',2200); INSERT INTO Abteilungen VALUES (3,'Verkauf',3400); INSERT INTO Abteilungen VALUES (4,'Service',4000); INSERT INTO Mitarbeiter VALUES (,'Müller','Heuberggasse 42-50',70,20000.0,); INSERT INTO Mitarbeiter VALUES (2,'Meyer','Margarethengürtel 5',050,400.50,2); INSERT INTO Mitarbeiter VALUES (3,'Huber','Bergsteiggasse ',70,200.50,2); INSERT INTO Mitarbeiter VALUES (4,'Berger','Litfaßstrasse 2',030,300,3); INSERT INTO Mitarbeiter VALUES (5,'Naerr','Mengergasse 2',20,000.3,3); INSERT INTO Mitarbeiter VALUES (6,'Stocker','Hernalser Hauptstr. 2',70,500.0,4); INSERT INTO Mitarbeiter VALUES (7,'Niedermesser','Geblergasse 0',70,200.30,4); INSERT INTO Mitarbeiter VALUES (8,'Rat','Arndtstrasse 48',20,400,4);

Einige Abfragen Anzahl der Mitarbeiter SELECT COUNT(*) FROM Mitarbeiter; Liste aller Mitarbeiter-Namen inkl. der jeweiligen Abteilungsbezeichnung SELECT Mitarbeiter.Name,Abteilungen.Name FROM Mitarbeiter,Abteilungen WHERE Mitarbeiter.AbteilungID = Abteilungen.AbteilungID; Liste aller Abteilungs-Bezeichnugnen mit den jeweiligen Gesamt- Gehaltskosten SELECT Abteilungen.Name, SUM(Gehalt) FROM Abteilungen,Mitarbeiter WHERE Mitarbeiter.AbteilungID = Abteilungen.AbteilungID GROUP BY Abteilungen.AbteilungID; Löschen der Abteilung 4 DELETE FROM Mitarbeiter WHERE AbteilungID = 4; DELETE FROM Abteilungen WHERE AbteilungID = 4;