Maison > Article > base de données > 【MySQL 09】Fonctions couramment utilisées
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
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#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
Si testN est Si vrai, renvoie resultN, sinon renvoie default
CASE [test] WHEN[val1] THEN [result]… ELSE [default]END
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.