Rumah > pangkalan data > Oracle > Ringkaskan dan susun fungsi yang biasa digunakan dalam Oracle

Ringkaskan dan susun fungsi yang biasa digunakan dalam Oracle

WBOY
Lepaskan: 2022-08-30 14:00:18
ke hadapan
2608 orang telah melayarinya

Artikel ini membawakan anda pengetahuan yang berkaitan tentang Oracle Ia menerangkan secara terperinci fungsi yang biasa digunakan dalam Oracle dan memperkenalkannya melalui kod sampel saya harap ia akan menjadi nilai rujukan tertentu untuk kajian atau kerja semua orang. , harap dapat membantu semua.

Ringkaskan dan susun fungsi yang biasa digunakan dalam Oracle

Tutorial yang disyorkan: "Tutorial Video Oracle"

Terdapat dua jenis fungsi utama yang digunakan dalam pangkalan data Oracle:

1. Fungsi satu baris: mengendalikan satu baris data dan mengembalikan hasil

  • Fungsi satu baris yang biasa digunakan ialah:
  • Fungsi rentetan : beroperasi pada rentetan.
  • Fungsi nombor: melakukan pengiraan pada nombor dan mengembalikan nombor.
  • Fungsi tarikh: Tarikh dan masa proses.
  • Fungsi penukaran: boleh menukar satu jenis data kepada jenis data yang lain.

2. Fungsi pengagregatan (fungsi berbilang baris, fungsi kumpulan, fungsi kumpulan): beroperasi pada berbilang baris data dan mengembalikan hasil. Contohnya, SUM

1. Fungsi rentetan

Fungsi aksara menerima parameter aksara Parameter ini boleh menjadi lajur dalam jadual atau ungkapan rentetan.

Fungsi aksara yang biasa digunakan:

