1. Fonctions mathématiques
ABS(x) Renvoie la valeur absolue de x
BIN(x) Renvoie le nombre binaire de x (OCT renvoie octal, HEX renvoie hexadécimal)
CEILING(x) Renvoie la plus petite valeur entière supérieure à x (la base d'un nombre) élevée à la puissance 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 le module (reste) de x/y Fait en sorte que le générateur de nombres aléatoires RAND() génère une valeur spécifiée.
ROUND(x,y) renvoie la valeur arrondie du paramètre x avec y décimales
SIGN(x) renvoie la valeur représentant le signe du nombre >TRUNCATE(x,y) Renvoie le résultat du nombre x tronqué à y décimales
2. Fonction d'agrégation (couramment utilisée dans les requêtes SELECT de la clause GROUP BY)
AVG( col) Renvoie la valeur moyenne de la colonne spécifiée
COUNT (col) Renvoie le nombre de valeurs non NULL dans 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 Value
SUM(col) Renvoie la somme de toutes les valeurs de la colonne spécifiée
GROUP_CONCAT(col) Renvoie le résultat formé en concaténant les valeurs de colonne appartenant à un groupe
3. String Function
ASCII(char) renvoie la valeur du code ASCII du caractère
BIT_LENGTH(str) renvoie la longueur en bits de la chaîne
CONCAT(s1,s2...,sn) convertit s1, s2.. ., sn est concaténé en une chaîne
CONCAT_WS(sep,s1,s2...,sn) concatène s1,s2...,sn en une chaîne et séparé par des caractères sep
INSERT(str ,x, y,instr) Remplacer la sous-chaîne de caractères y de la chaîne str en commençant par 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 minusculeLEFT(str,x) renvoie le x le plus à gauche dans la chaîne str caractèresLENGTH(s) renvoie le nombre de caractères dans la chaîne str
LTRIM(str) coupe les espaces de début du string str
POSITION(substr,str) renvoie la sous-chaîne substr dans la chaîne La première occurrence de str dans 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) Comparez les chaînes s1 et s2
TRIM(str) Supprimez tous les espaces au début et à la fin de la chaîne
UCASE(str) ou UPPER(str) Renvoie tous les caractères de la chaîne str après les avoir convertis en majuscules Résultat
4 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 du mot-clé), tel que : SELECTDATE_ADD(CURRENT_DATE ,INTERVAL 6 MONTH);
DATE_FORMAT(date,fmt) Selon le format de la valeur de date dans 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 représenté par date (1~7)
DAYOFMONTH(date) Renvoie le jour de le mois représenté par la date (1~31)
DAYOFYEAR(date) Renvoie le jour de l'année (1~366) pour la date au format fmt, format UNIX timestamp tsHOUR(time) Renvoie la valeur horaire du temps (0~23)MINUTE(time) Renvoie la valeur minute du temps (0~59)
MONTH(date ) Renvoie la valeur mensuelle de la date (1~12)
MONTHNAME(date) Renvoie la nom du mois de la date, tel que : SELECT MONTHNAME(CURRENT_DATE);
NOW() Renvoie la date et l'heure actuelles
QUARTER(date ) Renvoie la date du trimestre de l'année (1~4), par exemple SELECT QUARTER(CURRENT_DATE);
WEEK(date) Renvoie la date comme la semaine de l'année (0~53)
YEAR(date ) Renvoie l'année de la date (1000~9999)
Quelques exemples :
Obtenez l'heure actuelle du système : SELECT FROM_UNIXTIME(UNIX_TIMESTAMP());
SELECT EXTRACT(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 future, elle aura une valeur négative.
SELECT DATE_FORMAT(NOW(), '%Y') - DATE_FORMAT(anniversaire, '%Y')
-(DATE_FORMAT(NOW(), '00-%m-%d')
5. Fonction de cryptage
AES_ENCRYPT(str,key) renvoie le résultat du cryptage de la chaîne str à l'aide de l'algorithme Advanced Encryption Standard à l'aide de la clé key et appelle AES_ENCRYPT Le résultat est une chaîne binaire, stockée dans le type BLOB
AES_DECRYPT(str,key) Renvoie le résultat du déchiffrement de la chaîne str à l'aide de l'algorithme Advanced Encryption Standard en utilisant la clé key
DECODE(str,key) Utilisation de la clé Décryptez la chaîne chiffrée str
ENCRYPT(str,salt) comme clé. Utilisez la fonction UNIXcrypt() et utilisez le mot-clé salt (une chaîne qui peut déterminer de manière unique le mot de passe, tout comme une clé) pour chiffrer la chaîne str<. 🎜>ENCODE (str,key) Utiliser key comme clé pour chiffrer la chaîne str Le résultat de l'appel de ENCODE() est une chaîne binaire, qui est stockée dans le type BLOB
MD5() Calcule la somme de contrôle MD5 du string str
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');
SELECT SHA('123456');
6. Fonctions de flux de contrôle MySQL dispose de 4 fonctions utilisées pour effectuer des opérations conditionnelles. Ces fonctions peuvent implémenter la logique conditionnelle SQL et permettre aux développeurs de convertir certaines logiques métier d'application en arrière-plan de la base de données.
Fonction de flux de contrôle MySQL :
CASE WHEN[test1] THEN [result1]...ELSE [default] END Si testN est 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 renvoie arg1
La première de ces fonctions est IFNULL(). , il a deux paramètres, et le premier paramètre est jugé. 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 si les deux paramètres fournis sont égaux. Si Si égal, NULL est renvoyé. Sinon, le premier paramètre est renvoyé.
Par exemple : SELECT NULLIF(1,1),NULLIF('A','B'),NULLIF(2+3,4+1);
Identique à la fonction IF() fournie par de nombreux scripts 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() renverra le deuxième paramètre. () renverra le troisième paramètre.
Par exemple : SELECTIF(1<10,2,3),IF(56>100,'true','false');
La fonction IF() peut être utilisée lorsqu'il n'y en a que deux possibles résultats. 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 le suivant :
CASE [expression à évaluer]
WHEN [val 1] THEN [result 1]
WHEN [val 2] ALORS [ résultat 2 ]
QUAND [val 3] ALORS [résultat 3]
......
QUAND [val n] ALORS [résultat n]
ELSE [résultat par défaut]
FIN
Ici, le premier paramètre est la valeur ou l'expression à juger, suivi d'une série de blocs WHEN-THEN. Le premier paramètre de chaque bloc spécifie la valeur à comparer, et si c'est vrai, le résultat est renvoyé. tous
Le bloc WHEN-THEN se terminera par un bloc ELSE Lorsque END termine tous les blocs CASE externes, si chacun des blocs précédents ne correspond pas, le résultat par défaut spécifié par le bloc ELSE sera renvoyé. sinon
Avec le bloc ELSE spécifié et toutes les comparaisons WHEN-THEN sont fausses, MySQL renverra NULL.
La fonction CASE a une autre syntaxe, parfois très pratique à utiliser, comme suit :
CASE
WHEN [test conditionnel 1] ALORS [résultat 1]
WHEN [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 'green'
QUAND 'rouge' PUIS 'stop'
QUAND 'vert' PUIS 'go' FIN ;
SÉLECTIONNEZ LE CAS 9 LORSQUE 1 PUIS 'a' QUAND 2 PUIS 'b' AUTRE 'N/A' FIN ;
SELECT CASE WHEN (2+2)=4 THEN 'OK' WHEN(2+2)<>4 THEN 'not OK' END ASSTATUS;
SELECT Name,IF((IsActive = 1),'Activated' ,'non activé') AS RESULT FROMUserLoginInfo;
SELECT fname,lname,(math+sci+lit) AS total,
CASE WHEN (math+sci+lit) <50 THEN 'D'
QUAND (math+sci+lit) ENTRE 50 ET 150 PUIS 'C'
QUAND (math+sci+lit) ENTRE 151 ET 250 PUIS 'B'
ELSE 'A' FIN
AS note FROM notes ;
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) Formatez la valeur de la date en fonction de la chaîne fmt
FORMAT(x,y) Formatez x en 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) Formate l'heure en fonction la chaîne fmt time value
La plus simple d'entre elles est la fonction FORMAT(), qui peut formater de grandes valeurs numériques en une séquence facile à lire séparée par des virgules.
Exemple :
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. Fonction de conversion de type
Afin d'effectuer Conversion du type de données, MySQL fournit la fonction CAST(), qui peut convertir une valeur en un type de données spécifié. Les types sont : 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'information système
DATABASE() Renvoie le nom de la base de données actuelle
BENCHMARK( count , expr) Répétez l'expression expr count fois
CONNECTION_ID() Renvoie l'ID de connexion du client actuel
FOUND_ROWS() Renvoie le nombre total de lignes récupérées par la dernière requête SELECT
USER() ou SYSTEM_USER () Renvoie le nom d'utilisateur de connexion actuel
VERSION() Renvoie la version du serveur MySQL
Exemple :
SELECT DATABASE(),VERSION(),USER();
SELECTBENCHMARK(9999999,LOG( RAND()*PI ())); #Dans cet exemple, MySQL calcule l'expression LOG(RAND()*PI()) 9999999 fois
Ce qui précède est le contenu détaillé de. pour plus d'informations, suivez d'autres articles connexes sur le site Web de PHP en chinois!