Maison > Article > base de données > Résumer et organiser les fonctions couramment utilisées dans Oracle
Cet article vous apporte des connaissances pertinentes sur Oracle. Il explique en détail les fonctions couramment utilisées dans Oracle et les présente à travers des exemples de codes. J'espère qu'il aura une certaine valeur de référence pour l'étude ou le travail de chacun. à tout le monde.
Tutoriel recommandé : "Tutoriel vidéo Oracle"
Il existe deux principaux types de fonctions utilisées dans la base de données Oracle :
1. Fonction à une seule ligne : exploite une ligne de données et renvoie un résultat
2. Fonctions d'agrégation (fonctions multi-lignes, fonctions de groupe, fonctions de groupe) : opèrent sur plusieurs lignes de données et renvoient un résultat. Par exemple, SUM
La fonction de caractère accepte les paramètres de caractère. Ces paramètres peuvent être des colonnes du tableau ou une expression de chaîne.
Fonctions de caractères couramment utilisées :
Fonction | Description |
ASCII(X) | Renvoie le code ASCII du caractère |
INSTR(X,STR[,START][,N) | Rechercher la chaîne à partir de la longueur |
LOWER(X) | X est converti en minuscule |
UPPER(X) | X est converti en majuscule |
LTRIM(X[,TRIM_STR]) | Truncate le côté gauche de String, les espaces sont tronqués par défaut |
RTRIM(X[,TRIM_STR]) | Trim_str string, les espaces sont tronqués par défaut |
TRIM([TRIM_STR FROM]X) | Tronquer le trim_str chaîne des deux côtés de ,length]) |
SELECT ASCII('a') FROM dual; | |
SELECT CONCAT('Hello','world') FROM dual; | |
SELECT INSTR('Bonjour tout le monde', 'ou') FROM dual; | |
SELECT LENGTH('Bonjour') FROM dual; |
SELECT UPPER ('bonjour') FROM dual; | |
SELECT LTRIM('=Bonjour=','=') FROM dual; | |
SELECT RTRIM('=Hello=','= ') FROM dual; | |
SELECT TRIM('='FROM'=Bonjour=') FROM dual; | |
SELECT REPLACE('ABCDE','CD','AAA' )FROM dual; | |
SELECT SUBSTR('ABCDE',2,3) FROM dual; | |
2. Fonctions numériques | |
Les fonctions numériques acceptent des paramètres numériques, et les paramètres peuvent provenir de tableaux, d'une colonne ou d'une expression numérique. | |
Explication | Exemple |
ABS(X) | La valeur absolue de la chaîne |
COS(X) | |
COS( 1)=0,54030230586814 |
inférieur ou égal à la valeur maximale de , 4)=2 | MOD(X,Y) | |
MOD(8,3)=2 | POWER(X,Y) | |
POWER(2, 3)=8 | ROUND(X[,Y]) | |
ROUND(3.456, 2)=3.46 | SQRT(X ) |
Exemple : | 3. | |
. La valeur par défaut est DDD, qui correspond à un jour du mois. | Si fmt vaut "YEAR", il sera arrondi au 1er janvier d'une certaine année, c'est-à-dire que le premier semestre de l'année sera rejeté, et la seconde moitié de l'année sera considérée comme l'année suivante. | Si fmt est "MOIS", il sera arrondi au 1er d'un certain mois, c'est-à-dire que le mois précédent sera arrondi et la seconde moitié du mois sera considérée comme le mois prochain. |
Si fmt est "JOUR", il est arrondi au dimanche de la semaine la plus proche, c'est-à-dire que la première moitié de la semaine est ignorée et la seconde moitié de la semaine est utilisée comme Dimanche de la semaine prochaine. | Exemple : | |
4. | fmt est : ANNÉE, MOIS, JOUR, HEURE, MINUTE, SECONDE. Parmi eux, ANNÉE, MOIS et JOUR peuvent correspondre au type DATE ou au type TIMESTAMP mais HOUR, MINUTE et SECOND doivent correspondre au type TIMESTAMP ; | |
Exemple : | 4. Fonction de conversion | |
1, TO_CHAR(d|n[,fmt]) | Convertissez les dates et les nombres en chaînes dans un format spécifié. Fmt est une chaîne formatée | |
SELECT ENAME,JOB,SAL,NVL(COMM,100) FROM EMP WHERE SAL<2000; |
Analyse du code : | |
Formatage des nombres, les caractères de formatage sont : | paramètre |
代码演示:TO_CHAR对数字的处理
SELECT TO_CHAR(-123123.45,'L9.9EEEEPR')"date" FROM dual;
2、TO_DATE(X,[,fmt])
把一个字符串以fmt格式转换成一个日期类型
3、TO_NUMBER(X,[,fmt])
把一个字符串以fmt格式转换为一个数字
代码演示:TO_NUM函数
SELECT TO_NUMBER('-$12,345.67','$99,999.99')"num" FROM dual;
1、NVL(X,VALUE)
如果X为空,返回value,否则返回X
例:对工资是2000元以下的员工,如果没发奖金,每人奖金100元
代码演示:NVL函数
SELECT ENAME,JOB,SAL,NVL(COMM,100) FROM EMP WHERE SAL<2000;
-------------------------------------------------------------------
ENAME JOB SAL NVL(COMM,100)
SMITH CLERK 800 100
ALLEN SALESMAN 1600 300
WARD SALESMAN 1250 500
MARTIN SALESMAN 1250 1400
TURNER SALESMAN 1500 50
ADAMS CLERK 1100 100
JAMES CLERK 950 100
-------------------------------------------------------------------
7 rows selected
2、NVL2(x,value1,value2)
如果x非空,返回value1,否则返回value2
例:对EMP表中工资为2000元以下的员工,如果没有奖金,则奖金为200元,如果有奖金,则在原来的奖金基础上加100元
代码演示:NVL2函数
SELECT ENAME,JOB,SAL,NVL2(COMM,comm+100,200) "comm" FROM EMP WHERE SAL<2000;
-------------------------------------------------------------------
ENAME JOB SAL comm
SMITH CLERK 800 200
ALLEN SALESMAN 1600 400
WARD SALESMAN 1250 600
MARTIN SALESMAN 1250 1500
TURNER SALESMAN 1500 150
ADAMS CLERK 1100 200
JAMES CLERK 950 200
MILLER CLERK 1300 200
-------------------------------------------------------------------------------------------------------
8 rows selected
聚合函数同时对一组数据进行操作,返回一行结果,比如计算一组数据的总和,平均值等。
名称 | 作用 | 语法 |
AVG | 平均值 | AVG(表达式) |
SUM | 求和 | SUM(表达式) |
MIN、MAX | 最小值、最大值 | MIN(表达式)、MAX(表达式) |
COUNT | 数据统计 | COUNT(表达式) |
例:求本月所有员工的基本工资总和
代码演示:sum函数
SELECT SUM(sal) FROM emp;
-------------------------------------------------------------------
SUM(SAL)
29025
例:求不同部门的平均工资
代码演示:AVG函数下的分组查询
SELECT DEPTNO,AVG(SAL) FROM EMP GROUP BY DEPTNO;
-------------------------------------------------------------------
DEPTNO AVG(SAL)
--------- ----------
30 1566.66666
20 2175
10 2916.66666
推荐教程:《Oracle视频教程》
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!