演算子と関数のOracleデータベース

まず、オペレータ:

1、カテゴリー:

算術演算、比較、論理、集合は、接続されています。

2、算術演算子:

    数値計算を行います。

-給料プラス千
SELECT EMPNO、ENAME、仕事、EMPから1000年+ SAL。

3、比較演算子:

-比較演算子(間なしヘッダトレーラ)
1000と2000年の間にEMP WHERE SALからSELECT *。

(意味するものではありませ!=、> <mysqlのでです)

4、論理演算子:とか

 

-クエリのボーナスは、空の従業員情報がない
COMMではありませんEMPから選択* NULL;

 

図5は、オペレータを設定します。

  2つのクエリの結果はつの結果に結合されます。

スコア> = 70およびCID = '01' t_scoreからSIDを選択
INTERSECT
スコア> = 70およびCID = '07' t_scoreから選択SIDと、

①、バック公共問い合わせへの2つの行を交差します。

②、組合は2つの重複したクエリのすべての行を返し、テーブル内のデータがあるかもしれません(別のMySQLでクエリに参加 - ないテーブル)

③、マイナス:2番目のクエリが返す最初のクエリから結果に表示される行を除外し、(1秒を満たしていない最初の結果を見て)

図6に示すように、オペレータに接続されました:

    ストリングまたは単一の文字列に複数のデータ値。

-連結演算子
EMPからの選択(「従業員番号」|| EMPNO ||「の名前」|| ENAME || || SAL 『賃金です』)

7.優先度:

算術>接続>比較>ないロジック>及びロジック>または論理演算子

二、SQL関数:

    特定の操作を実行するために使用される機能。

1、カテゴリー:

  片道、パケット解析。

分類の2、一方向関数:

  テーブルからクエリの各列は、値を返します。

  文字、数字、日付、変換、その他。

3、文字関数:

-文字列関数は、
下の(ENAME)、からジョブを選択 EMPを; - 小文字を

デュアルからLTRIM(「xysdezadmas」、「XYZ」)を選択します。 - 撮影した:左から取られたの後ろにスタートフィールドが始まるプレス、いくつかのいくつかの傍受は一切取らない、存在しません

 ①、他の文字の機能:

CHR:ASCIIコード(97 A:0時48分65)に記載の対応する文字を返し

LPADおよびRPAD:充填。

トリム:スペースの左右を除去するステップと、

レンス:文字列の長さ。

デコード:置換値ずつ。

EMPからの仕事として選択ENAME、デコード(ジョブ、「CLERK」、「スタッフ」、「セールスマン」、「ショッピングガイド」)

4、デジタル機能と

5、日付関数:

  日付値を算出し、日付データ型または数値型の結果を生成します。

ADD_MONTHSオフセット;

months_between:月数差;

LAST_DAY最終日。

ラウンド:丸め。

TRUNC:丸い戻り値は、最初の日の後に切り捨てられた日付モードです。

NEXT_DAY(D、日):週次の週の日

エキス:年間で算出された差分:

 

- Date関数は、
ADD_MONTHS(sbirth、-3)から選択 - ; java0322 前方にオフセットされた月にオフセット月、負になることができ、

デュアルからの抽出物(SYSDATEから年)を選択します。 - 今年の現在の時刻を、撮影しました

select sname,extract(year from sysdate) - extract(year from sbirth) from java0322;--计算年纪

 

6、转换函数:

to_char:按照指定的格式转化字符串;

to_date:将字符串转化为日期;

to_number:将数字字符串转化为数字;----可以实现直接在sql语句中进行格式的转换

 

--转换函数(字符串,格式)
Select TO_CHAR(0.123,'$0.9999') FROM DUAL;
--字符串转日期
select to_date ('2005-02-28','yyyy-mm-dd') from dual;
--字符串转数字
select to_number('20') from dual;

 

其他函数:

nvl:isnull,不为空时为本身,为空时指定0;

nvl2:不为空时指定值2,为空时指定值3;

NullIF:相等时为空,否则为前者

 

--查询员工表的所有人的姓名,工资+奖金(奖金没有的时候,由null转为0)---nvl转换空值的函数
select ename,sal+nvl(comm,0)as sal from emp;--当空为0,不为空为comm

select ename,sal+nvl2(comm,10000,0)  from emp;---不为空时10000,为空时0;

select nullif(100,200) from dual;--相等为空,不等为前者

 

7、分组函数:

  基于一组行来返回结果;

avg、min、max、sum、count

8、分析函数:

    根据一组行来计算聚合值;用于计算完成聚集的累计排名、移动平均数等;

row_number:返回连续的排位,不论值是否相等;

rank:具有相等值的行排位相同,序数随后跳跃;

dense_rank:具有相等值的行排位相同,序号是连续的

 

-- 排位
select empno,ename,job,sal,row_number()over (order by sal desc) as  numm from emp; --返回连续的排位,不论值是否相等12345

select empno,ename,job,sal,rank()over (order by sal desc) as  numm from emp; --相等值的行排位相同,序号随后跳跃;12245

select empno,ename,job,sal,dense_rank()over (order by sal desc) as  numm from emp; --相等值的行排位相同,序号是连续的;12234

おすすめ

転載: www.linuxidc.com/Linux/2019-07/159673.htm