SQL. Allgemeines CREATE TABLE DROP TABLE ALTER TABLE INSERT INTO UPADTE DELETE SELECT

Ähnliche Dokumente
Anomalien und Normalformen

Anwendungsentwicklung Datenbanken SQL. Stefan Goebel

Wiederholung VU Datenmodellierung

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)

Abfragen (Queries, Subqueries)

Datenbanksysteme 2013

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

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

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

Datenbanken SQL Einführung Datenbank in MySQL einrichten mit PhpMyAdmin

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

Übersicht der wichtigsten MySQL-Befehle

SQL-Befehlsliste. Vereinbarung über die Schreibweise

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

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

Relationales Datenbanksystem Oracle

Web-Technologien. Prof. Dr. rer. nat. Nane Kratzke SQL. Praktische Informatik und betriebliche Informationssysteme

Kapitel 8: Datenintegrität

4. Datenbanksprache SQL

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

SQL (Structured Query Language) Schemata Datentypen

CREATE TABLE-Syntax

SQL-Befehlsliste. Vereinbarung über die Schreibweise

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

SQL. Ziele. Grundlagen von SQL. Beziehung zur relationalen Algebra SELECT, FROM, WHERE. Joins ORDER BY. Aggregatfunktionen. dbis.

Datenintegrität. Integitätsbedingungen Schlüssel Beziehungskardinalitäten Attributdomänen Inklusion bei Generalisierung

TU München, Fakultät für Informatik Lehrstuhl III: Datenbanksysteme Prof. Alfons Kemper, Ph.D.

SQL structured query language

Referentielle Integrität

Datenbanken. Zusammenfassung. Datenbanksysteme

Referentielle Integrität

DB1. DB SQL-DQL 1 Mario Neugebauer

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

Für die praktische Arbeit mit den Daten muss das relationale Datenmodell als relationale Datenbank implementiert werden.

ACCESS SQL ACCESS SQL

Microsoft Access 2010 SQL nutzen

SQL-Anweisungen. SELECT (SQL Data Query Language)

DATENBANKEN SQL UND SQLITE VON MELANIE SCHLIEBENER

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

DBSP. Vorlesung. Prof. Dr. rer. nat. Nane Kratzke. Unit. Praktische Informatik und betriebliche Informationssysteme

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

VO Datenmodellierung. Katrin Seyr

Kapitel DB:VI (Fortsetzung)

Bibliografische Informationen digitalisiert durch

Die Anweisung create table

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

Beispiel zur referentiellen Integrität

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

Oracle 10g Einführung

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

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

Inhaltsverzeichnis. Vorwort Kapitel 1 Einleitung... 15

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

TU München, Fakultät für Informatik Lehrstuhl III: Datenbanksysteme Prof. Alfons Kemper, Ph.D.

SQL-Sprachvielfalt. Peter Willadt (Ludwig-Erhard-Schule) SQL-Befehle / 47

Übung PL/SQL Trigger Lösungen

Funktion definieren Gibt Summe der Gehälter zurück. Aufruf in einem SQL-Statement

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

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

5.8 Bibliotheken für PostgreSQL

Views in SQL. 2 Anlegen und Verwenden von Views 2

Inhaltsverzeichnis. Vorwort 13. Kapitel 1 Einleitung 15

Bedingungen über Werte Statische Integrität. CHECK-Klausel

Datenintegrität. Bisherige Integritätsbedingungen

Datenmanagement I SoSe 2006 Aufgabenblatt 4

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

U 8 SQL. = Structured Query Language (heute auch Standard Query Language) ALLGEMEIN:

SQL als Zugriffssprache

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

Datenbanken SQL. Insert, Update, Delete, Drop. Krebs

ANFRAGEOPTIMIERUNG IN POSTGRESQL

Informatik für Ökonomen II: Datenintegrität. Prof. Dr. Carl-Christian Kanne

TU München, Fakultät für Informatik Lehrstuhl III: Datenbanksysteme Prof. Alfons Kemper, Ph.D.

Wirtschaftsinformatik 7a: Datenbanken. Hochschule für Wirtschaft und Recht SS 16 Dozent: R. Witte

Finalklausur zur Vorlesung Datenbanksysteme I Wintersemester 2003/2004 Prüfer: Prof. R. Bayer, Ph.D. Datum: Zeit: 16.

SQL. Fortgeschrittene Konzepte Auszug

Einführung in SQL Datenbanken bearbeiten

