Oracleデータベースの研究ノート(D)

章IV一価関数

1.機能分類
の2つのカテゴリにOracleデータベース機能は、
1)単一値関数
nは結果の処理機能を介して得られたデータのN個の
、例えば:クエリのすべての従業員がLAST_NAME、すべて大文字で出力
2)多値機能(グループ機能)
処理は以下のn結果の関数よりも後のn個のデータ片を得ることができる
、例えば:照会クラスの各グループの平均。
8グループの6グループに分け、クラス48人の学生と仮定する。
チームの成績平均点は、チームの数の合計で割った各チームのスコアを計算するために必要です。
最後に、操作48に関係するデータが、結果はわずか6です。
算出されたフィールド値の関数に従ってグループにより多値グループを使用する
、マルチグループの関数として知られているので、関数の値、。

2.ダムテーブル--dual
デュアルOracleデータベースは、(仮想テーブル、擬似テーブル)ダミーテーブルである
本質は、テーブルの真の意味ではないので、ダムの表は、データを格納するのに使用されていません。
ちょうど満たすために存在ダム表の意味は、基本的な文法構造を選択します。
select文を使用して、計算または特定のテーブルからデータを処理するときに我々は、特定されない
ダミーのテーブルを使用することができます。
例えば:1 + 1を選択使用して計算される:
デュアル1 + 1から選択し;
としては、上述した、1 + 1は、特定のテーブルシートに由来するのではなく、句から削除を選択することができません。
そこで、今回は、クエリの構造を補完するためにダミーのテーブルを使用することができます。
特徴:表中、常に唯一のダミーデータ。

ストリングのアプリケーションにおける3つの値の関数
すべて小文字に文字列を変換する・LOWER関数
構文:(文字列を変換するために)より低い
クエリはすべて小文字出力が必要な、すべての従業員をLAST_NAME
s_emp(姓)からSELECT低いと、
・すべて大文字に文字列を変換するUPPER関数
構文:上部(変換する文字列)
クエリは、すべて大文字の出力が必要な、すべての従業員をLAST_NAME
s_emp(姓)から上部選択、
コンバージョン・INITCAP関数各単語の最初の文字を大文字に、残りの文字は小文字の
クエリlast_nameの最初の文字を必要とするすべての従業員は、大文字、残りの文字は小文字。
構文:INITCAP(変換する文字列)
s_empからSELECT INITCAP(LAST_NAME);

運動:ハンドル「ハロー世界の文字列に
各単語は大文字、残りの文字は小文字?
INITCAP SELECT( 'Hello Worldの')
デュアルから。

クエリシステム時刻:
デュアルからSELECT SYSDATE;


