Maison  >  Article  >  base de données  >  【MySQL 09】Fonctions couramment utilisées

【MySQL 09】Fonctions couramment utilisées

黄舟
黄舟original
2017-02-04 13:25:321020parcourir

1. Fonctions mathématiques

  • ABS(x) renvoie la valeur absolue de x

  • BIN(x) renvoie le binaire (OCT ) de x Renvoie octal, HEX renvoie hexadécimal)

  • CEILING(x) renvoie la plus petite valeur entière supérieure à x

  • EXP(x) renvoie la valeur e (la base des logarithmes naturels) élevée à la puissance x

  • FLOOR(x) Renvoie la plus grande valeur entière inférieure à x x1,x2,…,xn) renvoie la la plus grande valeur de l'ensemble

  • LEAST(x1,x2,…,xn) renvoie la plus petite valeur de l'ensemble

  • LN(x) renvoie le logarithme népérien de x LOG(x,y) renvoie le logarithme de base y de x

  • MOD(x,y) renvoie x /Module de y (reste) PI() renvoie la valeur de pi (pi)

  • RAND() renvoie une valeur aléatoire comprise entre 0 et 1, qui peut être utilisée en fournissant un paramètre (seed) RAND() le générateur de nombres aléatoires génère un valeur spécifiée.

  • ROUND(x,y) renvoie la valeur arrondie du paramètre x avec y décimales

  • SIGN(x) renvoie le nombre représentatif x Le signe des Résultats avec décimales

  • 2. Fonction d'agrégation

  • AVG(col) renvoie la moyenne de la colonne spécifiée

  • MIN(col) renvoie la valeur minimale de la colonne spécifiée

MAX(col) renvoie la valeur maximale de la colonne spécifiée

  • SUM( col) Renvoie la somme de toutes les valeurs de la colonne spécifiée

  • GROUP_CONCAT(col) Renvoie le résultat de la concaténation des valeurs de colonne appartenant à un groupe

  • 3. La fonction String

  • ASCII(char) renvoie la valeur du code ASCII du caractère BIT_LENGTH(str) renvoie le bit longueur de la chaîne

  • CONCAT(s1,s2…,sn) concatène s1,s2…,sn en chaîne

CONCAT_WS(sep, s1,s2…,sn) concatène s1,s2…, sn est concaténé en une chaîne, et séparé par des caractères sep

  • INSERT(str,x,y,instr) pour remplacer le chaîne str avec une sous-chaîne de y caractères de long à partir de la x-ème position Pour la chaîne instr, renvoie le résultat

  • FIND_IN_SET(str,list) analyse la liste séparée par des virgules If. str est trouvé, renvoie la position de str dans la liste

  • LCASE(str) ou LOWER(str) renvoie le résultat de la modification de tous les caractères de la chaîne str en minuscules

  • LEFT(str,x) renvoie la chaîne str L'extrême gauche Coupe les espaces de début dans str

  • POSITION(substr,str) Renvoie la position du première occurrence de la sous-chaîne substr dans la chaîne str

  • QUOTE(str) Utilisez une barre oblique inverse pour échapper au guillemet simple dans str

  • REPEAT(str, srchstr,rplcstr) Renvoie le résultat de la chaîne str répétée x fois

  • REVERSE(str) Renvoie le résultat de l'inversion de la chaîne str

  • RIGHT (str,x) Renvoie les x caractères les plus à droite de la chaîne str

  • RTRIM(str) renvoie l'espace à la fin de la chaîne str

  • STRCMP(s1,s2) compare les chaînes s1 et s2

  • TRIM(str) supprime tous les espaces au début et à la fin de la chaîne

  • UCASE(str) ou UPPER(str) revient à convertir tous les caractères de la chaîne str Le résultat après majuscule est

  • Fonctions de date et d'heure

  • CURDATE() ou CURRENT_DATE() renvoie la date actuelle

  • CURTIME() ou CURRENT_TIME() renvoie l'heure actuelle

  • DATE_ADD(date,INTERVAL int password) renvoie le résultat de la date plus l'intervalle de temps int (int doit être formaté en fonction des mots-clés), tel que : SELECTDATE_ADD(CURRENT_DATE,INTERVAL 6 MONTH);

  • DATE_FORMAT(date,fmt) formate la valeur de date selon le format fmt spécifié

