取余數(shù)簡單就是%,比如select
站在用戶的角度思考問題,與客戶深入溝通,找到江達(dá)網(wǎng)站設(shè)計與江達(dá)網(wǎng)站推廣的解決方案,憑借多年的經(jīng)驗(yàn),讓設(shè)計與互聯(lián)網(wǎng)技術(shù)結(jié)合,創(chuàng)造個性化、用戶體驗(yàn)好的作品,建站類型包括:成都做網(wǎng)站、成都網(wǎng)站建設(shè)、企業(yè)官網(wǎng)、英文網(wǎng)站、手機(jī)端網(wǎng)站、網(wǎng)站推廣、申請域名、虛擬主機(jī)、企業(yè)郵箱。業(yè)務(wù)覆蓋江達(dá)地區(qū)。
3%2
from
dual;
那么得到的結(jié)果就是1.
不過我沒想明白,假如13-01的數(shù)據(jù)很大,12-01的數(shù)據(jù)很小,13-01的數(shù)據(jù)達(dá)到了12-01的二倍甚至更多唄,那么這個余數(shù)有什么意義呢?
你應(yīng)該是想要減法吧。
3^5=243,除以5余數(shù)是3。3^6=729,除以5余數(shù)是4。3^7=2187,除以5余數(shù)是2。這樣已經(jīng)可以看出來規(guī)律,3的n次方除以5的余數(shù),呈現(xiàn)周期性,3、4、2、1,周期是4。
1、因?yàn)閛racle運(yùn)行在Linux系統(tǒng)下,首先,要連接Linux系統(tǒng)。
2、連上后,進(jìn)行oracle控制臺。輸入命令: sqlplus ?/ as sysdba;
3、在sql命令行,輸入:
SELECT UPPER(F.TABLESPACE_NAME) "表空間名",D.TOT_GROOTTE_MB "表空間大小(M)",D.TOT_GROOTTE_MB - F.TOTAL_BYTES "已使用空間(M)",
TO_CHAR(ROUND((D.TOT_GROOTTE_MB - F.TOTAL_BYTES) / D.TOT_GROOTTE_MB * 100,2),'990.99') || '%' "使用比",F.TOTAL_BYTES "空閑空間(M)",F.MAX_BYTES "最大塊(M)"
FROM (SELECT TABLESPACE_NAME,ROUND(SUM(BYTES) / (1024 * 1024), 2) TOTAL_BYTES,ROUND(MAX(BYTES) / (1024 * 1024), 2) MAX_BYTES,
FROM SYS.DBA_FREE_SPACE,GROUP BY TABLESPACE_NAME) F,
(SELECT DD.TABLESPACE_NAME,ROUND(SUM(DD.BYTES) / (1024 * 1024), 2) TOT_GROOTTE_MB,
FROM SYS.DBA_DATA_FILES DD,GROUP BY DD.TABLESPACE_NAME) D,
WHERE D.TABLESPACE_NAME = F.TABLESPACE_NAME,ORDER BY 1;
4、這樣就可以查看到相應(yīng)結(jié)果。 完成效果圖。
mod(x,y)函數(shù)的意義是 求x除以y的余數(shù),例如mod(5,2)=1,5除以2余1,mod(2,2)=0, 2除以2等于1余數(shù)是0,所以答案是0,這個程序塊就是利用這樣的求余的原理來循環(huán)判斷1-100之間的偶數(shù),凡是能被2除盡的就是偶數(shù)。
代碼中FOR循環(huán)100次,i從100開始反向循環(huán),99,98··以此類推到1截止退出循環(huán)。
if mod(i,2)=0 --
mod(i,2)=0的意思是i除以2無余數(shù),如果無余數(shù),則說明i是偶數(shù)(只有偶數(shù)除以2才能除盡)。
then s:=s+i; --
那么變量s加上這個偶數(shù)i變成新的s,進(jìn)入到下一個循環(huán)判斷,若非偶數(shù)直接進(jìn)入下個循環(huán),若為偶數(shù)s的值累加,直到循環(huán)結(jié)束,100以內(nèi)所有的偶數(shù)累加成為最終的變量S。
1. 查看所有表空間大小\x0d\x0aSQL select tablespace_name,sum(bytes)/1024/1024 || 'M' from dba_data_files\x0d\x0a group by tablespace_name;\x0d\x0a2. 已經(jīng)使用的表空間大小\x0d\x0aSQL select tablespace_name,sum(bytes)/1024/1024 || 'M'\x0d\x0a from dba_free_space\x0d\x0a group by tablespace_name;\x0d\x0a3. 所以使用空間可以這樣計算\x0d\x0aselect a.tablespace_name,total,free,total-free used from\x0d\x0a( select tablespace_name,sum(bytes)/1024/1024 || 'M'\x0d\x0a total from dba_data_files\x0d\x0agroup by tablespace_name) a, \x0d\x0a( select tablespace_name,sum(bytes)/1024/1024|| 'M' free from dba_free_space\x0d\x0agroup by tablespace_name) b\x0d\x0awhere a.tablespace_name=b.tablespace_name;\x0d\x0a\x0d\x0a4. 下面這條語句查看所有segment的大小。\x0d\x0aSelect Segment_Name,Sum(bytes)/1024/1024 From User_Extents Group By Segment_Name\x0d\x0a5. 還有在命令行情況下如何將結(jié)果放到一個文件里。\x0d\x0aSQL spool out.txt\x0d\x0aSQL select * from v$database;\x0d\x0aSQL spool off
問題結(jié)論沒這么簡單,把75改12同樣執(zhí)行結(jié)果會是12。
本質(zhì)原因在于無限小數(shù),當(dāng)兩個日期在做減法時,已經(jīng)觸發(fā)了無限循環(huán)小數(shù)。
倘若此時不使用 to_number,那我們可以將兩個日期的差理解為是一個分?jǐn)?shù)形式。
而使用了to_number就不同了,number類型本身是有容量的,無限循環(huán)小數(shù)轉(zhuǎn)為number類型,會被強(qiáng)制截斷小數(shù)位,搖身一變成了有限小數(shù)。
MOD是用來取余的,沒有to_number運(yùn)算中就沒有舍小數(shù)位的概念,20100跟75取余為0。
使用了to_number后,就不再是20100跟75取余了,而變成了一個無限接近且小于20100的數(shù)據(jù)再跟75取余,這樣的計算結(jié)果就不可控了。
不可控的原因在于計算機(jī)本質(zhì)采用的是二進(jìn)制數(shù)據(jù)處理方式,在計算浮點(diǎn)數(shù)的時候有先天缺陷。