Maison  >  Article  >  base de données  >  Quelles sont les fonctions d'Oracle ?

Quelles sont les fonctions d'Oracle ?

青灯夜游
青灯夜游original
2022-03-16 17:36:4844338parcourir

Les fonctions d'Oracle incluent : 1. Des fonctions de chaîne, notamment ASCII(), CONCAT(), etc. ; 2. Des fonctions numériques, notamment ABS(), COS(), etc. ; ROUND(), etc. 4. Fonctions de conversion, notamment TO_CHAR(), TO_DATE(), etc.

Quelles sont les fonctions d'Oracle ?

L'environnement d'exploitation de ce tutoriel : système Windows 7, version Oracle 11g, ordinateur Dell G3.

Les instructions Oracle SQL utilisent souvent les propres fonctions d'Oracle. Ces fonctions enrichissent les fonctions du langage SQL et offrent plus d'opérabilité pour Oracle SQL. Les fonctions Oracle peuvent accepter zéro ou plusieurs paramètres d'entrée et renvoyer un résultat de sortie. Il existe deux principaux types de fonctions utilisées dans la base de données Oracle :

1. Fonction à une seule ligne : lorsque chaque fonction est appliquée aux enregistrements de la table, seules les valeurs de colonne d'une ligne peuvent être saisies comme paramètres d'entrée. (ou constantes), et a renvoyé un résultat.

Par exemple 1 : MOD(X,Y) est une fonction de reste qui renvoie le reste de X divisé par Y, où X et Y peuvent être des valeurs de colonne ou des constantes.

Par exemple 2 : TO_CHAR(X,'YYYYMMDD') est une fonction qui convertit le type d'heure en chaîne, où X peut être une colonne d'un certain type d'heure (date) dans la ligne, ou il peut s'agir d'une constante de type d'heure .

Les fonctions sur une seule ligne couramment utilisées sont à peu près les suivantes :

  • Fonctions de chaîne : opèrent sur des chaînes, telles que : TO_CHAR(), SUBSTR(), DECODE(), etc.

  • Fonction numérique : effectue des calculs ou des opérations sur des valeurs numériques et renvoie un nombre. Par exemple : ABS(), MOD(), ROUND(), etc.

  • Fonction de conversion : Convertissez un type de données en un autre type : par exemple : TO_CHAR(), TO_NUMBER(), TO_DATE(), etc.

  • Fonction Date : une fonction qui fonctionne sur l'heure et la date. Par exemple : TRUNC(), SYSDATE(), ADD_MONTHS(), etc.

2. Fonction d'agrégation : Les fonctions d'agrégation peuvent fonctionner sur plusieurs lignes de données en même temps et renvoyer un résultat. Par exemple, SUM(x) renvoie la somme des x colonnes du jeu de résultats.

1. Fonction de chaîne

La fonction de caractère accepte les paramètres de caractères, qui peuvent être des colonnes du tableau ou une expression de chaîne.

Fonctions de caractères couramment utilisées :

Fonction

Description

ASCII(X)

Renvoyer le code ASCII du caractère X

CONCAT(X, Y )

Connecter les chaînes nStart

LENGTH(X)

Renvoie la longueur de X

LOWER(X)

HAUT(X)
X est converti en majuscules

LTRIM(X[,TRIM_STR])
Tronquez la chaîne trim_str sur le côté gauche de TRIM_STR])

Tronquez la chaîne trim_str sur le côté droit de By par défaut, les espaces sont tronqués

REPLACE(X,old,new)

Trouvez l'ancien dans X et remplacez-le par new

SUBSTR(X,start[,length])

Renvoie la chaîne d'exemples de résultats

SELECT ASCII('a') FROM dual;

97

SELECT CONCAT('Hello','world') FROM dual;

Helloworld

SELECT INSTR('Bonjour tout le monde','ou') FROM dual;

8

SELECT LENGTH('Bonjour') FROM dual;


5 SELECT INFÉRIEUR('Bonjour') FROM dual;bonjourSELECT UPPER('bonjour') FROM dual; =') FROM dual;Bonjour=SELECT RTRIM('=Bonjour=','=') FROM dual;=BonjourSELECT TRIM(' ='FROM'=Bonjour=') FROM dual;BonjourSELECT REPLACE('ABCDE','CD','AAA')FROM dual;ABAAAESELECT SUBSTR('ABCDE',2,3) FROM dual;BCD

2. Fonction numérique

La fonction numérique accepte des paramètres numériques. Le paramètre peut provenir d'une colonne du tableau, ou il peut s'agir d'une expression numérique.

SQRT(X)

Fonction

Explication

Exemple

ABS(X)

Valeur absolue de X

ABS(-3)=3

ACOS(X)

X cosinus inverse

ACOS(1)=0

COS(X)

Cosinus

CO S (1)=0,54030230586814

CEIL(X)

supérieur ou égal à la valeur minimale de la valeur maximale de X

FLOOR(5.8)=5

