Datenbank und Tabelle mit SQL erstellen

Ähnliche Dokumente
Übersicht der wichtigsten MySQL-Befehle

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

Datenbanken SQL Einführung Datenbank in MySQL einrichten mit PhpMyAdmin

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

Es geht also im die SQL Data Manipulation Language.

Labor 3 - Datenbank mit MySQL

Oracle 10g Einführung

Datumsangaben, enthält mindestens Jahr, Monat, Tag

Folien php/mysql Kurs der Informatikdienste

Management of Information Systems. Tutorat: Session 3 Einführung in SQL

Es geht also um die sogenannte SQL- Data Definition Language.

Relationale Datenbanken in der Praxis

Abfragen aus mehreren Tabellen (mit join)

MySQL, phpmyadmin & SQL. Kurzübersicht

Anwendungsentwicklung Datenbanken SQL. Stefan Goebel

Erstellen und Verwalten von Tabellen

DATENBANKEN SQL UND SQLITE VON MELANIE SCHLIEBENER

SQL,Teil 1: CREATE, INSERT, UPDATE, DELETE, DROP

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

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

Abfragen (Queries, Subqueries)

Fachhochschule Kaiserslautern Labor Datenbanken mit MySQL SS2006 Versuch 1

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

PHP MySQL - myphpadmin Formulardaten in eine Datenbank speichern

SQL-Befehlsliste. Vereinbarung über die Schreibweise

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

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

SQL structured query language

1 Hartmann Anna Cäcilienstr Köln (0221) Behrens-Hoffmeister Heidi Lindenweg Köln (0221)

Im Folgenden möchten wir Ihnen einige Beispiele aufzeigen, wie ALTER TABLE gemäß SQL92 verwendet wird:

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

Multimedia im Netz Wintersemester 2013/14. Übung 03 (Nebenfach)

Übung Datenbanken in der Praxis. Datenmodifikation mit SQL

Datenbanktechnologie mit praktischen Übungen in MySQL und PHP

Eine neue Datenbank erstellen

Introduction to Data and Knowledge Engineering. 6. Übung SQL

Informatik Datenbanken SQL-Einführung

Begleitskript. zum PHP/MySQL. Kurs

Datenbanken für Online Untersuchungen

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

SQL und MySQL. Kristian Köhntopp

Grundkonzepte von SQL

Relationales Datenbanksystem Oracle

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

Datenbanksysteme Teil 6 MySQL DML Die SELECT-Anweisung. Stefan Maihack Dipl. Ing. (FH) Datum:

ids-system GmbH Tipp #3 Leer-Strings in SQL oder die Frage nach CHAR oder VARCHAR

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

SQL-Befehlsliste. Vereinbarung über die Schreibweise

SQL,Teil 2: SELECT. W. Spiegel. Übersicht SELECT. Mehrfache Werte vermeiden: SELECT DISTINCT. Ausgabe ordnen: ORDER BY. Projektion.

Microsoft Access 2010 SQL nutzen

MySQL: Einfaches Rechnen.

Die SQL-Schnittstelle

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

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

Datenbanken Entity-Relationship-Modell und Datenbankentwurf 1. Andreas Heß Hochschule Furtwangen

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

Die Anweisung create table

MySQL. MySQL ist ein Datenbanksystem. Es besteht aus einem zentralen Server und aus (mehreren) Clients. Es benutzt einen Dialekt der Sprache SQL.

Inhaltsverzeichnis. Einleitung

Eine Einführung in MySQL

Übung 1: Ein Website News-System mit MySQL

IV. Datenbankmanagement

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

Garten - Daten Bank. - survival pack -

MySQL: Einfache Aggrega3unk6onen. (= Funk6onen, die etwas zusammenfassen)

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

Bibliografische Informationen digitalisiert durch

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

Lösungen der Übungsaufgaben von Kapitel 10

Sructred Query Language

Die SQL-Schnittstelle

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

Wie greifen Sie mit WinCC Runtime Advanced über ein Skript auf eine SQL- Datenbank zu?

In diesem Abschnitt wollen wir uns mit einem besonderen Thema widmen. Dem Thema SQL-JOIN.

PostgreSQL unter Debian Linux

Tabellen verknüpfen: Joins

MySQL: SELECT-Abfragen über mehrere Tabellen (JOINs)

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

5.8 Bibliotheken für PostgreSQL

Microsoft Access Abfragen: Informationen anzeigen und sortieren

Übung PL/SQL Trigger Lösungen

Access Grundkurs. M. Eng. Robert Maaßen

Erzeugung und Veränderung von Tabellen

