Home
SQL / MySQL
Datenbanken?
  ---------------
Select
Insert
Update
Delete
  ---------------
Where
Order By
Group By
  ---------------
Create Table
Alter Table
Rename Table
Drop Table
Optimize Table
Repair Table
Backup Table
Restore Table
Show Tables
Describe Table
  ---------------
Use DB
Create DB
Drop DB
Show DBs
  ---------------
Funktionen
Indizes
Fulltext
Feldtypen
Gästebuch
Download
Kontakt
 
57971 Seitenaufrufe

Funktionen in MySQL



In MySQL gibt es sehr viele nützliche Funktionen. Diese alle hier zu Listen würde die Seite sprengen. Deshalb habe ich hier zunächst die - aus meiner Sicht - wichtigsten. Nach und nach werde ich immer welche hinzufügen.


Hinweis zur Syntax:
Beim Benutzen von Funktionen ist es wichtig, daß zwischen dem Funktionsnamen und der öffnenden Klammer mit den Parametern kein Leerzeichen steht. Also nicht 'LOCATE ()' sondern 'LOCATE()' !!!


LOCATE()
Mit der Funktion LOCATE() läßt sich das die Position des ersten Auftretens eines Strings in einem anderen String (oder Feld) bestimmen.

SELECT LOCATE(nachname, 'Becker') AS position FROM adressen
oder:
SELECT LOCATE('au', 'Klaus')

Im letzten Beispiel würde '3' als Position zurückgegeben.

Man kann LOCATE() auch mit drei Parametern aufrufen. Der letzte Parameter wird dann von MySQL als Offset angesehen.

SELECT LOCATE('au', 'Klaus ist zu Hause', 7)

Hier würde nicht '3' sondern '15' als Position zurückgegeben da erst ab dem 7ten Zeichen mit der Suche begonnen wurde.


REPLACE()
Mit der Funktion REPLACE() lassen sich Zeichen bzw. Zeichenketten in einer anderen Zeichenkette ersetzen. (oder Feld) bestimmen.

SELECT REPLACE('Becker', 'e', 'ae')
Hier würde 'Baecker' zurückgegeben.


UCASE()
Mit der Funktion UCASE() lassen sich Zeichen bzw. Zeichenketten in Großbuchstaben umwandeln. Siehe auch LCASE().

SELECT UCASE('Becker')
Hier würde 'BECKER' zurückgegeben.

SELECT UCASE(nachname) AS grossernachname FROM adressen


LCASE()
Mit der Funktion LCASE() lassen sich Zeichen bzw. Zeichenketten in Kleinbuchstaben umwandeln. Siehe auch UCASE().

SELECT LCASE('Becker')
Hier würde 'becker' zurückgegeben.


FLOOR()
Die Funktion FLOOR() gibt den Integer-Wert für den angegebenen Parameter zurück, der nicht kleiner als der parameter selbst ist. Siehe dazu auch ROUND().

SELECT FLOOR(23.1734)
Hier würde '23' zurückgegeben.

SELECT FLOOR(-23.1734)
Hier würde '-24' zurückgegeben.


ROUND()
Die Funktion ROUND() rundet den angegebenen Parameter. Siehe dazu auch FLOOR().

SELECT ROUND(23.1734)
Hier würde '23' zurückgegeben.

SELECT ROUND(-23.1734)
Hier würde '-23' zurückgegeben.

SELECT ROUND(23.6734)
Hier würde '24' zurückgegeben.

SELECT ROUND(betrag) AS gerundeterbetrag FROM preise


CEILING()
Die Funktion CEILING() gibt den kleinsten Integer-Wert für den angegebenen Parameter zurück der nicht kleiner als der Parameter selbst ist. Siehe dazu auch FLOOR().

SELECT CEILING(23.1734)
Hier würde '24' zurückgegeben.

SELECT CEILING(-23.1734)
Hier würde '-23' zurückgegeben.

SELECT CEILING(betrag) AS neuerbetrag FROM preise


ABS()
Die Funktion ABS() gibt den absoluten Wert für den angegebenen Parameter zurück ("entfernt die Vorzeichen").

SELECT ABS(-23)
Hier würde '23' zurückgegeben.

SELECT ABS(23)
Hier würde auch '23' zurückgegeben.


SUM()
Mit der Funktion SUM() lassen sich Werte in einer Spalte aufsummieren.

SELECT SUM(alter) AS gesamtalter FROM adressen


AVG()
Mit der Funktion AVG() läßt sich der Durchschnittswert einer Spalte ermitteln.

SELECT AVG(alter) AS durchschnittsalter FROM adressen


MAX()
MAX() ermittelt den höchsten Wert in einer Spalte. MAX() ist ein Synonym für GREATEST().

SELECT MAX(alter), vorname, nachname FROM adressen


MIN()
MIN() ermittelt den niedrigsten Wert in einer Spalte.

SELECT nachname, MIN(alter) FROM adressen


VERSION()
VERSION() gibt die Version des MySQL-Datenbank-Servers zurück