函数 说明
ASCII(X) 返回字符X的ASCII码
CONCAT(X,Y) 连接字符串X和Y
INSTR(X,STR[,START][,N) 从X中查找str,可以指定从start开始,也可以指定从n开始
LENGTH(X) 返回X的长度
LOWER(X) X转换成小写
UPPER(X) X转换成大写
LTRIM(X[,TRIM_STR]) 把X的左边截去trim_str字符串,缺省截去空格
RTRIM(X[,TRIM_STR]) 把X的右边截去trim_str字符串,缺省截去空格
TRIM([TRIM_STR  FROM]X) 把X的两边截去trim_str字符串,缺省截去空格
REPLACE(X,old,new) 在X中查找old,并替换成new
SUBSTR(X,start[,length]) 返回X的字串,从start处开始,截取length个字符,缺省length,默认到结尾

Contoh fungsi di atas:

示例 示例结果
SELECT ASCII('a') FROM dual; 97
SELECT CONCAT('Hello','world') FROM dual; Helloworld
SELECT INSTR('Hello world','or') FROM dual; 8
SELECT LENGTH('Hello') FROM dual; 5
SELECT LOWER('Hello') FROM dual; hello
SELECT UPPER('hello') FROM dual; HELLO
SELECT LTRIM('=Hello=','=') FROM dual; Hello=
SELECT RTRIM('=Hello=','=') FROM dual; =Hello
SELECT TRIM('='FROM'=Hello=') FROM dual; Hello
SELECT REPLACE('ABCDE','CD','AAA')FROM dual; ABAAAE
SELECT SUBSTR('ABCDE',2,3) FROM dual; BCD

2 Menerima parameter berangka, yang boleh datang daripada lajur dalam jadual atau menjadi ungkapan angka.

Arahan:

1 ROUND(X[,Y]), bulat.

Apabila y lalai digunakan, lalai y=0 sebagai contoh: ROUND(3.56)=4.

y ialah integer positif, yang dibundarkan kepada y tempat perpuluhan. BULAT(5.654,2)=5.65.

y ialah integer negatif, dibundarkan kepada |y| di sebelah kiri titik perpuluhan. BULAT(351.654,-2)=400.

2.TRUNC(x[,y]), memintas terus tanpa membundar.

Apabila y lalai digunakan, lalai y=0 sebagai contoh: TRUNC (3.56)=3.

Y ialah integer positif, yang dibundarkan kepada y tempat perpuluhan. TRUNC (5.654,2)=5.65.

y ialah integer negatif, dibundarkan kepada |y| di sebelah kiri titik perpuluhan. TRUNC (351.654,-2)=300.

3. Fungsi tarikh

Fungsi tarikh beroperasi pada tarikh. Fungsi tarikh yang biasa digunakan ialah:

1 ADD_MONTHS(d,n), tambah bilangan bulan n yang ditetapkan pada tarikh tertentu d, dan kembalikan tarikh baharu yang dikira.

d mewakili tarikh, n mewakili bilangan bulan yang akan ditambah.

Contoh:

SELECT SYSDATE,add_months(SYSDATE,5) FROM dual;
Salin selepas log masuk

2, LAST_DAY(d), mengembalikan hari terakhir bulan pada tarikh yang ditentukan.

Contoh:

SELECT SYSDATE,last_day(SYSDATE) FROM dual;
Salin selepas log masuk

3, ROUND(d[,fmt]), mengembalikan nilai tarikh bulat dalam format fmt, d ialah tarikh, fmt ialah format

model. Fmt lalai ialah DDD, iaitu hari dalam sebulan.

  • Jika fmt ialah "TAHUN", ia dibundarkan kepada 1 Januari tahun tertentu, iaitu separuh pertama tahun itu dibuang, dan separuh kedua tahun itu ialah dianggap sebagai tahun hadapan.

  • Jika fmt ialah "BULAN", ia akan dibundarkan kepada 1 haribulan tertentu, iaitu bulan sebelumnya akan dibundarkan, dan separuh kedua bulan itu akan dianggap sebagai bulan berikutnya.

  • Lalai ialah "DDD", iaitu, hari tertentu dalam bulan itu, hari terdekat, separuh hari pertama dibuang dan separuh hari kedua ialah dianggap sebagai hari berikutnya.

  • Jika fmt ialah "HARI", ia akan dibundarkan kepada Ahad minggu terdekat, iaitu separuh pertama minggu akan dibundarkan dan separuh kedua minggu itu akan dianggap sebagai Ahad minggu hadapan.

Contoh:

SELECT SYSDATE,ROUND(SYSDATE),ROUND(SYSDATE,'day'),

ROUND(SYSDATE,'month'),ROUND(SYSDATE,'year') FROM dual;
Salin selepas log masuk

Fungsi yang sepadan dengan ROUND ialah operasi TRUNC (d[,fmt]) pada tarikh , TRUNC sangat serupa dengan ROUND, kecuali tarikh itu tidak dibundarkan dan dipintas terus ke hari pertama format yang sepadan.

4. EXTRACT(fmt FROM d), ekstrak bahagian tarikh tertentu.

fmt ialah: TAHUN, BULAN, HARI, JAM, MINIT, KEDUA. Antaranya, YEAR, MONTH dan DAY boleh memadankan jenis DATE atau jenis TIMESTAMP tetapi HOUR, MINUTE dan SECOND mesti sepadan dengan jenis TIMESTAMP.

JAM Zon waktu tidak ditambahkan pada hasil yang sepadan, jadi keputusan yang dijalankan di China adalah 8 jam lebih kecil.

Contoh:

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;
Salin selepas log masuk

4. Fungsi penukaran

Fungsi penukaran menukar nilai daripada satu jenis data kepada jenis Data yang lain. Fungsi penukaran biasa ialah:

1, TO_CHAR(d|n[,fmt])

Tukar tarikh dan nombor kepada rentetan berformat. Fmt ialah rentetan terformat

Demonstrasi kod: TO_CHAR pemprosesan tarikh

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

Analisis kod:

dalam pemformatan Dalam rentetan , gunakan petikan berganda untuk memetik aksara bukan pemformatan

Untuk pemformatan nombor, aksara pemformatan ialah:

参数示例说明
9999指定位置处显示数字
.9.9指定位置返回小数点
,99,99指定位置返回一个逗号
$9数字开头返回一个美元符号
EEEE9.99EEEE科学计数法表示
LL999数字前加一个本地货币符号
PR999PR如果数字式负数则用尖括号进行表示

代码演示:TO_CHAR对数字的处理

SELECT TO_CHAR(-123123.45,'L9.9EEEEPR')"date" FROM dual;
Salin selepas log masuk

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;
Salin selepas log masuk

五、其它单行函数

1、NVL(X,VALUE)

如果X为空,返回value,否则返回X

例:对工资是2000元以下的员工,如果没发奖金,每人奖金100元

代码演示:NVL函数

SELECT ENAME,JOB,SAL,NVL(COMM,100) FROM EMP WHERE SAL<2000;
Salin selepas log masuk

-------------------------------------------------------------------

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;
Salin selepas log masuk

-------------------------------------------------------------------

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;
Salin selepas log masuk

-------------------------------------------------------------------

SUM(SAL)

29025

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

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

SELECT DEPTNO,AVG(SAL) FROM EMP GROUP BY DEPTNO;
Salin selepas log masuk

-------------------------------------------------------------------

DEPTNO    AVG(SAL)

---------    ----------

30    1566.66666

20     2175

10    2916.66666

推荐教程:《Oracle视频教程

Atas ialah kandungan terperinci Ringkaskan dan susun fungsi yang biasa digunakan dalam Oracle. Untuk maklumat lanjut, sila ikut artikel berkaitan lain di laman web China PHP!

Label berkaitan:
sumber:jb51.net
Kenyataan Laman Web ini
Kandungan artikel ini disumbangkan secara sukarela oleh netizen, dan hak cipta adalah milik pengarang asal. Laman web ini tidak memikul tanggungjawab undang-undang yang sepadan. Jika anda menemui sebarang kandungan yang disyaki plagiarisme atau pelanggaran, sila hubungi admin@php.cn
Tutorial Popular
Lagi>
Muat turun terkini
Lagi>
kesan web
Kod sumber laman web
Bahan laman web
Templat hujung hadapan