ホームページ  >  記事  >  データベース  >  オラクルの機能は何ですか?

オラクルの機能は何ですか?

青灯夜游
青灯夜游オリジナル
2022-03-16 17:36:4844338ブラウズ

Oracle の関数には次のものが含まれます: 1. ASCII()、CONCAT() などを含む文字列関数; 2. ABS()、COS() などを含む数値関数; 3. などの日付関数EXTRACT( )、ROUND() など; 4. TO_CHAR()、TO_DATE() などの変換関数。

オラクルの機能は何ですか?

このチュートリアルの動作環境: Windows 7 システム、Oracle 11g バージョン、Dell G3 コンピューター。

Oracle SQL ステートメントでは、Oracle 独自の関数が使用されることが多く、これらの関数により SQL の言語機能が強化され、Oracle SQL の操作性が向上します。 Oracle 関数は、0 個以上の入力パラメータを受け入れ、出力結果を返すことができます。 Oracle データベースで使用される関数には主に 2 種類があります:

1. 単一行関数 : 各関数がテーブルのレコードに適用されると、テーブル内の列の値のみが適用されます。 1 行を入力パラメータ (または定数) として入力でき、結果を返します。

例 1: MOD(X,Y) は、X を Y で割った余りを返す剰余関数です。ここで、X と Y は列の値または定数です。

例 2: TO_CHAR(X,'YYYYMMDD') は、時刻型を文字列に変換する関数です。ここで、X は行内の特定の時刻型 (日付) の列であるか、または時間型定数。

一般的に使用される単一行関数は、通常次のカテゴリに分類されます。

  • 文字列関数: TO_CHAR()、SUBSTR()、DECODE などの文字列を操作します。 ()など。

  • 数値関数: 数値の計算または演算を実行し、数値を返します。例: ABS()、MOD()、ROUND() など。

  • 変換関数: あるデータ型を別の型に変換します: 例: TO_CHAR()、TO_NUMBER()、TO_DATE() など。

  • 日付関数: 時刻と日付を操作する関数。例: TRUNC()、SYSDATE()、ADD_MONTHS() など。

2. 集計関数 : 集計関数は、複数のデータ行を同時に処理し、結果を返すことができます。たとえば、SUM(x) は、結果セット内の x 列の合計を返します。

1. 文字列関数

Character 関数は、テーブル内の列または文字列式の文字パラメーターを受け入れます。

一般的に使用される文字関数:

から指定することもできます。 ##LENGTH(X)##LOWER(X)# の長さを返します。 trim_str 文字列を X の左側から切り捨てます (デフォルトは切り捨て)スペースtrim_str 文字列を X 、スペースの右側で切り詰めます。デフォルトでは切り詰められます X の両側を切り詰めます trim_str 文字列、スペースデフォルトでは切り捨てられます in X 古いものを見つけて次のように置き換えますnew先頭から開始してインターセプトする X 文字列を返します文字の長さ、デフォルトの長さ、デフォルトは末尾まで

関数

説明

ASCII(X)

文字 X

の ASCII コードを返します。 #CONCAT(X,Y)

文字列 X と Y を接続

#INSTR(X,STR[, START] [,N)

X から str を検索します。先頭から指定することも、n

# X

##X は小文字に変換されます

UPPER(X)
XX は大文字の # に変換されます

LTRIM(X[,TRIM_STR])

RTRIM(X[,TRIM_STR])

##TRIM([TRIM_STR FROM]X)

REPLACE(X,old,new)

SUBSTR(X,start[,length])

#上記の関数の例:


結果の例97##SELECT LOWER('Hello') FROM Dual;helloSELECT UPPER( 'こんにちは') FROM デュアル;HELLOSELECT LTRIM('=Hello=','=' ) FROM デュアル;Hello=SELECT RTRIM('=Hello=','=') FROMデュアル;=HelloSELECT TRIM('='FROM'=Hello=') FROM デュアル; SELECT REPLACE(' ABCDE','CD','AAA')FROM Dual;##SELECT SUBSTR('ABCDE ',2,3) FROM Dual;

SELECT ASCII ('a') FROM Dual;

#SELECT CONCAT('Hello','world') FROM Dual;

Helloworld

SELECT INSTR('Hello world','or') FROM Dual;

#8

SELECT LENGTH('Hello') FROM Dual;

#5

#こんにちは

ABAAAE

#BCD

2. 数値関数

数値関数は数値パラメーターを受け入れます。パラメーターはテーブル内の列から取得することも、数値表現。

##CEIL(5.4)=6FLOOR(X)#XX は底 Y の対数です#XX の Y 乗POWER(2,3)=8
#関数

説明

ABS(X)

X

ABS(-3) の絶対値 = 3

