真实的国产乱ⅩXXX66竹夫人,五月香六月婷婷激情综合,亚洲日本VA一区二区三区,亚洲精品一区二区三区麻豆

成都創(chuàng)新互聯(lián)網(wǎng)站制作重慶分公司

SQL基礎(chǔ)之單行函數(shù)(七)

單行 SQL 函數(shù)有如下幾個(gè)分類:

創(chuàng)新互聯(lián)堅(jiān)持“要么做到,要么別承諾”的工作理念,服務(wù)領(lǐng)域包括:成都網(wǎng)站建設(shè)、網(wǎng)站制作、企業(yè)官網(wǎng)、英文網(wǎng)站、手機(jī)端網(wǎng)站、網(wǎng)站推廣等服務(wù),滿足客戶于互聯(lián)網(wǎng)時(shí)代的滴道網(wǎng)站設(shè)計(jì)、移動媒體設(shè)計(jì)的需求,幫助企業(yè)找到有效的互聯(lián)網(wǎng)解決方案。努力成為您成熟可靠的網(wǎng)絡(luò)建設(shè)合作伙伴!

  • 字符函數(shù)

  • 數(shù)字函數(shù)

  • 使用日期

  • 日期函數(shù)

函數(shù)的使用原來說白了就是在函數(shù)使用過程中加入符合定義的參數(shù),然后執(zhí)行函數(shù)就能輸出結(jié)果值了。

SQL 基礎(chǔ)之單行函數(shù)(七)

單行函數(shù)和多行函數(shù)的區(qū)別:

  • 單行函數(shù)每行輸出為一個(gè)結(jié)果

  • 多行函數(shù)每組行輸出為一個(gè)結(jié)果

單行函數(shù):

操作數(shù)據(jù)對象

接受函數(shù)返回一個(gè)結(jié)果

只對一行進(jìn)行變換

每行返回一個(gè)結(jié)果

可以轉(zhuǎn)換數(shù)據(jù)類型,計(jì)算,格式化

可以嵌套

參數(shù)可以是列、值或表達(dá)式

function_name [(arg1, arg2,...)]

SQL 基礎(chǔ)之單行函數(shù)(七)

字符函數(shù):

1、大小寫轉(zhuǎn)換函數(shù):LOWER、UPPER、INITCAP

這些函數(shù)轉(zhuǎn)換字符串的大小寫:

        函數(shù)結(jié)果
LOWER('SQL Course')結(jié)果全部是小寫
UPPER('SQL Course')結(jié)果全部是大寫
INITCAP('SQL Course')結(jié)果首字符大寫

1.1、例如顯示員工Walsh的員工編號,并且名字為小寫:

select lower(last_name),employee_id from employees where last_name='Walsh';

SQL 基礎(chǔ)之單行函數(shù)(七)

1.2、例如顯示員工Walsh的工資,并且名字為大寫:

select upper(first_name),salary from employees where first_name='Kevin';

SQL 基礎(chǔ)之單行函數(shù)(七)

1.3、顯示Kevin的last_name 、工資job_id 首字母大寫

select initcap(job_id), last_name,salary from employees where first_name='Kevin';

SQL 基礎(chǔ)之單行函數(shù)(七)

1.4、從員工表中檢索FIRST_NAME和LAST_NAME值,并且FIRST_NAME包含字符串“l(fā)i”

select first_name,last_name from employees where lower(first_name) like '%li%'; 

SQL 基礎(chǔ)之單行函數(shù)(七)

2、字符處理函數(shù):CONCAT、SUBSTR、LENGTH、INSTR、LPAD | RPAD、TRIM、REPLACE

名字函數(shù)結(jié)果 
連接函數(shù)CONCAT('Hello', 'World')HelloWorld
字符截取函數(shù)SUBSTR('HelloWorld',1,5)截取從1-5個(gè)字符Hello
字符串統(tǒng)計(jì)長度LENGTH('HelloWorld')10 
查找字符位置函數(shù)INSTR('HelloWorld', 'W')
前填充函數(shù)LPAD(salary,10,'*')*****24000
后填充函數(shù)
RPAD(salary, 10, '*')24000*****
替換函數(shù)

REPLACE ('JACK and JUE','J','BL')

BLACK and BLUE 
字符剪切函數(shù)TRIM('H' FROM 'HelloWorld')elloWorld 

2.1、將員工的first_name和last_name拼接在一起顯示,并查找工資大于5000的員工信息

select concat(first_name,last_name) name, employee_id,salary from employees  where salary>5000 order by salary desc;

