PHP Kurs zum PHP programmieren lernen

www.PHP-Kurs.com

PHP lernen für Einsteiger und Fortgeschrittene

 

MySQL-SELECT-Anweisung - Varianten und Möglichkeiten

Aufbau der SELECT-Anweisung

Alle Angaben in [] sind optional.

SELECT
    [rechenoperation|funktionsauswahl]
  spaltenname
  FROM tabelle
    [WHERE bedinungen]
    [GROUP BY spalten]
    [HAVING aggregatfunktionen]
    [ORDER BY spalte [ASC] [DESC]
    [LIMIT [Anfang][Zeilenanzahl]]

Auswahl aller Spalten der Tabelle testadressen

SELECT
  * 
FROM testadressen;

nur Ausgaben bestimmter Spalten

SELECT
  anrede, vorname, nachname 
FROM testadressen;

Spaltenüberschriften festlegen

Spaltenüberschriften könnnen umdefiniert werden. Dies geschieht über diesen Aufbau:

SELECT 
  `nachname` , 
  `vorname` , 
  geburtsdatum AS 'Geburtstag' 
FROM testadressen

Reihenfolge bestimmen

Sortieren nach Spalten

SELECT 
  `nachname` , `vorname` 
FROM testadressen
ORDER BY nachname

Sortieren nach 2 Spalten

SELECT
  `nachname` , `vorname` 
FROM testadressen
ORDER BY nachname, vorname

Sortierrichtung ändern (eine Spalte aufsteigend, zweite Spalte absteigend)

SELECT
  `nachname` , `vorname` 
FROM testadressen
ORDER BY nachname DESC , vorname

Bedingungen setzen – WHERE ...

SELECT 
  `nachname` , `vorname` 
FROM testadressen
WHERE vorname = 'Fischer'

Bedingungen verknüpfen (ODER)

SELECT 
  `nachname` , `vorname`, `anrede`, `familienstand`
FROM testadressen
WHERE anrede = 'Herr' OR familienstand= 'single'

Bedingungen verknüpfen (UND)

SELECT 
  `nachname` , `vorname`, `anrede`, `familienstand`
FROM testadressen
WHERE anrede = 'Frau' AND familienstand = 'single'

Bedingungen nach Vergleichsoperatoren

Operator Funktion
= gleich
<> oder != ungleich
< kleiner als
> größer als
<= kleiner gleich
>= größer gleich
Alle Personen mit Geburtstag vor 01.01.1940

SELECT 
  `nachname` , `vorname` , `anrede`, `familienstand`, `geburtsdatum`
FROM testadressen
WHERE geburtsdatum < '1940-01-01'

Alle Personen, deren Nachnamen vor C kommt

SELECT 
  `nachname` , `vorname` , `anrede` 
FROM testadressen
WHERE nachname < 'C'

WHERE-Bedingung mit Klammern – alle Personen mit der Lieblingsfarbe Schwarz ODER Geburtstag zwischen 01.01.1970 und 31.12.1970

SELECT 
  `nachname`, `vorname`, `anrede`, `geburtsdatum`, `lieblingsfarbe` 
FROM testadressen
WHERE `lieblingsfarbe` = 'schwarz'
OR (
    `geburtsdatum` >= '1970-01-01'
AND `geburtsdatum` <= '1970-12-31'
)

Aggregatsfunktionen

Können nur auf eine einzige Spalte angewendet werden.

MIN (Spalte) Minimum (Nummer, Zeichen, Datum)
MAX (Spalte) Maximum (Nummer, Zeichen, Datum)
COUNT(*) Anzahl (Nummer, Zeichen, Datum)
SUM (Spalte) Summe (Numerisch)
AVG (Spalte) Mittelwert (Numerisch) - (engl. average)

Durchschnitt vom Gehalt

SELECT 
  AVG( gehalt ) 
FROM testadressen

Anzahl von Datensätzen

SELECT 
  COUNT(*) 
FROM `testadressen`

Anzahl von Datensätzen der Singles

SELECT 
  COUNT(*) 
FROM `testadressen` 
WHERE `familienstand`='single'

Verdienst aller Singles und Anzahl der Singles

SELECT 
  COUNT(*), SUM(`gehalt`) 
FROM `testadressen` 
WHERE `familienstand` = 'single'

Datumsfunktionen

Alle Personen, die im Jahr 1969 geboren sind

SELECT 
  `nachname`, `vorname`, `anrede`, `geburtsdatum` 
FROM testadressen
WHERE YEAR( geburtsdatum ) = 1969

Alle Sonntags-Kinder

SELECT 
  `nachname` , `vorname` , `anrede` , `geburtsdatum` 
FROM testadressen
WHERE WEEKDAY( geburtsdatum ) = 6

Alle Oktober-Kinder

SELECT
  `nachname` , `vorname` , `anrede` , `geburtsdatum` 
FROM testadressen
WHERE MONTH( geburtsdatum ) = 10

Alle Personen, die zwischen 1969 und 1972 geboren wurden

SELECT 
  `nachname` , `vorname` , `anrede` , `geburtsdatum` 
FROM testadressen
WHERE YEAR( geburtsdatum ) >= 1969
  AND YEAR( geburtsdatum ) <= 1972

Gelebte Tage seit Geburtstag bis zum 30.7.2007

SELECT 
  `nachname` , `vorname` , 
  TO_DAYS( '2007-07-30' ) - TO_DAYS( geburtsdatum ) 
FROM testadressen

Gelebte Tage seit Geburtstag bis zum heutigen Tag mit geänderten Spaltenüberschrift.
(heutiger Tag = engl. current date (CurDate))

SELECT 
  `nachname` , 
  `vorname` , 
  TO_DAYS(CurDate()) - TO_DAYS( geburtsdatum ) AS 'gelebte Tage bis heute' 
FROM testadressen

Datumsfunktionen

Funktion Ergebnis
WEEKDAY(datum) 0–6 (Montag bis Sonntag)
DAYofWEEK (datum) 1-7 (Sonntag bis Samstag)
DAYNAME (datum) Sunday–Saturday
WEEK (datum) Kalenderwoche (Wochenbeginn Sonntag)
WEEK (datum, 1) Kalenderwoche (Wochenbeginn Montag)
WEEK (datum, 2) Kalenderwoche (Wochenbeginn Dienstag)
DAYOFMONTH (datum) Tageswert des Monats
MONTH (datum) Monatswert des Datums
DAYOFYEAR (datum) Tag des Datums ab dem 1.1.
QUARTER (datum) Quartal des Datums (1 bis 4)
YEAR (datum) Jahrewert des Datums

Dies und das

Inhaltlich gleiche Werte ausschließen (jeden Wert nur einmal)

SELECT 
  DISTINCT `lieblingsfarbe` 
FROM testadressen
MySQL-Anweisungen lernen - phpMyAdmin nutzenSeitenanfangDatenbank-Verbindung herstellen
PHP-Kurs.com - jetzt PHP lernen    Bookmark bei del.icio.us setzen    Bookmark bei Mister Wong setzen