日韩性视频-久久久蜜桃-www中文字幕-在线中文字幕av-亚洲欧美一区二区三区四区-撸久久-香蕉视频一区-久久无码精品丰满人妻-国产高潮av-激情福利社-日韩av网址大全-国产精品久久999-日本五十路在线-性欧美在线-久久99精品波多结衣一区-男女午夜免费视频-黑人极品ⅴideos精品欧美棵-人人妻人人澡人人爽精品欧美一区-日韩一区在线看-欧美a级在线免费观看

歡迎訪問 生活随笔!

生活随笔

當(dāng)前位置: 首頁 > 运维知识 > 数据库 >内容正文

数据库

不入oracle数据库,Oracle数据库之操作符及函数

發(fā)布時(shí)間:2024/7/23 数据库 42 豆豆
生活随笔 收集整理的這篇文章主要介紹了 不入oracle数据库,Oracle数据库之操作符及函数 小編覺得挺不錯(cuò)的,現(xiàn)在分享給大家,幫大家做個(gè)參考.

一、操作符:

1、分類:

算術(shù)、比較、邏輯、集合、連接;

2、算術(shù)操作符:

執(zhí)行數(shù)值計(jì)算;

--工資加1000

select empno,ename,job,sal+1000 from emp;

3、比較操作符:

--比較運(yùn)算符(between and包頭不包尾)

select * from emp where sal between 1000 and 2000;

(不等于是!=? , ? 在mysql中是<>? )

4、邏輯操作符:and? or? not

--查詢獎(jiǎng)金不為空的員工信息

select * from emp where comm is not null;

5、集合操作符:

將兩個(gè)查詢的結(jié)果組合成一個(gè)結(jié)果:

select sid from t_score where score>=70 and cid = '01'

INTERSECT

select sid from t_score where score>=70 and cid = '07';

①、intersect 返回兩個(gè)查詢的公共行;

②、union:返回兩個(gè)查詢的不重復(fù)的所有行;這里面可以是一個(gè)表中的數(shù)據(jù)(在mysql中是另外的聯(lián)合查詢--不是一個(gè)表)

③、minus:返回從第一個(gè)查詢的結(jié)果中排除第二個(gè)查詢中出現(xiàn)的行;(在第一個(gè)的結(jié)果中查找不滿足第二個(gè)的)

6、連接操作符:

將多個(gè)字符串或數(shù)據(jù)值合并成一個(gè)字符串;

--連接操作符

select ('員工號(hào)為'||empno||',姓名為'||ename||'的工資為'||sal) from emp

7、優(yōu)先級(jí):

算術(shù)>連接>比較>not邏輯>and邏輯>or邏輯操作符

二、SQL函數(shù):

用于執(zhí)行特殊的操作的函數(shù);

1、分類:

單行、 分組、分析;

2、單行函數(shù)分類:

從表中查詢的每一行只返回一個(gè)值;

字符、數(shù)字、日期、轉(zhuǎn)換、其他;

3、字符函數(shù):

--字符串函數(shù)

select lower(ename),job from emp; --小寫

select ltrim('xysdezadmas','xyz') from dual;--截取:從左邊開始按后面字段開始截取,有幾個(gè)截取幾個(gè),沒有就不截取

①、其他字符函數(shù):

chr:根據(jù)ASCII碼返回對(duì)應(yīng)的字符(0:48 ?? a:97 ?? A:65)

lpad和rpad: 填充;

trim:去除左右兩邊的空格符;

lenth:字符串長度;

decode:逐個(gè)值置換;

select sname,decode(cid,1,'開發(fā)部')as 部門 fromjava0322;select ename,decode(job,'CLERK','職員','SALESMAN','導(dǎo)購') as 工作 from emp

4、數(shù)字函數(shù);

5、日期函數(shù):

對(duì)日期值進(jìn)行計(jì)算,并生成日期數(shù)據(jù)類型或數(shù)值類型的結(jié)果;

add_months 偏移;

months_between:月數(shù)差;

last_day 最后一天;

round:四舍五入;

trunc:只舍不入,返回指定日期模式截?cái)嗪蟮牡谝惶?#xff1b;

next_day(d,day):下周周幾的日期

extract:計(jì)算年份差:

--日期函數(shù)

select add_months(sbirth,-3) from java0322;--月份偏移3月,可以是負(fù)數(shù),也就是向前偏移

select extract(year from sysdate) from dual;--截取當(dāng)前時(shí)間的年份

select sname,extract(year from sysdate) - extract(year from sbirth) from java0322;--計(jì)算年紀(jì)

6、轉(zhuǎn)換函數(shù):

to_char:按照指定的格式轉(zhuǎn)化字符串;

to_date:將字符串轉(zhuǎn)化為日期;

to_number:將數(shù)字字符串轉(zhuǎn)化為數(shù)字;----可以實(shí)現(xiàn)直接在sql語句中進(jìn)行格式的轉(zhuǎn)換

--轉(zhuǎn)換函數(shù)(字符串,格式)

Select TO_CHAR(0.123,'$0.9999') FROMDUAL;--字符串轉(zhuǎn)日期

select to_date ('2005-02-28','yyyy-mm-dd') fromdual;--字符串轉(zhuǎn)數(shù)字

select to_number('20') from dual;

其他函數(shù):

nvl:isnull,不為空時(shí)為本身,為空時(shí)指定0;

nvl2:不為空時(shí)指定值2,為空時(shí)指定值3;

NullIF:相等時(shí)為空,否則為前者

--查詢員工表的所有人的姓名,工資+獎(jiǎng)金(獎(jiǎng)金沒有的時(shí)候,由null轉(zhuǎn)為0)---nvl轉(zhuǎn)換空值的函數(shù)

select ename,sal+nvl(comm,0)as sal from emp;--當(dāng)空為0,不為空為comm

select ename,sal+nvl2(comm,10000,0) from emp;---不為空時(shí)10000,為空時(shí)0;

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

7、分組函數(shù):

基于一組行來返回結(jié)果;

avg、min、max、sum、count

8、分析函數(shù):

根據(jù)一組行來計(jì)算聚合值;用于計(jì)算完成聚集的累計(jì)排名、移動(dòng)平均數(shù)等;

row_number:返回連續(xù)的排位,不論值是否相等;

rank:具有相等值的行排位相同,序數(shù)隨后跳躍;

dense_rank:具有相等值的行排位相同,序號(hào)是連續(xù)的

--排位

select empno,ename,job,sal,row_number()over (order by sal desc) as numm from emp; --返回連續(xù)的排位,不論值是否相等12345

select empno,ename,job,sal,rank()over (order by sal desc) as numm from emp; --相等值的行排位相同,序號(hào)隨后跳躍;12245

select empno,ename,job,sal,dense_rank()over (order by sal desc) as numm from emp; --相等值的行排位相同,序號(hào)是連續(xù)的;12234

內(nèi)容來源于網(wǎng)絡(luò)如有侵權(quán)請(qǐng)私信刪除

總結(jié)

以上是生活随笔為你收集整理的不入oracle数据库,Oracle数据库之操作符及函数的全部內(nèi)容,希望文章能夠幫你解決所遇到的問題。

如果覺得生活随笔網(wǎng)站內(nèi)容還不錯(cuò),歡迎將生活随笔推薦給好友。