DATE_SUB(date,INTERVAL int password) renvoie le résultat de la date plus l'intervalle de temps int (int doit être formaté selon le mot-clé), tel que : SELECTDATE_SUB(CURRENT_DATE,INTERVAL 6 MONTH) ;

  • DAYOFWEEK(date) renvoie le jour de la semaine (1~7) représenté par date

  • DAYOFMONTH(date) Renvoie le jour du mois (1~31)

  • DAYOFYEAR(date) Renvoie le jour de l'année (1 ~366)

  • DAYNAME(date) Renvoie le nom du jour de la semaine, tel que : SELECT DAYNAME(CURRENT_DATE);

  • FROM_UNIXTIME(ts,fmt) Format selon le format fmt spécifié Horodatage UNIX ts

  • HOUR(time) renvoie la valeur horaire du temps (0~23)

  • MINUTE(time) renvoie la minute de la valeur (0~59)

  • MONTH(date) Renvoie la valeur mensuelle de la date (1~12)

  • MONTHNAME(date) Renvoie la date Nom du mois, tel que : SELECT

  • MONTHNAME(CURRENT_DATE);

  • NOW() renvoie la date et l'heure actuelles

  • QUARTER(date) renvoie le trimestre (1~4) de l'année pour la date, par exemple SELECT QUARTER(CURRENT_DATE);

  • WEEK(date) renvoie la date la date est la semaine de l'année (0~53)

  • ANNÉE(date) Renvoie l'année de la date (1000~9999) Quelques exemples : Obtenez l'heure actuelle du système :

  • 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);

  • Renvoie la différence (nombre de mois) entre deux valeurs de date :

  • SELECT PERIOD_DIFF(200302,199802)

  • Calculer l'âge dans Mysql :

  • SELECT DATE_FORMAT(FROM_DAYS(TO_DAYS(NOW())-TO_DAYS(birthday)),'%Y') 0 AS age FROM employé;

  • De cette façon, si Brithday est l'année, le mois et le jour dans le futur, le résultat du calcul est 0.

  • L'instruction SQL suivante calcule l'âge absolu d'un employé, c'est-à-dire que lorsque l'anniversaire est une date dans le futur, une valeur négative sera obtenue.

  • SELECT DATE_FORMAT(NOW(), '%Y') - DATE_FORMAT(anniversaire, '%Y') -(DATE_FORMAT(NOW(), '00-%m-%d ')

5. Fonction de cryptage

  • AES_ENCRYPT(str,key) : renvoie la chaîne de clé str en utilisant la norme de cryptage avancée. Le résultat de algorithme de chiffrement, le résultat de l'appel de AES_ENCRYPT est une chaîne binaire, stockée dans le type BLOB

  • AES_DECRYPT(str,key) renvoie la clé clé pour utiliser le chiffrement avancé sur la chaîne str Le résultat après décryptage par algorithme standard

  • DECODE(str,key) : utilisez la clé comme clé pour déchiffrer la chaîne cryptée str

  • ENCRYPT(str, salt ) : Utilisez la fonction UNIXcrypt() pour chiffrer la chaîne str

  • ENCODE(str,key) avec le mot-clé salt (une chaîne qui peut déterminer de manière unique le mot de passe, tout comme une clé) ) : Utilisez key comme clé pour chiffrer la chaîne str. Le résultat de l'appel à ENCODE() est une chaîne binaire, qui est stockée dans le type BLOB

  • MD5() Calculer le MD5. de la chaîne str Checksum

  • PASSWORD(str) renvoie la version cryptée de la chaîne str Ce processus de cryptage est irréversible et utilise un algorithme différent du processus de cryptage du mot de passe UNIX >

    SHA() calcule la somme de contrôle de l'algorithme de hachage sécurisé (SHA) de la chaîne str
  • Exemple :
  • SELECT ENCRYPT('root',' salt'); 🎜>SELECT ENCODE('xufeng','key');
  • SELECT DECODE(ENCODE('xufeng','key'),'key');

    #Cryptage et décryptage ensemble
    SELECT AES_ENCRYPT( 'root','key');
    SELECT AES_DECRYPT(AES_ENCRYPT('root','key'),'key');
    SELECT MD5('123456'); ');



    6. Fonction de flux de contrôle

    MySQL dispose de 4 fonctions pour les opérations conditionnelles. Ces fonctions peuvent implémenter la logique conditionnelle SQL permettant aux développeurs de convertir certaines logiques métier d'application en. le back-end de la base de données.