SQL 基礎(chǔ)之單行函數(shù)(七)

2.1.1、單獨(dú)制造一個(gè)列信息,顯示為****** infor的顯示員工工資大于10000的信息

select concat('*******','information') infor , job_id ,salary from employees where salary > 10000;

SQL 基礎(chǔ)之單行函數(shù)(七)

2.1.2、由下圖可知,concat函數(shù)只能拼接兩列字符信息,到第三列就開始報(bào)錯(cuò)了

SQL 基礎(chǔ)之單行函數(shù)(七)

2.2.1、截取員工名字前3個(gè)字母,并找到工資大于10000的員工名字

select substr(first_name,1,3) fname, salary from employees where salary >10000;

SQL 基礎(chǔ)之單行函數(shù)(七)

2.2.2、查看工資大于10000員工的名字長度

select length(last_name),salary from employees where salary >10000;

SQL 基礎(chǔ)之單行函數(shù)(七)

2.3.1、查找Ellen用戶 l在第幾個(gè)位置。

select instr(first_name,'l'),salary from employees where first_name='Ellen';

SQL 基礎(chǔ)之單行函數(shù)(七)

2.3.2、查找job_id 從第4位截取為REP的。

select instr(first_name,'a'),salary,job_id from employees where substr(job_id,'4') ='REP';

SQL 基礎(chǔ)之單行函數(shù)(七)

2.4.1、將工資設(shè)置為5位長度,不夠的用*號前填充

select first_name,lpad(salary,5,'*') from employees;

SQL 基礎(chǔ)之單行函數(shù)(七)

2.5.1、查找工資顯示10位,不足的用*號后填充

select first_name,rpad(salary,10,'*') from employees;

SQL 基礎(chǔ)之單行函數(shù)(七)

2.6.1、將員工名字開頭為B的變成JC開頭。

select replace(first_name,'B','JC'),salary from employees order by first_name;

SQL 基礎(chǔ)之單行函數(shù)(七)

2.7.1、將員工姓名首字母為A的,去掉A

select trim('A' from first_name),salary from employees order by first_name;

SQL 基礎(chǔ)之單行函數(shù)(七)

2.8 查看job_id第四位開始是REP的,查看first_name a在第幾位置

select employee_id,concat(first_name,last_name)  Name,job_id,length(first_name),instr(first_name,'a') "contains 'a'?"

from employees where substr(job_id,4) = 'REP';

SQL 基礎(chǔ)之單行函數(shù)(七)

2.9、公司計(jì)劃給每名員工印制含有員工姓名的紀(jì)念品,為保持整體美觀程度,現(xiàn)在要求員工的全名在

16個(gè)字符內(nèi)。當(dāng)員工的FIRST_NAME和LAST_NAME的合并長度超過15個(gè)字符時(shí),顯示員工學(xué)名,。員

工的名稱由FIRST_NAME的首字母和LAST_NAME的前14個(gè)字符組成。

【解題思路】首先確定where條件限制FIRST_NAME和LAST_NAME的合并長度超過15的員工進(jìn)行過

濾,然后在SELECT 子句后面使用字符函數(shù)進(jìn)行處理。

  select first_name,last_name,substr(first_name,1,1)||' '||substr(last_name,1,14) format_name from employees where length(first_name)+length(last_name) >15;

SQL 基礎(chǔ)之單行函數(shù)(七)

數(shù)值函數(shù)

函數(shù)示例結(jié)果
ROUND:四舍五入到到指定的十進(jìn)制值
ROUND(45.926, 2)45.93
TRUNC:將數(shù)字截尾取整TRUNC(45.926, 2)45.92
MOD:返回余數(shù)
MOD(1600, 300)100

這里使用DUAL來測試,這是一個(gè)‘偽表’,可以用來測試函數(shù)和表達(dá)式

1、測試round函數(shù)三種方式

select round(45.9234,2),round(45.923,0),round(45.923,-1) from dual;

select round(45.9259,2),round(45.623,0),round(45.923,-1) from dual;

通過上面兩個(gè)語句測試可知:

第一個(gè)為在小數(shù)點(diǎn)右側(cè)截取2位,如果第三位是5就四舍五入

第二個(gè)為標(biāo)準(zhǔn)小數(shù)點(diǎn)右側(cè)第一位進(jìn)行四舍五入

第三個(gè)為小數(shù)點(diǎn)左側(cè)進(jìn)行四舍五入,不夠進(jìn)變成0,比如round(43.923,-1),結(jié)果變成40