IV. Datenbankmanagement

SQL Teil 2. SELECT Projektion Selektion Vereinigung, Schnitt, Differenz Verbund Komplexer SELECT-Ausdruck

Fakultät für Informatik & Wirtschaftsinformatik DB & IS II - SS Metadaten

Datenbanksysteme I Integrität und Trigger Felix Naumann

Datenintegrität. Einschränkung der möglichen Datenbankzustände und -übergänge auf die in der Realität möglichen

DB1-Datenbanksysteme. DB SQL-DDL 1 Mario Neugebauer

Übung Datenbanken in der Praxis. Datenmodifikation mit SQL

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

Marcus Throll, Oliver Bartosch. Einstieg in SQL. Verstehen, einsetzen, nachschlagen. Galileo Press

Datenbank und Tabelle mit SQL erstellen

SQL und MySQL. Kristian Köhntopp

Datenintegrität. Arten von Integritätsbedingungen. Statische Integritätsbedingungen. Referentielle Integrität. Integritätsbedingungen in SQL.

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

Garten - Daten Bank. - survival pack -

Web Technologien Klassische Datenbanken am Beispiel von MySQL

Datenbanktechnologie mit praktischen Übungen in MySQL und PHP

Datenbanken: Datenintegrität.

Konstante Relationen

Transkript:

Allgemeines DROP TABLE ALTER TABLE INSERT INTO UPADTE DELETE SELECT Gute Tabellen sollen nun in eine DB auf den Rechner. Verwenden dazu DBMS ite. Verwenden Datenbanksprache (structured query language). Grobe Aufteilung in vier Bereiche: DDL, DML, TCL, DCL. Allgemeines Müssen Tabellen erzeugen, lesen, verändern, löschen (CRUD). Müssen Datenätze erzeugen, lesen, verändern, löschen (CRUD). Neue Abfragesprache : (structured query language). Aufgeteilt in: 1. Data Definition Language DDL Befehle, um Tabellen und verwandte Elemente zu erzeugen, zu ändern oder zu löschen: CREATE, ALTER, DROP Machen wir. 2. Data Manipulation Language DML Befehle, um Datensätze auszuwählen, zu erzeugen, zu ändern und zu löschen: SELECT, INSERT, UPDATE, DELETE Machen wir. 3. Transaction Control Language TCL Befehle, um DB-Manipulationen endgültig in die Datenbank zu übernehmen: COMMIT, ROLLBACK Machen wir nicht. 4. Data Control Language DCL Befehle zur Berechtigungsvergabe von Lese- und Schreibrechten: GRANT, REVOKE Machen wir nicht. DB, WS 17/18 October 28, 2017 1