SELECT VERSION()
Hier könnte z.B. '3.23.43-nt' zurückgegeben werden.


MATCH()
Die Funktion MATCH() kann zur Abfrage von Volltext-Indizes verwendet werden.

SELECT feld1,
MATCH(feld6) AGAINST ('suchbegriff') AS relevanz
FROM tabelle

Gibt man in der WHERE-Bedingung einer SQL-Anweisung dieselbe MATCH-Funktion erneut an, so werden die Ergebniszeilen nach Relevanz sortiert. Die Abfrage wird durch die doppelte Ausführung aber nicht langsamer. Näheres siehe unter ALTER TABLE und FULLTEXT.

SELECT feld1,
feld2,
MATCH(feld4, feld6) AGAINST ('suchbegriff1, suchbegriff2') AS relevanz
FROM tabelle
MATCH(feld4, feld6) AGAINST ('suchbegriff1, suchbegriff2')


SUBSTRING()
Mit der Funktion lassen sich Teile eines Feldes ermitteln. Die Funktion kann - ebenso wie alle anderen auch - in einer WHERE-Bedingung verwendet werden.

Allgemeine Form:
SELECT SUBSTRING(Feldname, Startposition, Länge) FROM tabelle

Ist der optionale Parameter 'Länge' nicht angegeben, so wird die gesamte Zeichenkette ab der Position 'Startposition' zurückgegeben.

Beispiele:
SELECT SUBSTRING(vorname,1,1) as ersterBuchstabe FROM adressen

Die obige Abfrage würde jeweils den ersten Zeichen des Vornamens zurückgeben.

SELECT SUBSTRING(vorname,1,3) as beginn FROM adressen

Die obige Abfrage würde jeweils die ersten drei Zeichen des Vornamens zurückgeben.

SELECT SUBSTRING(vorname,3,1) FROM adressen

Die obige Abfrage würde jeweils das dritte Zeichen des Vornamens zurückgeben.

SELECT SUBSTRING(vorname,4) FROM adressen

Die obige Abfrage würde jeweils alles ab dem vierten Zeichen des Vornamens zurückgeben.


CONCAT()
Mit CONCAT() lassen sich Inhalte von Feldern zusammenfassen.

SELECT CONCAT(vorname, " ", nachname) AS ganzerName FROM adressen

Das obige Beispiel könnte beispielsweise "Paula Tratschig" zurückgeben. Durch die Anführungszeichen lassen sich auch zuätzliche, nicht in der Tabelle vorhandene Zeichen mit ausgeben.


TRIM()
Mit TRIM() lassen sich Leerzeichen innerhalb von Feldern beseitigen.

SELECT TRIM(vorname) FROM adressen

Das obige Beispiel würde beispielsweise "Paula" zurückgeben wenn in der Tabelle der Wert 'Paula ' steht. Die Leerzeichen werden links und rechts entfernt. Nicht aber innerhalb des Wertes. So würde ' Anne Christin ' zu 'Anne Christin' werden.


RTRIM()
Wie TRIM(), nur werden dabei lediglich die Leerzeichen auf der rechten Seite des Parameters entfernt. Siehe auch LTRIM().

SELECT RTRIM(vorname) FROM adressen


LTRIM()
Wie TRIM(), nur werden dabei lediglich die Leerzeichen auf der linken Seite des Parameters entfernt. Siehe auch RTRIM().

SELECT LTRIM(vorname) FROM adressen


COUNT()
COUNT() ermittelt die Anzahl der Datensätze in der Tabelle

SELECT COUNT(*) AS gesamt FROM adressen


LENGTH()
LENGTH() ermittelt die Länge des Wertes in einem Feld.

SELECT nachname, LENGTH(nachname) AS laenge FROM adressen

Das obige Beispiel liefert die Werte für 'nachname' und für die Länge des jeweiligen Namens zurück.


NOW()
Die Funktion NOW() gibt das aktuelle Datum und/oder die aktuelle Zeit zurück. Mögliche Formate sind 'YYYY-MM-TT HH:MM:SS' oder 'YYYYMMTTHHMMSS'. Ist ein Feld kürzer als der Wert den NOW() zurückgibt so wird der Teil beim INSERT eingefügt, den das Feld auch aufnehmen kann.

INSERT INTO statistiktabelle
 (ipadresse, hostname, datumzeit)
VALUES
 (now(), '221.118.112.22', 'www.hostname.de')

Die Funktion wird nicht in einfache Anführungszeichen gesetzt. Auch wenn es eine Zeichenkette zurückgibt.


PASSWORD()
Mittels PASSWORD() lassen sich Zeichenketten irreversibel verschlüsseln.

INSERT INTO benutzer
 (id, benutzername, passwort)
VALUES
 (3, 'tollerbenutzername', PASSWORD('geheimesPasswort'))

PASSWORD() wird auch von MySQL selbst für die Speicherung von Passwörtern in der Benutzerdatenbank benutzt.

 
Letzte Änderung: 17. Mai 2002, 22:26 Uhr


© 2002, Klaus Becker, becker-k@web.de