SQL 基礎(chǔ)之單行函數(shù)(七)

SQL 基礎(chǔ)之單行函數(shù)(七)

2、測試trunc函數(shù)三種方式

SELECT TRUNC(45.923,2), TRUNC(45.923),TRUNC(45.923,-1) FROM DUAL;

SQL 基礎(chǔ)之單行函數(shù)(七)

SELECT TRUNC(45.923,2), TRUNC(45.923),TRUNC(39.923,-1) FROM DUAL;

SQL 基礎(chǔ)之單行函數(shù)(七)

SELECT TRUNC(45.923,2), TRUNC(45.923),TRUNC(39.923,-2) FROM DUAL;

SQL 基礎(chǔ)之單行函數(shù)(七)

命令分別為指定截取位數(shù)2位,默認(rèn)截取小數(shù)點(diǎn)位右側(cè)刪除掉,刪除掉小數(shù)點(diǎn)左側(cè)第一位變成0

當(dāng)為-3的時(shí)候就表示截取3位,直接變成0

3、測試mod函數(shù)查詢銷售部門的工資與5000取余數(shù)

select last_name,salary,mod(salary,5000) from employees where job_id='SA_REP';

SQL 基礎(chǔ)之單行函數(shù)(七)

日期函數(shù)

  Oracle內(nèi)部使用數(shù)字存儲日期: 世紀(jì),年,月,日,小時(shí),分鐘,秒

  默認(rèn)的日期顯示格式為DD-MON-RR

– 可以只指定年的后兩位,允許存儲21世紀(jì)日期在21世紀(jì)中

– 同樣,允許存儲20世紀(jì)的日期在21世紀(jì)中

RR 日期格式

當(dāng)前年
指定日期RR格式YY格式
199527-OCT-9519951995
199527-OCT-1720171917
200127-OCT-1720172017
200127-OCT-9519952095

使用 SYSDATE  函數(shù)

SYSDATE 函數(shù)返回:

  日期

  時(shí)間

select  sysdate from dual;

SQL 基礎(chǔ)之單行函數(shù)(七)

日期的算術(shù)運(yùn)算

 在日期上加上或減去一個(gè)數(shù)字結(jié)果仍為日期。

  • 兩個(gè)日期相減返回日期之間相差的天數(shù)。

  • 可以用小時(shí)數(shù)除以24,可以加小時(shí)到日期上。

1、查詢90部門的員工都入職多少個(gè)星期了

select last_name,(sysdate-hire_date)/7 as weeks from employees where department_id=90;

SQL 基礎(chǔ)之單行函數(shù)(七)

2、查詢30部門的員工都入職多少個(gè)月了

select first_name,(sysdate-hire_date)/30 month from employees where department_id=30;

SQL 基礎(chǔ)之單行函數(shù)(七)

日期操作函數(shù)

函數(shù)含義結(jié)果
MONTHS_BETWEEN ('01-SEP-95','11-JAN-94')兩個(gè)日期相差的月數(shù) 19.6774194
ADD_MONTHS  ('06-MAR-17',1)向指定日期中加上若干月數(shù)06-APR-17
NEXT_DAY ('01-SEP-95','FRIDAY')指定日期的下一個(gè)日期

08-SEP-95

LAST_DAY ('01-SEP-95')本月的最后一天30-SEP-95
假設(shè)當(dāng)前為  SQL 基礎(chǔ)之單行函數(shù)(七)
ROUND (SYSDATE,'MONTH')日期四舍五入01-MAR-17
ROUND (SYSDATE ,'YEAR')日期四舍五入01-JAN-17
TRUNC (SYSDATE ,'MONTH')日期截?cái)?/td>01-MAR-17
TRUNC (SYSDATE ,'YEAR')日期截?cái)?/td>01-JAN-17

感覺上面這幾個(gè)不太對,現(xiàn)在還沒明白,回頭再說

1、查詢截至01-JAN-2012已入職100月的員工信息包含EMPLOYEES,LAST_NAME和HIRE_DATE字段

select last_name,hire_date,months_between('01-JAN-2012',hire_date) day from employees where months_between('01-JAN-2012',hire_date) >100;

SQL 基礎(chǔ)之單行函數(shù)(七)


網(wǎng)站題目:SQL基礎(chǔ)之單行函數(shù)(七)
瀏覽地址:http://weahome.cn/article/pgogij.html

其他資訊

在線咨詢

微信咨詢

電話咨詢

028-86922220(工作日)

18980820575(7×24)

提交需求

返回頂部