Allgemeines ite unterstützt nur ein Subset von : ABORT ACTION ADD AFTER ALL ALTER ANALYZE AND AS ASC ATTACH AUTOINCREMENT BEFORE BEGIN BETWEEN BY CASCADE CASE CAST CHECK COLLATE COLUMN COMMIT CONFLICT CONSTRAINT CREATE CROSS CURRENT_DATE CURRENT_TIME CURRENT_TIMESTAMP DATABASE DEFAULT DEFERRABLE DEFERRED DELETE DESC DETACH DISTINCT DROP EACH ELSE END ESCAPE EXCEPT EXCLUSIVE EXISTS EXPLAIN FAIL FOR FOREIGN FROM FULL GLOB GROUP HAVING IF IGNORE IMMEDIATE IN INDEX INDEXED INITIALLY INNER INSERT INSTEAD INTERSECT INTO IS ISNULL JOIN KEY LEFT LIKE LIMIT MATCH NATURAL NO NOT NOTNULL NULL OF OFFSET ON OR ORDER OUTER PLAN PRAGMA PRIMARY QUERY RAISE REFERENCES REG- EXP REINDEX RELEASE RENAME REPLACE RESTRICT RIGHT ROLLBACK ROW SAVEPOINT SELECT SET TABLE TEMP TEMPORARY THEN TO TRANSACTION TRIGGER UNION UNIQUE UPDATE USING VACUUM VALUES VIEW VIRTUAL WHEN WHERE Reicht uns aber. Mehr in My oder Postgre. Schreibweisen: -Befehle: alles in Großbuchstaben, Variablen: mit Kleinbuchstaben (siehe http://www.sqlite.org/lang_keywords.html) Erste Aufgabe: Erzeuge Tabellen. table_name ( column_name column_type table_name eindeutig innerhalb der Datenbank. column_name eindeutig innerhalb der Tabelle. *_name prinzipiell zusammensetzbar aus allen Zeichen auf der Tastatur. Groß- und Kleinschreibung wird nicht unterschieden! Leerzeichen einklammern in [] oder "". atable, Verkaeufer1, meine_wichtige_tabelle, [my $ table], "my $!? table" Aber! Einfache Namen verwenden. Werden häufig in Abfragen verwendet. Erzeugt nur Datenschema. Keine Einträge. (Später INSERT INTO.) DB, WS 17/18 October 28, 2017 2

Spaltendatentyp column_type in ite: INTEGER: ganze Zahl, 1, -42 REAL: relle Zahl, 47.11, 0.815 TEXT: Zeichenfolge, Hallo, Liebe Leute! BLOB: binäre Daten (binary large object). Andere -Datentypen wie CHAR(n), VARCHAR(n),... werden darüber ersetzt. bsp = { bsp_id: integer, titel: text, wert: real } bsp ( bsp_id INTEGER, titel TEXT, wert REAL INSERT INTO bsp VALUES (1, Ein Titel, 0.0 Modifikationen: Erzwingen von nichtleeren Einträgen. table_name ( column_name column_type NOT NULL bsp ( bsp_id INTEGER NOT NULL, titel TEXT, wert REAL NOT NULL Einträge in die DB ohne Angabe von bsp_id und wert werden von dem DBMS abgelehnt. titel kann frei bleiben. DB, WS 17/18 October 28, 2017 3

Modifikation: Vorgabe des Primärschlüssels. Oder table_name ( column_name column_type PRIMARY KEY table_name ( column_name column_type NOT NULL, PRIMARY KEY (column_name) PRIMARY KEY implizit NOT NULL. Legt Primärschlüssel fest. Garantiert Eindeutigkeit des Datensatzes. Weiterer Datensatz mit gleichem Primärschlüssel wird vom DBMS abgelehnt. MatrNr Name Fach VorlNr Titel SWS MatrNr VorlNr student ( MatrNr INTEGER PRIMARY KEY, Name TEXT NOT NULL, Fach TEXT CERATE TABLE vorlesung ( VorlNr INTEGER PRIMARY KEY, Titel TEXT NOT NULL, SWS INTEGER NOT NULL CERATE TABLE hoeren ( MatrNr INTEGER NOT NULL, VorlNr INTEGER NOT NULL, PRIMARY KEY (MatrNr, VorlNr), FOREIGN KEY (MatrNr) REFERENCES student(matrnr), FOREIGN KEY (VolrNr) REFERENCES vorlesung(vorlnr) DB, WS 17/18 October 28, 2017 4

Modifikation: Vorgabe von Standardwerten. table_name ( column_name column_type DEFAULT value Belegt Eintrag mit Wert value, wenn kein Wert angegeben wurde. bsp ( bsp_id INTEGER PRIMARY KEY, titel TEXT DEFAULT Unbekannt, wert REAL NOT NULL INSERT INTO bsp (bsp_id, wert) VALUES (2, 2.0 Modifikation: Test der Eingabe. (Integritätsbedingungen) table_name ( column_name column_type CHECK check_expr Prüft bei Eingaben Wert gegen bool schen Ausdruck bool_expr. bsp ( id INTEGER PRIMARY KEY, titel TEXT CHECK (titel <> Ein Titel ), wert REAL NOT NULL INSERT INTO bsp VALUES (2, Mein Titel, 2.0 INSERT INTO bsp VALUES (3, Ein Titel, 3.0 DBMS verweigert den zweiten Eintrag. DB, WS 17/18 October 28, 2017 5

DROP TABLE Zweite Aufgabe: Lösche Tabelle. DROP TABLE table_name; Löscht gesamte Tabelle table_name. Modifikationen: DROP TABLE table_name CASCADE; Löscht alle Verweise in anderen Tabellen. DROP TABLE table_name RESTRICT; Verhindert löschen, wenn noch Verweise in anderen Tabellen. ALTER TABLE Man kann eine Tabelle auch verändern. ALTER TABLE table_name alter_action; alter_action steuert Umbennen der Tabelle, Hinzufügen neuer Attribute/Spalten, (Löschen von Attributen/Spalten), (Ändern von Eigenschaften von Attributen/Spalten), (Hinzufügen von Integritätsbedingungen), (Löschen von Integritätsbedingungen). DB, WS 17/18 October 28, 2017 6

ALTER TABLE Umbenennen der Tabelle ALTER TABLE table_name RENAME TO new_table_name; Gibt Tabelle neuen Namen. ALTER TABLE bsp RENAME TO foo; ALTER TABLE Hinzufügen neuer Attribute/Spalten ALTER TABLE table_name ADD column_name column_type; Ergänzt neue Spalte. Füllt bisherige Datensätze mit leeren Werten auf. ALTER TABLE bsp ADD subtitle TEXT; DB, WS 17/18 October 28, 2017 7

ALTER TABLE Löschen von Attributen/Spalten ALTER TABLE table_name DROP column_name; Löscht Spalte in Tabelle. Möglicherweise mit Nebenwirkung auf andere Tabellen. ALTER TABLE bsp DROP subtitle; Nicht in ite. ALTER TABLE Änderungen problematisch, da Relationen zwischen Tabellen, Umgang mit inkompatiblen Änderungen, Auswirkungen auf externe Anwendungen,... Guter Datenbankentwurf umso wichtiger. DB, WS 17/18 October 28, 2017 8

INSERT INTO Einfügen von Datensätzen in eine Tabelle. In zwei Formen 1. Einfügen von konstanten Werten, 2. Einfügen von Abfrageergebnissen auf anderen Tabellen. (Über SELECT) Datenbankschema für Beispiele bsp ( id INTEGER PRIMARY KEY, titel TEXT DEFAULT Unbekannt, wert REAL INSERT INTO INSERT INTO table_name ( column_name ) VALUES (new_value Einfügen über Angabe von Spalte und Wert. INSERT INTO bsp (id, titel, wert) VALUES (1, mein titel, 1.0 Fügt den Datensatz (1, mein titel, 1.0) ein. INSERT INTO bsp (id, wert) VALUES (2, 2.0 Fügt den Datensatz (2, Unbekannt, 2.0) ein. Default Wert für titel. INSERT INTO bsp (id) VALUES (3 Fügt den Datensatz (3, Unbekannt, NULL) ein. DB, WS 17/18 October 28, 2017 9

INSERT INTO INSERT INTO bsp (id, titel, wert) VALUES (1, noch ein titel, 42.0 Geht schief, da id eindeutig sein muss. Wert id=1 schon vergeben. Lässt man die Spalten weg, dann muss man alle Werte in der CREATE Reihenfolge angeben. INSERT INTO bsp VALUES (4, noch ein titel, 42.0 Einfügen von Abfrageergebnissen, wenn wir den SELECT Befehl durchgesprochen haben. UPADTE Verändern von Datensätzen in einer Tabelle. UPDATE table_name SET column_name = new_value [WHERE where_expr]; In allen Tupeln der Tabelle table_name, die die where_expr erfüllen (falls angegeben), werden die Attributwerte der Spalte column_name auf den neuen new_value Wert gesetzt. Dabei kann new_value aus einem SELECT Befehl kommen. (Später) DB, WS 17/18 October 28, 2017 10

UPADTE UPDATE bsp SET title = Mein Titel!!! ; Setzt in allen Datensätzen den Eintrag titel auf den Wert Mein Titel!!!. Eher nicht erwünscht. UPDATE bsp SET wert = wert + 0.815; Erhöht in allen Datensätzen den Eintrag wert um 0.815. Wenn nicht NULL. UPDATE bsp SET title = foo WHERE id == 1; Setzt für den einen ausgewählten Datensatz den Titel neu. UPDATE bsp SET title = Blabla WHERE id > 1; Setzt für die ausgewählten Datensätze den Titel neu. Also aufpassen, da mehrer Datensätze mit einem UPDATE verändert werden können! DELETE Löschen von Datensätzen in einer Tabelle. DELETE FROM table_name [WHERE where_expr]; Löscht alle Datensätze aus der Tabelle table_name, welche die where_expr erfüllen (falls angegeben). DELETE FROM bsp; Löscht alle Datensätze aus der Tabelle bsp. Eher nicht erwünscht. DELETE FROM bsp WHERE id == 1; Löscht den Datensatz mit id = 1 aus der Tabelle bsp. DB, WS 17/18 October 28, 2017 11

SELECT SELECT * FROM table_name; Wählt alle Datensätze der table_name aus. Komplizierte Abfragen kommen, wenn wir Relationenalgebra verstanden haben. DB, WS 17/18 October 28, 2017 12