Wirtschaftsinformatik (PWIN) 6. Mentorium. Wirtschaftsinformatik (PWIN), SS 2010, Professur für Mobile Business & Multilateral Security 1

SET SQL_MODE="NO_AUTO_VALUE_ON_ZERO";

SQL als Zugriffssprache

Folien php/mysql Kurs der Informatikdienste

ACCESS SQL ACCESS SQL

SQL-Anweisungen. SELECT (SQL Data Query Language)

dbis Praktikum DBS I SQL Teil 2

Oracle: Abstrakte Datentypen:

Inhaltsverzeichnis. Vorwort Kapitel 1 Einleitung... 15

Thomas Ohlhauser: MySQL in Einzelschritten

Inhaltsverzeichnis. jetzt lerne ich

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

Visualisierung in Informatik und Naturwissenschaften

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

Datenbanken. Ein DBS besteht aus zwei Teilen:

2 Download und Installation des Programms 3 3 ERSTELLUNG EINES ERM-DIAGRAMMS 4. (c) Werner Geers 5 NUTZUNG DER SKRIPTE IN DATENBANKPROGRAMMEN 13

Transkript:

Datenbank und Tabelle mit SQL erstellen 1) Übung stat Mit dem folgenden Befehlen legt man die Datenbank stat an und in dieser die Tabelle data1 : CREATE DATABASE stat; USE stat; CREATE TABLE data1 ( `id` int(11) NOT NULL auto_increment, `geschlecht` varchar(2), `alterx` int(11), `groesse` int(11), `gewicht` int(11), PRIMARY KEY (`id`) ); Hier in der letzten Zeile, vor der schließenden Klammer, benötigen wir kein Komma mehr! CREATE DATABASE stat; Datenbank anlegen Damit wird eine leere Datenbank angelegt. Um diese zu nutzen verwende die Anweisung (=Statement) USE USE stat Durch USE wird dem System mitgeteilt, auf welche Datenbank sich die darauf folgenden Operationen beziehen. Analog könnte man im PHPMyAdmin die entsprechende Datenbank auswählen. CREATE TABLE data1 In der neuen Datenbank data1 werden nun Tabellen angelegt. Diese werden von einer Klammer eingeschlossen. Darin werden die Attribute, also die Spalten, angeführt. Es werden durch Kommas getrennt alle Spalten der gewünschten Tabelle aufgelistet. Bei der Namensgebung soll man eindeutige Namen vergeben. PRIMARY KEY legt den so genannten Primärschlüssel fest. Dieser wäre in unserer Tabelle das Feld id. Der Primärschlüssel ist ein eindeutiges Feld, welches keine doppelten Werte aufweisen darf. Dadurch wird ein Datensatz eindeutig gekennzeichnet. Z.B. wäre die Kundennummer in einer Kundentabelle ein Primärschlüssen. Der Nachname aber nicht, denn dieser kann doppelt vorkommen. auto_increment legt fest, dass im Feld id beim Einfügen eines neuen Datensatzes automatisch der maximale Wert des Feldes id um eins erhöht wird. Fügt man den ersten Datensatz ein, dann steht im Feld id automatisch eine 1. Im zweiten Datensatz steht dann automatisch eine 2. Beim Löschen eines Datensatzes bleibt der Wert des Feldes id der restlichen Datensätze unverändert. BEACHTE: Statt alter wurde alterx gewählt, da der Begriff alter eine Bedeutung in SQL hat und sonst zu Schwierigkeiten führen kann!!! Eberhart 91_sql_detail.docx 1

Kopiere den Code in das SQL-Fenster: Klicke rechts unten auf OK. Ergebnis: Die Datenbank wurde angelegt und ist mit einem Klick auf den Reiter Datenbanken erkennbar. Eberhart 91_sql_detail.docx 2

Klicke auf stat und dann auf Struktur, um zu sehen, ob alles korrekt angelegt wurde: Ergebnis: Eberhart 91_sql_detail.docx 3

