Heim  >  Artikel  >  Datenbank  >  【MySQL 09】Häufig verwendete Funktionen

【MySQL 09】Häufig verwendete Funktionen

黄舟
黄舟Original
2017-02-04 13:25:321028Durchsuche

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)

  • MINUTE(time) gibt die Minute des Zeitwerts (0~59) zurück

  • MONTH(date) Gibt den Monatswert des Datums (1~12) zurück

  • MONTHNAME(date) Gibt den Datumsnamen des Monats zurück, z. B.: SELECT

  • MONTHNAME(CURRENT_DATE);

  • NOW() gibt das aktuelle Datum und die aktuelle Uhrzeit zurück

  • QUARTER(date) gibt das Quartal (1~4) des Jahres für date zurück, z. B. SELECT QUARTER(CURRENT_DATE);

  • WEEK(date) gibt das Datum zurück, das die Woche des Jahres ist (0~53)

  • 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
  • Beispiel:
  • SELECT ENCRYPT('root',' salt'); 🎜>SELECT ENCODE('xufeng','key');
  • SELECT DECODE('xufeng','key'),'key');

    #Verschlüsselung und Entschlüsselung zusammen
    SELECT AES_ENCRYPT( 'root','key');
    SELECT AES_DECRYPT('root','key'),'key');
    SELECT SHA('123456 ');



    6. Kontrollflussfunktion

    MySQL verfügt über 4 Funktionen für bedingte Operationen. Mit diesen Funktionen können Entwickler einige Anwendungsgeschäftslogiken umwandeln das Datenbank-Backend.

MySQL-Kontrollflussfunktion:

  • CASE WHEN[test1] THEN [result1]…ELSE [default] END

    Wenn testN ist Wenn wahr, ErgebnisN zurückgeben, andernfalls Standard zurückgeben

  • CASE [test] WHEN[val1] THEN [result]…ELSE [default]END

  • Wenn test und valN gleich sind, gib resultN zurück, andernfalls gib den Standardwert zurück

  • IF(test,t,f) Wenn test wahr ist, gib t zurück, andernfalls gib f zurück >

    IFNULL(arg1,arg2) Wenn arg1 nicht leer ist, geben Sie arg1 zurück, andernfalls geben Sie arg2 zurück
  • NULLIF(arg1,arg2) Wenn arg1=arg2, geben Sie NULL zurück ; andernfalls Return arg1
  • Die erste dieser Funktionen ist IFNULL(), die zwei Parameter hat und den ersten Parameter auswertet. Wenn der erste Parameter nicht NULL ist, gibt die Funktion den ersten Parameter an den Aufrufer zurück; wenn er NULL ist, wird der zweite Parameter zurückgegeben.
  • Zum Beispiel: SELECT IFNULL(1,2), IFNULL(NULL,10),IFNULL(4*NULL,'false'); Die Funktion NULLIF() prüft die beiden vorausgesetzt, ob die Parameter gleich sind. Wenn sie gleich sind, wird NULL zurückgegeben. Wenn sie nicht gleich sind, wird der erste Parameter zurückgegeben.
  • Zum Beispiel: SELECT NULLIF(1,1),NULLIF('A','B'),NULLIF(2+3,4+1);
  • Wie die IF()-Funktion, die von vielen Skriptsprachen bereitgestellt wird, kann auch die IF()-Funktion einen einfachen bedingten Test erstellen. Der erste ist der zu beurteilende Ausdruck Wenn der Ausdruck wahr ist, gibt IF() den zweiten Parameter zurück. Wenn er falsch ist, gibt IF() den dritten Parameter zurück.
  • Zum Beispiel: SELECTIF(1eccf31e50338154ca5b472639ff61fde100,'true','false');
  • 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).


Stellungnahme:
Der Inhalt dieses Artikels wird freiwillig von Internetnutzern beigesteuert und das Urheberrecht liegt beim ursprünglichen Autor. Diese Website übernimmt keine entsprechende rechtliche Verantwortung. Wenn Sie Inhalte finden, bei denen der Verdacht eines Plagiats oder einer Rechtsverletzung besteht, wenden Sie sich bitte an admin@php.cn