・CONCAT文字列連結関数
の結果と同様の機能||の
FIRST_NAME ||「 - 」|| LAST_NAME
構文:連結(列1、列2)
注:2つだけのパラメータのOracle concat関数は、
スプライス複数の所望される場合文字列は、ネストされた使用する必要があります。
例えば:
'I'、 'LOVE'、 "中国の文字列へのスプライス
連結(CONCAT( 'I'、 'LOVE')、 'CHINA')
またはCONCAT( 'I'、CONCAT( 'LOVE'、 ' CHINA '))
それが直接||使用することができます場合は、' I '||' LOVE '||' CHINA '
「I '' LOVE '' CHINA * MySQLデータベースは、CONCAT(かもしれ')
・SUBSTR関数Qiuzi文字列
から連続撮影したの文字列部分
のSUBSTR(文字列、開始、長さ):構文
1のインデックス値から文字
たとえば、:
「!のHello World」文字列
SUBSTR(「!のHello World」、。3、





演習:
従業員情報5のLAST_NAME長を検索しますか?
ID SELECT、姓、給与
s_empから
長さ(姓)= 5。

ID SELECT、LAST_NAME、給与
s_empから
「_____」のようなlast_nameの;
・NVLヌルの処理の機能
構文:NVL(処理するフィールド、デフォルト値)
フィールドの値が空でない発見された場合、そのフィールドの値をとる
場合空は、デフォルト値

2の単一値関数は、デジタル適用
ラウンド関数は、ラウンド・
次のSQLコマンドを実行し、法律を遵守し
、デュアルからの選択ラウンド(45.67,0)
SELECTラウンド(45.67,1)デュアルから;
SELECTラウンド(45.67,2)からデュアル;
SELECT ROUND(45.67、-1)デュアルから;
SELECT ROUND(45.67、-2)デュアルから;
SELECT ROUND(55.67、-2)デュアルから、
予約ビットに書き込み専用パラメータはデフォルトを表す場合、すなわち、ラウンド(45.67,0)
第2のパラメータは次のビットへのいくつかの予約の最初を表します。
右に左に、正の数と負の数。
・TRUNC関数だけの家は反映されません
。次のSQLコマンドを実行し、法令遵守
、デュアルからSELECT TRUNC(45.67)を
デュアルからSELECT TRUNC(45.67,1);
デュアルからSELECT TRUNC(45.67,2を);
SELECT TRUNC(45.67、 - 1)デュアルから;
SELECT TRUNC(45.67、-2)デュアルから;
SELECT TRUNC(55.67、-2)デュアルから、
モジュロ・MOD関数
を計算300分の1600の残り?
MOD(1600,300)を選択し
、デュアルから。

アプリケーションの日の3つの値関数
・MONTHS_BETWEEN関数は、数ヶ月の数が2つの日付を計算し
、今から2008年8月8日、何ヶ月に照会?
構文:MONTHS_BETWEEN(日付1、日付2)
SELECT MONTHS_BETWEEN(SYSDATE - 、'08 8ヶ月-2008「)
;デュアルから
・ADD_MONTHSは、日付の日付に加えて数ヶ月後に機能
ADD_MONTHS(日、月数):構文は
、現在の日付を加えた3ヶ月を照会しますか?
ADD_MONTHS SELECT(SYSDATE、3)
デュアルから;
・日付が日付であるいくつかの問い合わせの後、次の週のNEXT_DAY機能?
構文:NEXT_DAY(日付、曜日)
、「週」2つの式があります:
1)が週の名前は、
日付は、次の月曜日の現在の時刻を確認するのですか?
選択NEXT_DAY(SYSDATE、「月曜日」)
デュアルから;
選択NEXT_DAY(SYSDATE、「月曜日」)
デュアルから;
注:来週書かれた別のロケール名。
2)週のシリアル番号は、
注意:週の最初の日は日曜日です。
だから、現在の時刻を確認し、月曜日の日付次:
SELECT NEXT_DAY(SYSDATE、2)
デュアルから;
・LAST_DAY機能は、月の最終日の日付照会
構文:LAST_DAY(日)
現在の月の最後の日に、クエリ?
LAST_DAY SELECT(SYSDATE)
デュアルから;
丸め・ROUND関数
構文:ラウンド(日付、選択ルール)
選択ルール:どちらか一方にしてください

1)年によって保持
の原則:に、月に応じて6ラウンド7を判断する
ラウンド(日、「今年」):構文
丸いの現在の日付に基づいてクエリ結果?
SELECTラウンド(SYSDATE、「今年」)
;デュアルから
2)の月に保持さ
に、毎日に応じて判断する15ラウンド16:原則として
、「月」)SELECTラウンド(SYSDATE
;デュアルから
)3(週間)日に保持した。
原則:現在の週ごとのレートは、数に応じて
、前または次の日曜日に丸められ
ラウンド(SYSDATE、「日」を選択 )、デュアルから;
日曜日-火曜日の家
水曜日-土曜日に
4)デフォルトでは、
デュアルから)(SYSDATEをラウンド選択し、
現在の時刻に応じて(時間)のトレードオフ
・TRUNC関数だけの家はなりません
ROUND関数は、唯一の家は取らないことを除いて、同様の方法を使用しています。


前記伝達関数の適用
1)関数TO_CHAR
A)デジタルタイプの列に
構文:TO_CHAR(数、 'FMT')
FMT形式:
SELECT TO_CHAR(給料、 'L9,999.00')
s_empから;
0:代表押し上げビット
9:部分は進行しない
、:セグメンテーション
:小数
L:ローカル通貨記号
%:ウエスタン通貨記号を

文字列への変換b)は、日付タイプ
to_char関数(日付、「FMT」):構文は
通年YYYY 4桁の
番号MM 2桁の月
の週のD日
最初の数日間におけるDD月
DDD A最初の数日間
のデジタルYEAR年フルネーム
フルネーム月の月が
4月MAR 2月MAY JANの月の月と呼ば
DDSP SP:英語の綴りで綴ら月の最初の数日
の月の最初の数日間の英語のスペルddspth(序用語)
フルネーム日の週の
週間短縮さDY
TO_NUMBER 2)
デジタル型に文字列
TO_NUMBER(文字列)
内容は数値文字列でなければなりません
。デュアルからSELECT TO_NUMBER(「1111」)
。3)TO_DATEの
文字列日付形式に変換されます。
'01 -FEB-18 '
構文:TO_DATE(' 2018年3月1日'' YYYY-DD-MM「)

おすすめ

転載: www.cnblogs.com/DennySmith/p/12189179.html