Daten per SQL-Befehl INSERT eingeben: INSERT INTO name_der_tabelle () In den runden Klammern notiere alle Feldnamen der Datenbanktabelle, und zwar in der gewünschten Reihenfolge (man kann sogar eine beliebige Reihenfolge wählen). Trenne die Feldnamen lediglich durch ein Komma. Danach folgt nach einem Leerzeichen oder in einer neuen Zeile das Schlüsselwort VALUES (). Hier werden die einzufügenden Werte in der gleichen Reihenfolge angeführt. Setze Buchstaben und Wörter in Anführungsstriche. Wenn man die id oben auch angeführt hat, dann setze hier dafür zwei leere einfache Anführungszeichen '', da ja der Wert automatisch eingesetzt wird (auto_inkrement). INSERT INTO data1 (id, geschlecht, alterx, groesse, gewicht) VALUES ('','w',28,178,75), ('','m',25,181,85),('','m',22,180,79) INSERT INTO `data1`(`id`, `geschlecht`, `alterx`, `groesse`, `gewicht`) VALUES ('','w',28,178,75),('','m',25,181,85),('','m',22,180,79) Variante 2: Einfach geht es, wenn man die Tabelle data1 anklickt und wieder auf den Reiter SQL klickt und dann auf den Button INSERT. Hier muss man nur die VALUES löschen und ersetzten, der Teil bis zu VALUES kann bleiben: Eberhart 91_sql_detail.docx 4

Ergebnis: Ausgeben der Daten mit SELECT im SQL-Reiter: Alle Datensätze ausgeben mit SELECT: Die Wildcard * wählt alle Datensätze der Tabelle aus: inkl. dem obligatorischen Leerzeichen zwischen den einzelnen Schlüsselwörtern: SELECT * FROM data1 Nur einzelne Felder ausgeben: Gib statt der Wildcard nur den Namen des Feldes an, bzw. trennst du mit einem Komma die Felder, wenn mehr ausgegeben werden sollen: SELECT id, geschlecht, alterx FROM data1 Ergebnis: Eberhart 91_sql_detail.docx 5

Nach bestimmten Auswahlkriterien filtern mit WHERE: Man möchte nur bestimmte ausgeben? Gib zuerst den Feldnamen an und dann in Gänsefüßchen den Wert, nach dem gefiltert werden soll: SELECT * FROM data1 WHERE geschlecht = 'm' Ergebnis: Sortieren mit ORDER BY Setze nach dem Schlüsselwort ORDER BY lediglich den Feldnamen ein. Soll innerhalb dieses Feldnamens eine weitere Sortierung stattfinden, setze den zweiten Feldnamen nach einem Komma dahinter. Die Hauptsortierreihenfolge richtet sich nach dem ersten Feldnamen, alphabetisch oder nach Zahlen geordnet. Innerhalb gleicher Namen erfolgt dann die zweite Sortierung. SELECT * FROM data1 ORDER BY alterx bzw. SELECT * FROM data1 ORDER BY alterx, geschlecht UPDATE Damit kann man den bestehenden Inhalt aktualisieren. Dafür schreibe nach dem Schlüsselwort UPDATE den Tabellennamen und dann das Schlüsselwort SET. Dadurch werden die alten Werte automatisch überschrieben. Damit man weiß welche Felder aktualisiert werden sollen, kommt wieder die WHERE-Klausel ins Spiel: Beispiel: Ändern des Datensatzes mit der id = 3: UPDATE data1 SET geschlecht = "w", alterx = 24 WHERE id = 3; Lösung: Alt: Neu: Eberhart 91_sql_detail.docx 6

Datensätze löschen mit DELETE (bzw. DROP) Zum Löschen des Datensatzes mit der id=2 aus der Tabelle verwende: DELETE FROM data1 WHERE id = 2; Zum Löschen einer ganzen Tabelle verwende den Befehl DROP statt DELETE. Zusammenfassung der wichtigsten SQL Kommandos: Eberhart 91_sql_detail.docx 7