#ACOS(X)

X

の逆余弦ACOS(1)=0

COS(X)

コサイン

COS(1)=0.54030230586814

CEIL(X)

は X 以上です最小値

X

FLOOR(5.8)=5

#LOG(X , 以下の最大値) Y)

#LOG(2,4)=2

MOD(X,Y)

X を Y で割った余り
MOD(8, 3)=2

##POWER(X,Y)

##ROUND(X[,Y])

XX は Y 番目の位置で四捨五入されます

##ROUND(3.456, 2)=3.46

SQRT(X )

X

SQRT(4)=2

の平方根

TRUNC(X[,Y])

XX は Y 位置で切り捨てられます

TRUNC(3.456, 2)=3.45

手順:

1. ROUND(X[,Y])、丸め。

デフォルトの y が使用される場合、デフォルトの y=0 になります (例: ROUND(3.56)=4)。

y は正の整数で、小数点以下 y 桁に四捨五入されます。 ROUND(5.654,2)=5.65。

y は負の整数で、小数点の左側の |y| 桁に丸められます。 ROUND(351.654,-2)=400。

2. TRUNC(x[,y])、丸めずに直接インターセプトします。

デフォルトの y が使用される場合、デフォルトの y=0 になります (例: TRUNC (3.56)=3)。

Y は正の整数で、小数点以下 y 桁に丸められます。 TRUNC (5.654,2)=5.65。

y は負の整数で、小数点の左側の |y| 桁に丸められます。 TRUNC (351.654,-2)=300。

3. 日付関数

日付関数は日付を操作します。一般的に使用される日付関数は、

1、ADD_MONTHS(d,n) で、指定された月数 n を特定の日付 d に加算し、計算された新しい日付を返します。

d は日付を表し、n は加算される月数を表します。

例:

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

2. LAST_DAY(d) は、指定された日付の月の最終日を返します。

例:

SELECT SYSDATE,last_day(SYSDATE) FROM dual;

3. ROUND(d[,fmt])、fmt 形式で丸められた日付を返します。 value、d は日付、fmt は形式

モデルです。デフォルトの fmt は DDD、つまり月内の日です。

Ø ① fmt が "YEAR" の場合、ある年の 1 月 1 日に四捨五入します。つまり、年の前半を切り捨て、後半を考慮します。来年のように。

Ø ② fmt が「MONTH」の場合、ある月の 1 日に四捨五入、つまり前月を切り捨て、月の後半を翌月とします。月。

Ø ③ デフォルトは「DDD」です。つまり、月内の特定の日、最も近い日、その日の前半は破棄され、その日の後半は次の日とみなされます。日。

Ø ④ fmt が「DAY」の場合、直近の週の日曜日に四捨五入します。つまり、週の前半を切り捨て、週の後半を日曜日とみなします。来週の。

例:

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

ROUND に対応する関数は TRUNC (d[,fmt]) で、日付を操作します。TRUNC は ROUND とよく似ています。ただし、日付は四捨五入されず、対応する形式の最初の日に直接切り取られます。

4. EXTRACT(fmt FROM d)、日付の特定の部分を抽出します。

fmt は、年、月、日、時、分、秒です。このうち、YEAR、MONTH、DAY は DATE 型または TIMESTAMP 型と一致しますが、HOUR、MINUTE、SECOND は TIMESTAMP 型と一致する必要があります。

HOUR タイムゾーンは一致結果に追加されないため、中国で実行される結果は 8 時間小さくなります。

例:

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. 変換関数

変換関数は、あるデータ型から値を変換します。別のデータ型。一般的な変換関数は次のとおりです:

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

日付と数値を指定された形式の文字列に変換します。 Fmt はフォーマットされた文字列です。

コードのデモ: 日付の TO_CHAR 処理

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

コード分析:

フォーマットされた文字列では、double を使用します。書式設定されていない文字を引用符で囲みます。

数値の書式設定の場合、書式設定文字は次のとおりです:

#.9.9 ,#数値の前に現地通貨記号を追加#999PR

パラメータ

説明

##9

999

指定した位置に番号を表示します

#指定された位置の小数点を返します

99,99

#指定された位置にカンマを返します

#$
$999

数値の先頭にドル記号を返します

EEEE
9.99EEEE

科学的表記法

L
L999

#PR

数値が負の場合は、山括弧を使用してそれを示します

代码演示: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教程

以上がオラクルの機能は何ですか?の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。

声明:
この記事の内容はネチズンが自主的に寄稿したものであり、著作権は原著者に帰属します。このサイトは、それに相当する法的責任を負いません。盗作または侵害の疑いのあるコンテンツを見つけた場合は、admin@php.cn までご連絡ください。