LOG(X,Y)

X est le logarithme de base Y

LOG(2, 4)=2

MOD(X,Y)

Le reste de la division de la puissance

POWER(2,3) =8

ROUND(X[,Y])

La racine carrée de Tronqué à Y bit

TRONC(3.456, 2)=3,45

Instructions :

1. ROND(X[,Y]), Arrondi.

Lorsque le y par défaut est utilisé, le y=0 par défaut : ROUND(3.56)=4 ;

y est un entier positif, arrondi à y décimales. ROND(5.654,2)=5.65.

y est un entier négatif, arrondi à |y| places à gauche de la virgule décimale. ROND(351.654,-2)=400.

2. TRUNC(x[,y]), intercepte directement sans arrondir.

Lorsque le y par défaut est utilisé, le y=0 par défaut : TRUNC (3.56)=3 ;

Y est un entier positif, arrondi à y chiffres après la virgule décimale. TRONC (5,654,2)=5,65.

y est un entier négatif, arrondi à |y| places à gauche de la virgule décimale. TRONC (351.654,-2)=300.

3. Fonction date

La fonction date fonctionne sur les dates. Les fonctions de date couramment utilisées sont :

1, ADD_MONTHS(d,n), ajoute le nombre spécifié de mois n à une certaine date d et renvoie la nouvelle date calculée.

d représente la date, n représente le nombre de mois à ajouter.

Exemple :

SELECT SYSDATE,add_months(SYSDATE,5) FROM dual;

2, LAST_DAY(d), renvoie le dernier jour du mois à la date spécifiée.

Exemple :

SELECT SYSDATE,last_day(SYSDATE) FROM dual;

3. ROUND(d[,fmt]), renvoie une valeur de date arrondie au format fmt, d est la date, fmt est le format

modèle. La valeur par défaut est DDD, qui correspond à un jour du mois.

Ø ① Si fmt est "ANNÉE", il sera arrondi au 1er janvier d'une certaine année, c'est-à-dire que la première moitié de l'année sera arrondie et la seconde moitié de l'année sera considérée comme la suivante année.

Ø ② 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 suivant.

Ø ③ La valeur par défaut est "DDD", c'est-à-dire un certain jour du mois, le jour le plus proche, la première moitié de la journée est ignorée et la seconde moitié de la journée est considérée comme le jour suivant.

Ø ④ 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 considérée comme le dimanche de la semaine suivante .

Exemple :

SELECT SYSDATE,ROUND(SYSDATE),ROUND(SYSDATE,'day'),
ROUND(SYSDATE,'month'),ROUND(SYSDATE,'year') FROM dual;

La fonction correspondant à ROUND est TRUNC(d[,fmt]), qui opère sur les dates est très similaire à ROUND, sauf que la date n'est pas arrondie, et le premier chiffre de. le format correspondant est directement intercepté dans le ciel.

4. EXTRACT(fmt FROM d), extrait une partie spécifique de la date.

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 ;

HEURE Le fuseau horaire n'est pas ajouté aux résultats correspondants, donc les résultats exécutés en Chine sont 8 heures plus petits.

Exemple :

SELECT SYSDATE "date",
       EXTRACT(YEAR FROM SYSDATE)"year",
       EXTRACT(MONTH FROM SYSDATE)"month",
       EXTRACT(DAY FROM SYSDATE)"day",
       EXTRACT(HOUR FROM SYSTIMESTAMP)"hour",
       EXTRACT(MINUTE FROM SYSTIMESTAMP)"minute",
       EXTRACT(SECOND FROM SYSTIMESTAMP)"second"
FROM dual;

4. Fonction de conversion

La fonction de conversion convertit une valeur d'un type de données en un autre type de données. Les fonctions de conversion courantes sont :

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

Démonstration de code : traitement TO_CHAR des dates

SELECT TO_CHAR(SYSDATE,'YYYY"年"MM"月"DD"日" HH24:MI:SS')"date" FROM dual;

Analyse du code :

Dans la chaîne formatée, utilisez des guillemets doubles pour citer des caractères non formatés

Formatage des nombres, les caractères de formatage sont :

paramètre

exemple

description

9

999

Afficher les numéros à l'emplacement spécifié

.

9.9

La position spécifiée renvoie un point décimal

,

99,99

La position spécifiée renvoie une virgule

$

999$

Renvoie un signe dollar au début du nombre

EEEE

9.99EEEE

Notation scientifique

L

L999

Numéros de préfixe A symbole de la monnaie locale

PR

999PR

Si le nombre est négatif, il est représenté par des crochets angulaires

代码演示: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函数

SQL> 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函数

SQL> SELECT ENAME,JOB,SAL,NVL2(COMM,comm+100,200) "comm"
2   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函数

SQL> SELECT SUM(sal) FROM emp;
-------------------------------------------------------------------
SUM(SAL)
29025

例:求不同部门的平均工资

代码演示:AVG函数下的分组查询

SQL> 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!

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