2) Übung Flughafen Erstelle eine neue Tabelle mit dem Namen passagier. Es sollen folgende Spalten vorhanden sein: CREATE TABLE passagier ( passagier_id INT NOT NULL auto_increment, passnummer CHAR(9) NOT NULL, vorname VARCHAR(100) NOT NULL, nachname VARCHAR(100) NOT NULL, PRIMARY KEY (passagier_id), UNIQUE pass_unq (passnummer) ) ENGINE=InnoDB DEFAULT CHARSET=latin1; Dazu verwende das Statement CREATE TABLE passagier. Nach dem Tabellennamen folgt die sich öffnende Klammer, die den Block der Attribute der Spalten ankündigt. Nun werden durch Kommas getrennt alle Spalten der gewünschten Tabelle aufgelistet. Jeder dieser Spalten hat einen innerhalb der Tabelle eindeutigen Bezeichner, dem ein passender Datentyp folgt. Das erste Attribut ist die passagier_id, die als künstlicher Primärschlüssel dient. Dieses Attribut ist vom Typ INT (Ganzzahl von -2,1 Mrd. bis +2,1 Mrd.), der niemals undefiniert (NOT NULL) sein darf und automatisch vom System hochgezählt wird (auto_increment). Die Spalte passnummer nimmt die Passnummern in sich auf. Dieses Attribut hat den Datentyp CHAR (englisch character, Zeichen). CHAR wird verwendet, um Zeichen in einem String fester Länge zu speichern. Diese Länge gibt man als Zahl in Klammern an, z.b. (9). Damit sagt man aus, dass der String neun Stellen hat. Gibt man weniger Zeichen ein, so werden die überschüssigen Stellen am Ende des Strings durch Leerzeichen ersetzt, die bei der Abfrage abgeschnitten werden. Längere Strings werden je nach Einstellung entweder abgeschnitten oder führen zu einem Fehler. UNIQUE pass_unq (passnummer): dadurch wird sichergestellt, dass alle Werte nur ein einziges Mal enthalten sein dürfen. Das ist bei der Passnummer weltweit auch wirklich so. VARCHAR: Dieser Datentyp ist variabel, womit die Länge gemeint ist. Hier wurde die maximale Länge mit (100) angegeben. Es wäre eine Länge bis 65.535 möglich. Im Gegensatz zum CHAR-Datentyp werden bei VARCHAR-Feldern keine am Ende des Strings stehenden Leerzeichen entfernt, da diese auch nicht aufgefüllt werden. NOT NULL bedeutet, dass kein Wert dieser Spalte jemals den Wert NULL, also undefiniert bzw. nicht vorhanden annehmen darf. Die Angabe von NULL bzw. DEFAULT NULL erlaubt im Gegensatz dazu fehlende Werte explizit. Dadurch kann MySQL auch das Fehlen eines Wertes ausdrücken. Eberhart 91_sql_detail.docx 8

Ergebnis Struktur: Anzeigen der Tabellen: SHOW TABLES; Als Resultat erhält man eine Liste aller Tabellen, hier die passagier-tabelle. DESCRIBE passagier; Ergebnis: Löschen einer Tabelle: DROP TABLE passagier; Damit wird die Tabelle samt allen enthaltenen Daten sofort gelöscht! Achtung: dies passiert ohne Rückfragen und ohne Wiederherstellungsmöglichkeit!!! Eberhart 91_sql_detail.docx 9

Datensätze anlegen, abfragen und löschen Datensätze werden mit dem Statement INSERT INTO angelegt. Diesem Befehlt folgen die Angaben der Tabelle, in die Daten eingefügt werden sollen, sowie eine Aufzählung all jener Spalten dieser Tabelle. Dazu gibt man in Klammern die Spaltennamen an, für die man Daten einfügen möchte. Wichtig: Die Spalte passagier_id muss nicht angegeben werden, da sie automatisch hochgezählt wird (auto_increment) und MySQL somit automatisch einen Wert einträgt. Alle Spalten, die mit dem Schlüsselwort NOT NULL definiert wurden, dürfen nicht leer bleiben. Nach dem Tabellennamen passagier folgt die Aufzählung der Spaltennamen, durch Kommas getrennt. Danach folgt die Liste der VALUES, also der einzutragenden Werte. Die Reihenfolge der Werte muss der Reihenfolge der Spaltennamen entsprechen. MySQL ordnet diese intern in jener Reihenfolge an, in der die Attribute beim Erzeugen der Tabelle angegeben wurden. Oder klicke einfach auf den Button INSERT und ändere die Daten innerhalb der Klammern bei VALUES bzw. schreibe mit Anführungszeichen und Beistrich diese neu, z.b. und lösche beim INSERT die passagier_id raus, da diese ja automatisch erhöht wird. korrekte Änderung: Eberhart 91_sql_detail.docx 10

Falsch wäre dies: passagier_id vorne drinn, hinten bei VALUES fehlt es Ansonsten kommt es zu einer Fehlermeldung: Der Vorgang wurde abgebrochen. Weitere Fehlerquellen: Die Anzahl der Werte stimmt nicht mit der Anzahl der angegebenen Spalten überein Die Datentypen sind nicht kompatibel Aufgabe: Erstelle drei weitere Einträge Eberhart 91_sql_detail.docx 11

Abfragen mit SELECT Die eingegebenen Daten kann man mit SELECT abfragen. Dazu gibt man mit der FROM-Klausel jene Tabelle an, für die man sich interessiert. Zusätzlich muss man direkt nach dem SELECT-Statement jene Spalten anführen, die man angezeigt haben möchte (Projektion). In der einfachsten Form genügt es den Wildcard-Operator (*) zu verwenden, um alle Spalten in die Ergebnismenge aufzunehmen. SELECT * FROM passagier Ergebnis: Quelle: Eberhart 91_sql_detail.docx 12