Heim >Datenbank >MySQL-Tutorial >【MySQL 09】Häufig verwendete Funktionen
1. Mathematische Funktionen
ABS(x) gibt den absoluten Wert von x zurück
BIN(x) gibt den Binärwert (OCT ) von x Gibt oktal zurück, HEX gibt hexadezimal zurück)
CEILING(x) gibt den kleinsten ganzzahligen Wert größer als x zurück
EXP(x) gibt den Wert e (die Basis des natürlichen Logarithmus) hoch mit x zurück.
FLOOR(x) Gibt den größten ganzzahligen Wert zurück, der kleiner als x ist größter Wert im Satz
LEAST(x1,x2,…,xn) gibt den kleinsten Wert im Satz zurück
LN(x) gibt den natürlichen Logarithmus von x zurück. LOG(x,y) gibt den Basis-y-Logarithmus von x zurück.
MOD(x,y) gibt x /Modul von y (Rest) zurück. PI() gibt zurück der Wert von pi (pi)
RAND() gibt einen Zufallswert zwischen 0 und 1 zurück, der durch Bereitstellung eines Parameters (Seed) verwendet werden kann. Der Zufallszahlengenerator RAND() generiert einen angegebenen Wert.
ROUND(x,y) gibt den gerundeten Wert des Parameters x mit y Dezimalstellen zurück
SIGN(x) gibt die repräsentative Zahl x zurück Das Vorzeichen der Ergebnisse mit Dezimalstellen
2. Aggregationsfunktion
AVG(col) gibt den Durchschnitt der angegebenen Spalte zurück
MIN(col) gibt den Minimalwert der angegebenen Spalte zurück
MAX(col) gibt den Maximalwert der angegebenen Spalte zurück
SUM( col) Gibt die Summe aller Werte in der angegebenen Spalte zurück
GROUP_CONCAT(col) Gibt das Ergebnis der Verkettung der zugehörigen Spaltenwerte zurück zu einer Gruppe
3. String-Funktion
ASCII(char) gibt den ASCII-Codewert des Zeichens zurück BIT_LENGTH(str) gibt das Bit zurück Länge der Zeichenfolge
CONCAT(s1,s2…,sn) verkettet s1,s2…,sn zu einer Zeichenfolge
CONCAT_WS(sep, s1,s2…,sn) verkettet s1,s2…, sn wird zu einer Zeichenfolge verkettet und durch Trennzeichen
INSERT(str,x,y,instr) getrennt, um das zu ersetzen Zeichenfolge str mit einer Teilzeichenfolge y Zeichen lang, beginnend an der x-ten Position. Für die Zeichenfolge instr das Ergebnis zurückgeben:
FIND_IN_SET(str,list) analysiert die durch Kommas getrennte Liste If str wurde gefunden, gibt die Position von str in der Liste zurück
LCASE(str) oder LOWER(str) gibt das Ergebnis der Änderung aller Zeichen in der Zeichenfolge str in Kleinbuchstaben zurück
LEFT(str,x) gibt die Zeichenfolge str zurück. Ganz links. Schneiden Sie die führenden Leerzeichen in str ab.
POSITION(substr,str) Geben Sie die Position von zurück erstes Vorkommen des Teilstrings substr im String str
QUOTE(str) Verwenden Sie einen Backslash, um das einfache Anführungszeichen in str zu maskieren
REPEAT(str, srchstr,rplcstr) Gibt das Ergebnis der x-mal wiederholten Zeichenfolge str zurück
REVERSE(str) Gibt das Ergebnis der Umkehrung der Zeichenfolge str
RIGHT zurück (str,x) Gibt die x Zeichen ganz rechts in der Zeichenfolge str zurück
RTRIM(str) gibt das Leerzeichen am Ende der Zeichenfolge str zurück
STRCMP(s1,s2) vergleicht die Zeichenfolgen s1 und s2
TRIM(str) entfernt alle Leerzeichen am Anfang und Ende der Zeichenfolge
UCASE(str) oder UPPER(str) kehrt zurück, um alle Zeichen in der Zeichenfolge str umzuwandeln. Das Ergebnis nach der Großschreibung ist
4. Datums- und Uhrzeitfunktionen
CURDATE() oder CURRENT_DATE() gibt das aktuelle Datum zurück
CURTIME() oder CURRENT_TIME() gibt die aktuelle Uhrzeit zurück
DATE_ADD(date,INTERVAL int keyword) gibt das Ergebnis von Datum plus Intervallzeit int zurück (int muss gemäß Schlüsselwörtern formatiert werden), wie zum Beispiel: SELECTDATE_ADD(CURRENT_DATE,INTERVAL 6 MONTH);
DATE_FORMAT(date,fmt) formatiert den Datumswert gemäß dem angegebenen fmt-Format
DATE_SUB(date,INTERVAL int keyword) gibt das Ergebnis von Datum plus Intervallzeit int (int) zurück entsprechend dem Schlüsselwort formatiert), wie zum Beispiel: SELECTDATE_SUB(CURRENT_DATE,INTERVAL 6 MONTH) ;
DAYOFWEEK(date) gibt den durch Datum dargestellten Wochentag (1~7) zurück
DAYOFMONTH(date) Gibt den Tag des Monats zurück (1~31)
DAYOFYEAR(date) Gibt den Tag des Jahres zurück (1 ~366)
DAYNAME(date) Gibt den Wochentagsnamen des Datums zurück, wie zum Beispiel: SELECT DAYNAME(CURRENT_DATE);
FROM_UNIXTIME(ts,fmt) Format entsprechend dem angegebenen FMT-Format UNIX-Zeitstempel ts
HOUR(time) gibt den Stundenwert der Zeit (0~23)
YEAR(date) Gibt das Jahr des Datums zurück (1000~9999) Einige Beispiele: Ermitteln Sie die aktuelle Systemzeit:
SELECT FROM_UNIXTIME(UNIX_TIMESTAMP());
SELEC TEXTRACT(YEAR_MONTH FROM CURRENT_DATE);
SELECT EXTRACT(DAY_SECOND FROM CURRENT_DATE);
SELECT EXTRACT(HOUR_MINUTE FROM CURRENT_DATE);
Gibt die Differenz (Anzahl der Monate) zwischen zwei Datumswerten zurück:
SELECT PERIOD_DIFF(200302,199802)
Alter in MySQL berechnen:
SELECT DATE_FORMAT(FROM_DAYS(TO_DAYS(NOW())-TO_DAYS(birthday)),'%Y')+0 AS age FROM Employee;
In diesem Wenn Brithday das Jahr, den Monat und den Tag in der Zukunft ist, ist das Berechnungsergebnis 0.
Die folgende SQL-Anweisung berechnet das absolute Alter eines Mitarbeiters, d. h. wenn der Geburtstag ein Datum in der Zukunft ist, wird ein negativer Wert erhalten.
SELECT DATE_FORMAT(NOW(), '%Y') - DATE_FORMAT(birthday, '%Y') -(DATE_FORMAT(NOW(), '00-%m-%d ')
5. Verschlüsselungsfunktion
AES_ENCRYPT(str,key): Gibt die Schlüsselzeichenfolge str unter Verwendung des Advanced Encryption Standard zurück. Das Ergebnis von Algorithmus-Verschlüsselung, das Ergebnis des Aufrufs von AES_ENCRYPT ist eine binäre Zeichenfolge, gespeichert im BLOB-Typ
AES_DECRYPT(str,key) gibt den Schlüssel zurück, um die erweiterte Verschlüsselung für die Zeichenfolge str zu verwenden. Das Ergebnis danach Standardalgorithmus-Entschlüsselung
DECODE(str,key): Verwenden Sie den Schlüssel als Schlüssel zum Entschlüsseln der verschlüsselten Zeichenfolge str
ENCRYPT(str , salt ): Verwenden Sie die Funktion UNIXcrypt(), um die Zeichenfolge str
ENCODE(str,key) mit dem Schlüsselwort salt zu verschlüsseln (eine Zeichenfolge, die das Kennwort eindeutig bestimmen kann, genau wie ein Schlüssel). ): Verwenden Sie den Schlüssel als Schlüssel zum Verschlüsseln der Zeichenfolge str. Das Ergebnis des Aufrufs von ENCODE() ist eine binäre Zeichenfolge, die im BLOB-Typ
MD5() gespeichert wird. Berechnen Sie MD5 der Zeichenfolge str Prüfsumme
PASSWORD(str) gibt die verschlüsselte Version der Zeichenfolge str zurück. Dieser Verschlüsselungsprozess ist irreversibel und verwendet einen anderen Algorithmus als der UNIX-Passwortverschlüsselungsprozess >
SHA() berechnet die Prüfsumme des Secure Hash Algorithm (SHA) der Zeichenfolge str#Verschlüsselung und Entschlüsselung zusammen
SELECT AES_ENCRYPT( 'root','key');
SELECT AES_DECRYPT('root','key'),'key');
SELECT SHA('123456 ');
6. Kontrollflussfunktion
Wenn testN ist Wenn wahr, ErgebnisN zurückgeben, andernfalls Standard zurückgeben
CASE [test] WHEN[val1] THEN [result]…ELSE [default]END
Die Funktion IF() eignet sich für den Einsatz, wenn es nur zwei mögliche Ergebnisse gibt. In der realen Welt stellen wir jedoch möglicherweise fest, dass in einem bedingten Test mehrere Zweige erforderlich sind. In diesem Fall stellt MySQL die CASE-Funktion bereit, die mit der bedingten Routine zum Wechseln der Groß- und Kleinschreibung in den Sprachen PHP und Perl identisch ist.
Das Format der CASE-Funktion ist etwas kompliziert, normalerweise wie folgt: CASE [auszuwertender Ausdruck] WHEN [Wert 1] THEN [Ergebnis 1] WHEN [Wert 2] THEN [Ergebnis 2] WHEN [ val 3] THEN [result 3] …… WHEN [val n] THEN [result n] ELSE [default result] END
Hier ist der erste Parameter der zu verwendende Wert beurteilt oder Ausdruck, gefolgt von einer Reihe von WHEN-THEN-Blöcken. Der erste Parameter jedes Blocks gibt den zu vergleichenden Wert an, und wenn wahr, wird das Ergebnis zurückgegeben. Alle WHEN-THEN-Blöcke enden mit einem ELSE-Block. Wenn END alle äußeren CASE-Blöcke beendet, wird das vom ELSE-Block angegebene Standardergebnis zurückgegeben, wenn keiner der vorhergehenden Blöcke übereinstimmt. Wenn kein ELSE-Block angegeben ist und alle WHEN-THEN-Vergleiche falsch sind, gibt MySQL NULL zurück.
Die CASE-Funktion hat eine andere Syntax, die manchmal sehr praktisch ist, wie folgt: CASE WHEN [Bedingungstest 1] THEN [Ergebnis 1] WHEN [Bedingungstest 2] THEN [ Ergebnis 2] ELSE [Standardergebnis] END Unter dieser Bedingung hängt das zurückgegebene Ergebnis davon ab, ob der entsprechende Bedingungstest wahr ist.
Beispiel:
mysql>SELECT CASE 'green' WHEN 'red' THEN 'stop' WHEN 'green ' THEN 'go' END;
SELECT CASE 9 WHEN 1 THEN 'a' WHEN 2 THEN 'b' ELSE 'N/A' END; =4 THEN 'OK' WHEN(2+2)a8093152e673feb7aba1828c435320944 THEN 'not OK' END ASSTATUS;
SELECT Name,IF((IsActive = 1),'has Aktiviert','Inaktiviert') AS RESULT FROMUserLoginInfo; SELECT fname,lname,(math+sci+lit) AS total, CASE WHEN (math+sci+lit) < ZWISCHEN 50 UND 150 DANN 'C' WHEN (math+sci+lit) ZWISCHEN 151 UND 250 DANN 'B' ELSE 'A' END AS grade FROM states; SELECT IF(ENCRYPT('sue','ts')=upass , 'allow','deny') AS LoginResultFROM Benutzer WHERE uname = 'sue';#Eine Anmeldebestätigung
7. Formatierungsfunktion
DATE_FORMAT(date,fmt) formatiert den Datumswert gemäß der Zeichenfolge fmt
FORMAT(x,y) formatiert x als durch Kommas getrennte Zahlenfolge, y ist die Dezimalzahl Stellen im Ergebnis
INET_ATON(ip) Gibt die numerische Darstellung der IP-Adresse zurück
INET_NTOA(num) Gibt die IP-Adresse zurück, die dargestellt wird durch die Zahl
TIME_FORMAT(time,fmt) Formatieren Sie den Zeitwert gemäß der Zeichenfolge fmt
Die einfachste ist die Funktion FORMAT(), mit der große Werte formatiert werden können Eine durch Kommas getrennte, für Menschen lesbare Sequenz.
Beispiel:
SELECT FORMAT(34234.34323432,3);
SELECT DATE_FORMAT(NOW(),'%W,%D %M %Y %r');
SELECT DATE_FORMAT(NOW(),'%Y-%m- %d');
SELECT DATE_FORMAT(19990330,'%Y-%m-%d');
SELECT DATE_FORMAT(NOW (),'%h:%i %p');
SELECT INET_ATON('10.122.89.47');
SELECT INET_NTOA (175790383);
8. Typkonvertierungsfunktion
Um Datentypen zu konvertieren, stellt MySQL die CAST()-Funktion zur Verfügung, die dies kann Konvertiert einen Wert in den angegebenen Datentyp.
Zu den Typen gehören: BINARY, CHAR, DATE, TIME, DATETIME, SIGNED, UNSIGNED
Beispiel:
SELECT CAST(NOW() AS SIGNED INTEGER),CURDATE()+0; SELECT ‘f’=BINARY ‘F’,’f’=CAST(‘F’ AS BINARY);
9. Systeminformationsfunktion
DATABASE() gibt den aktuellen Datenbanknamen zurück
BENCHMARK(count,expr) will Der Ausdruck expr wird Anzahl Mal ausgeführt
CONNECTION_ID() Gibt die Verbindungs-ID des aktuellen Kunden zurück
FOUND_ROWS() Gibt das letzte SELECT zurück Abfrage zum Abrufen der Gesamtzahl der Zeilen
USER() oder SYSTEM_USER() gibt den aktuellen Login-Benutzernamen zurück
VERSION() gibt den zurück Version des MySQL-Servers
Beispiel:
SELECT DATABASE(),VERSION(),USER();
SELECT BENCHMARK(9999999,LOG(RAND()*PI ()));
#In diesem Beispiel berechnet MySQL den LOG(RAND()*PI())-Ausdruck 9999999 Mal.
Das Obige ist der Inhalt der häufig verwendeten Funktionen von [MySQL 09]. Weitere verwandte Inhalte finden Sie auf der chinesischen PHP-Website (www.php.cn).