Fonction de flux de contrôle MySQL :

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

    Si testN est Si vrai, renvoie resultN, sinon renvoie default

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

  • Si test et valN sont égaux, renvoie resultN, sinon renvoie default

  • IF(test,t,f) Si test est vrai, renvoie t sinon renvoie f

  • IFNULL(arg1,arg2) Si arg1 n'est pas vide, renvoie arg1, sinon renvoie arg2
  • NULLIF(arg1,arg2) Si arg1=arg2, renvoie NULL ; sinon Return arg1
  • La première de ces fonctions est IFNULL(), qui a deux paramètres et évalue le premier paramètre. Si le premier paramètre n'est pas NULL, la fonction renverra le premier paramètre à l'appelant ; s'il est NULL, le deuxième paramètre sera renvoyé.
  • Par exemple : SELECT IFNULL(1,2), IFNULL(NULL,10),IFNULL(4*NULL,'false'); La fonction NULLIF() vérifiera les deux fourni Si les paramètres sont égaux. S'ils sont égaux, NULL est renvoyé. S'ils ne sont pas égaux, le premier paramètre est renvoyé.
  • Par exemple : SELECT NULLIF(1,1),NULLIF('A','B'),NULLIF(2 3,4 1);
  • Comme la fonction IF() fournie par de nombreux langages de script, la fonction IF() de MySQL peut également créer un test conditionnel simple. Cette fonction a trois paramètres. Le premier est l'expression à juger If. la formule est vraie, IF() renverra le deuxième paramètre. Si elle est fausse, IF() renverra le troisième paramètre.
  • Par exemple : SELECTIF(1eccf31e50338154ca5b472639ff61fde100,'true','false');
  • La fonction IF() peut être utilisée lorsqu'il n'y a que deux résultats possibles. Cependant, dans le monde réel, nous pouvons constater que plusieurs branches sont nécessaires dans un test conditionnel. Dans ce cas, MySQL fournit la fonction CASE, qui est la même que la routine conditionnelle switch-case dans les langages PHP et Perl.
  • Le format de la fonction CASE est quelque peu compliqué, généralement comme suit : CASE [expression à évaluer] QUAND [val 1] ALORS [résultat 1] QUAND [val 2] ALORS [résultat 2] QUAND [ val 3] ALORS [result 3] …… QUAND [val n] THEN [result n] ELSE [default result] END

  • Ici, le premier paramètre est la valeur à jugé ou expression, suivi d'une série de blocs WHEN-THEN, le premier paramètre de chaque bloc spécifie la valeur à comparer, et si vrai, le résultat est renvoyé. Tous les blocs WHEN-THEN se termineront par un bloc ELSE Lorsque END termine tous les blocs CASE externes, le résultat par défaut spécifié par le bloc ELSE sera renvoyé si chacun des blocs précédents ne correspond pas. Si aucun bloc ELSE n'est spécifié et que toutes les comparaisons WHEN-THEN sont fausses, MySQL renverra NULL.

  • La fonction CASE a une autre syntaxe, parfois très pratique à utiliser, la suivante : CASE QUAND [test conditionnel 1] ALORS [résultat 1] QUAND [test conditionnel 2] ALORS [ résultat 2] ELSE [résultat par défaut] END Dans cette condition, le résultat renvoyé dépend de la véracité du test de condition correspondant.

  • Exemple :

  • mysql>SELECT CASE 'vert' QUAND 'rouge' ALORS 'stop' QUAND 'vert ' ALORS 'aller' FIN;

  • SELECT CASE 9 WHEN 1 THEN 'a' QUAND 2 ALORS 'b' ELSE 'N/A' END; 4 PUIS 'OK' QUAND(2 2)a8093152e673feb7aba1828c435320944 PUIS 'pas OK' END ASSTATUS;

  • SELECT Nom,IF((IsActive = 1),'Activé' , 'non actif') COMME RÉSULTAT FROMUserLoginInfo ; SELECT fname,lname,(math sci lit) AS total, CASE WHEN (math sci lit) < 50 ALORS 'D' QUAND (math sci lit) ENTRE 50 ET 150 PUIS 'C' QUAND (math sci lit) ENTRE 151 ET 250 ALORS 'B' ELSE 'A' END AS grade FROM marques ; SELECT IF(ENCRYPT('sue','ts')=upass,'allow','deny') AS LoginResultFROM utilisateurs WHERE uname = 'sue'; #A vérification de connexion

