Docstoc

SQL – Structured Query Language - PowerPoint

Document Sample
SQL – Structured Query Language - PowerPoint Powered By Docstoc
					SQL – Structured Query Language

   Von IBM entwickelt
   DQL (Data Query Language)
   DDL (Data Definition Language)
   DML (Data Manipulation Language)
   DCL (Data Control Language)
   Standards: SQL-89, SQL-92 (SQL-2) und
    SQL-99 (SQL-3)
SQL – Structured Query Language
   Ist nicht prozedural – die gewünschten
    Daten werden durch Prädikate (logische
    Bedingungen) charakterisiert.
   Arbeitet mit Tabellen.
   Verarbeitet grundsätzlich Mengen von
    Tupeln. Eine Abfrage liefert als Ergebnis
    eine Tabelle mit keiner, einer oder beliebig
    vielen Zeilen.
SQL – Structured Query Language

   Die Grundkonstruktion einer SQL-Abfrage
    ist das Mapping, eine Selektion gefolgt von
    einer Projektion

    SELECT <attribute list>
    FROM <relation>
    WHERE <condition>
SQL – Structured Query Language

   Beispiel: Welche Präsidenten wurden vor
    dem 1.1.1750 geboren?

Mysql> SELECT last_name, first_name, birth
    -> FROM president
    -> WHERE birth < “1750-1-1”;
SQL – Structured Query Language
   Duplikate müssen in SQL explizit durch die Klausel
    DISTINCT entfernt bzw. unterdrückt werden.

   Beispiel: In welchen Bundesstaaten wurden die
    späteren amerikanischen Präsidenten geboren?

Mysql> SELECT DISTINCT state
    -> FROM president;
SQL – Structured Query Language
   In SQL können Aggregatoperatoren wie AVG,
    MIN, MAX, SUM, COUNT verwendet werden.
   Beispiel: Wieviele Präsidenten wurden älter als 80
    Jahre?

Mysql> SELECT COUNT(*)
    -> FROM president
    -> WHERE ((TO_DAYS(death) –
    -> TO_DAYS(birth))/365) > 80;
SQL – Structured Query Language
   Durch die GROUP BY Klausel können in SQL Tupel
    einer Ergebnismenge vor der Anwendung eines
    Aggregatoperators partitioniert werden.

   Beispiel: Wie viele Präsidenten wurden in den
    einzelnen Bundesstaaten geboren?

Mysql> SELECT state, COUNT(*)
    -> FROM president
    -> GROUP BY state;
    SQL – Structured Query Language
   Durch die HAVING BY Klausel können bestimmte Gruppen
    einer Partitionierung, die durch eine GROUP BY Klausel
    definiert wurde, ausgewählt werden.

   Beispiel: Aus welchen Bundesstaaten kommen mindestens
    zwei Präsidenten?

Mysql>   SELECT state, COUNT(*) AS count
    ->   FROM president
    ->   GROUP BY state
    ->   HAVING count > 1 ORDER BY count DESC;
SQL – Structured Query Language
   Werden in einer Abfrage zwei Kopien einer Relation verwendet, so
    werden in der FROM Klausel neue Relationennamen, alias identifier,
    vergeben.

   Beispiel: Welche Präsidenten haben am selben Tag Geburtstag?

Mysql> SELECT p1.last_name, p1.first_name, p1.birth
    -> FROM president AS p1, president AS p2
    -> WHERE MONTH(p1.birth) = MONTH(p2.birth)
    -> AND DAYOFMONTH(p1.birth) = DAYOFMONTH(p2.birth)
    -> AND (p1.last_name != p2.last_name OR p1.first_name != p2.first_name)
    -> ORDER BY p1.last_name;
SQL als DDL und DML
   Konzept auf der externen Ebene
       create view
       drop view
   Konzept auf der konzeptuellen Ebene
       create table
       alter table
       drop table
SQL als DDL und DML
   In SQL-92 auch (konzeptuelle Ebene)
       create domain
       alter domain
       drop domain
   Konzept auf der internen Ebene
       create index
       alter index
       drop index
MySQL Datentypen
   Numerische Integer-Datentypen
       TINYINT   ...   Speicherbedarf 1 Byte
       SMALLINT ...    Speicherbedarf 2 Byte
       MEDIUMINT ...   Speicherbedarf 3 Byte
       INT       ...   Speicherbedarf 4 Byte
       INTEGER   ...   Synonym für INT
       BIGINT    ...   Speicherbedarf 8 Byte
MySQL Datentypen
   Numerische Gleitzahl-Datentypen
       FLOAT [(M,D)]     ...   Speicherbedarf 4 Byte
       DOUBLE [(M,D)]    ...   Speicherbedarf 8 Byte
       DECIMAL [(M,D)]   ...   Speicherbedarf M+2 Byte
       NUMERIC [(M,D)]   ...   Synonym für DECIMAL

    M ... Anzahl der dargestellten Stellen
    D ... Anzahl der Stellen nach dem Komma
MySQL Datentypen
   String-Typen
       CHAR(M)      ... Speicherbedarf M Byte
       VARCHAR(M)   ... 0 <= M <= 255 Byte
       TINYTEXT
       TEXT
       MEDIUMTEXT
       LONGTEXT
MySQL Datentypen
   Datums- und Zeit-Typen
       DATE        "YYYY-MM-DD"
       TIME        "hh:mm:ss"
       DATETIME    "YYYY-MM-DD hh:mm:ss"
       TIMESTAMP   YYYYMMDDhhmmss
       YEAR        YYYY
MySQL Datentypen
   Datentypen für Binärdaten
       TINYBLOB
       BLOB
       MEDIUMBLOB
       LONGBLOB
   Im Gegensatz zu den TEXT-Typen werden
    Vergleiche bei den BLOB-Typen Case
    Sensitive durchgeführt

				
DOCUMENT INFO
Shared By:
Categories:
Tags:
Stats:
views:18
posted:12/29/2011
language:
pages:16