7. Fonction de formatage

  • DATE_FORMAT(date,fmt) selon les caractères String fmt formaté date valeur de date

  • FORMAT(x,y) Formate x dans une séquence de nombres séparés par des virgules, y est le nombre de décimales dans le résultat

  • INET_ATON(ip) Renvoie la représentation numérique de l'adresse IP

  • INET_NTOA(num) Renvoie l'adresse IP représentée par le nombre

  • TIME_FORMAT(time,fmt) Formatez la valeur temporelle en fonction de la chaîne fmt
    La plus simple est la fonction FORMAT(), qui peut formater de grandes valeurs dans une séquence facile à lire séparée par des virgules .

  • Exemple :

  • SÉLECTIONNER LE 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(MAINTENANT (),'%h:%i %p');

  • SELECT INET_ATON('10.122.89.47');

  • SELECT INET_NTOA (175790383);

8. Fonction de conversion de type

  • Afin de convertir les types de données, MySQL fournit la fonction CAST(), qui peut Convertit une valeur en type de données spécifié.

Les types incluent : BINARY, CHAR, DATE, TIME, DATETIME, SIGNED, UNSIGNED

  • Exemple :

SELECT CAST(NOW() AS SIGNED INTEGER),CURDATE()+0; 
SELECT ‘f’=BINARY ‘F’,’f’=CAST(‘F’ AS BINARY);

9. Fonction d'informations système

  • DATABASE() renvoie le nom de la base de données actuelle

  • BENCHMARK(count,expr) will L'expression expr est exécutée en nombre de fois

  • CONNECTION_ID() Renvoie l'ID de connexion du client actuel

  • FOUND_ROWS() Renvoie le dernier SELECT requête de récupération Le nombre total de lignes

  • USER() ou SYSTEM_USER() renvoie le nom d'utilisateur de connexion actuel

  • VERSION() renvoie le version du serveur MySQL

  • Exemple :
    SELECT DATABASE(),VERSION(),USER(); ()));
    #Dans cet exemple, MySQL calcule l'expression LOG(RAND()*PI()) 9999999 fois.

Ce qui précède est le contenu des fonctions couramment utilisées de [MySQL 09] Pour plus de contenu connexe, veuillez faire attention au site Web PHP chinois (www.php.cn) !


Déclaration:
Le contenu de cet article est volontairement contribué par les internautes et les droits d'auteur appartiennent à l'auteur original. Ce site n'assume aucune responsabilité légale correspondante. Si vous trouvez un contenu suspecté de plagiat ou de contrefaçon, veuillez contacter admin@php.cn
Article précédent:[MySQL 08] Procédure stockéeArticle suivant:[MySQL 08] Procédure stockée