SQL數學函數學習

筆記來自如鵬網楊中科老師所著的 《程序員的SQL金典》

#建立數據庫表 CREATE Table T_Person ( FIdNumber VARCHAR(
20), FName varchar(20), FBirthDay DateTime, FRegDay DateTime, FWeight DECIMAL(10,2) ) #插入數據 insert into T_Person(FidNumber,FName,FBirthDay,FRegDay,FWeight) VALUES('123456789120','Tom','1981-03-22','1998-05-01',56.67); insert into T_Person(FidNumber,FName,FBirthDay,FRegDay,FWeight) VALUES('123456789121','Jim','1987-01-18','1999-08-21',36.17); insert into T_Person(FidNumber,FName,FBirthDay,FRegDay,FWeight) VALUES('123456789122','Lily','1987-11-08','2001-09-18',40.33); insert into T_Person(FidNumber,FName,FBirthDay,FRegDay,FWeight) VALUES('123456789123','Kelly','1982-07-12','2000-03-01',46.23); insert into T_Person(FidNumber,FName,FBirthDay,FRegDay,FWeight) VALUES('123456789124','Sam','1983-02-16','1998-05-01',48.68); insert into T_Person(FidNumber,FName,FBirthDay,FRegDay,FWeight) VALUES('123456789125','Kerry','1984-08-07','1999-03-01',66.67); insert into T_Person(FidNumber,FName,FBirthDay,FRegDay,FWeight) VALUES('123456789126','Smith','1980-01-09','2002-09-23',51.28); insert into T_Person(FidNumber,FName,FBirthDay,FRegDay,FWeight) VALUES('123456789127','BillGates','1972-07-18','1995-06-19',60.32); #1、求絕對值: MySQL 、 MSSQL Server 都適合 #ABS(X)函數,該函數接受一個參數。 select FWeight-50,ABS(FWeight-50),ABS(-5.38) FROM T_Person #2、求指數: MySQL 、 MSSQL Server 都適合 #POWER(X,Y)函數,該函數接受兩個參數。 第一個參數爲待求冪的表達式,第二個參數爲冪。 select FWeight ,Power(FWeight,-0.5),POWER(FWeight,2),POWER(FWeight,3),POWER(FWeight,4) from T_Person #3、求平方根: MySQL 、 MSSQL Server 都適合 #SQRT(X) 函數。該函數接受一個參數。這個參數爲待計算平方根的表達式。 select FWeight,SQRT(FWeight) from T_Person #4、求隨機數 #MySQL 中 Rand() 函數 select Rand() #MSSQL Server 中 Rand()函數。和MySQL使用方法同樣。可是還提供了一個參數 Rand(X) 這個參數爲隨機數種子。 select Rand(2017) #5、舍入到最大整數 ---- 取天花板數。 這個函數用來舍掉一個數的小數點後的部分,而且向上舍入到鄰近的最大的整數。好比 3.33 將被舍入爲 4 #MySQL 中 CEIL(X) 、 CEILING(X) 均可以 select FWeight,CEIL(FWeight) FROM T_Person select FWeight,CEILING(FWeight) from T_Person #MSSQL Server 中只支持 CEILING(X) select FWeight,CEILING(FWeight) from T_Person #6、舍入到最小整數 ---- 取地板數。 這個函數用來舍掉一個數的小數點後的部分,而且向下舍入到鄰近的最小的整數。好比 3.33 將被舍入爲 3 #MySQL 、 MSSQL Server 中 FLOOR(X)函數。 select FWeight,FLOOR(FWeight) from T_Person
#
7、四捨五入 ---- ROUND()函數將數值向最近的數值舍入。在英語中 ROUND 能夠理解爲「半徑」 ,舍入到「離我半徑最近的數」固然也就是四捨五入了。 #ROUND(X) ROUND(X,D)函數 該函數可接受一個 參數的,也可接受兩個參數的。 #1)、兩個參數的ROUND(X,D)函數 。 X爲待進行四捨五入的數值,而D爲計算精度, 也就是進行四捨五入時保留的小數位數。 當 D 爲 0 的時候則表示不保留小數位進行四捨五入。好比 3.663 進行精度爲2的四捨五入獲得 3.66。 當 D 爲 0 的時候則表示不保留小數位進行四捨五入。好比 3.663 進行精度爲 0 的四捨五入獲得 4 注意:D也能夠爲負數。這時表示在整數部分進行四捨五入 好比 233.7 進行精度爲-2 的四捨五入獲得 20036.63 進行精度爲-1 的四捨五入獲得 40select FName , FWeight ,ROUND(FWeight,1),ROUND(FWeight*-1,0),ROUND(FWeight,-1) from T_Person #2)、單一參數的ROUND(X)函數。 X 爲待進行四捨五入的數值,它能夠看作精度爲 0 的四捨五入運算, 也就是 ROUND(m,0) 好比 3.663 進行四捨五入獲得 4 select FName,FWeight,ROUND(FWeight),ROUND(FWeight*-1) FROM T_Person #8)、求正弦值: #SIN(X) 該函數接受一個參數。 select FName,FWeight, SIN(FWeight) from T_Person #9)、求餘弦值: #COS(X) 該函數接受一個參數。 select FName ,FWeight,COS(FWeight) from T_Person #10)、求反正弦值: #ASIN(X) 該函數接受一個參數。 select FName ,FWeight ,ASIN(1/FWeight) FROM T_Person #11)、求反餘弦值: #ACOS(X) 該函數接受一個參數。 SELECT FName ,FWeight ,ACOS(1/FWeight) FROM T_Person #12)、求正切值: #TAN(X) 該函數接受一個參數。 select FName ,FWeight ,TAN(FWeight) from T_Person #13)、求反正切值: #MySQL 中支持 ATAN(X) ATAN(X,Y) ATAN2(X,Y) 。後兩個的計算結果同樣。 #ATAN2(X,Y),函數返回 2 個變量 X 和 Y 的反正切 select FName ,FWeight ,ATAN(FWeight) from T_Person select FName ,FWeight ,ATAN(FWeight,2) from T_Person select FName ,FWeight ,ATAN2(FWeight,2) from T_Person #MSSQL Server 中 支持 ATAN(X) ATN2(X,Y) select FName ,FWeight ,ATAN(FWeight) from T_Person select FName ,FWeight ,ATN2(FWeight,2) from T_Person #14)、求餘切: #COT(X) 該函數接受一個參數。 select FName ,FWeight ,COT(FWeight) from T_Person #15)、求圓周率π值: #PI() 該函數不接受參數。 select FName ,FWeight ,FWeight*PI() from T_Person #16)、 弧度制轉換爲角度制: #DEGREES(X) 該函數接受一個參數。 角度制=弧度制*180/π select FName ,FWeight ,DEGREES(FWeight) from T_Person select FName ,FWeight ,(FWeight*180)/ACOS(-1) from T_Person #17)、角度制轉換爲弧度制: #RADIANS(X) 該函數接受一個參數。 弧度制=角度制*π/180 select FName ,FWeight ,RADIANS(FWeight) from T_Person select FName ,FWeight ,(FWeight*ACOS(-1))/180 from T_Person #18)、求符號: #SIGN(X) 該函數接受一個參數。 若是數值大於 0 則返回 1,若是數值等於 0 則返回 0,若是數值小於 0 則返回-1select FName ,FWeight-48.68 ,SIGN(FWeight-48.68) FROM T_Person #19)、求整除餘數: #MySQL中提供了MOD()函數 :用來計算兩個數整除後的餘數。第一個參數爲除數,第二個參數爲被除數。 select FName,FWeight,MOD(FWeight , 5) FROM T_Person #MSSQL Server不支持MOD()。 不過直接支持操做符 "%" 用來計算兩個數的整數餘數。 select FName ,FWeight , FWeight%5 from T_Person #20)、求天然對數: #MySQL中: #LOG(X) 該函數接受一個參數。 也接受兩個數的參數。 #LOG(B,X) B爲本身輸入的整數。 X爲待求的參數。 #MySQL支持以2爲底、以10爲底的,以任意本身輸入的爲底的對數。 select FName ,FWeight ,LOG(FWeight) from T_Person select FName ,FWeight ,LOG2(FWeight) from T_Person select FName ,FWeight ,LOG10(FWeight) from T_Person select FName ,FWeight ,LOG(2,FWeight) from T_Person #MSSQL Server中: #只支持LOG(X) 、LOG10(X) 爲底的對數。 select FName ,FWeight ,LOG(FWeight) from T_Person select FName ,FWeight ,LOG10(FWeight) from T_Person #21)、求冪: #POWER(X,Y) 該函數接受兩個參數 。X 爲次冪 Y 爲待求冪的字段 #MySQL 中 select FName , FWeight , POWER(2,FWeight) from T_Person select FName , FWeight , POW(2,FWeight) from T_Person #MSSQL Server 中支持 POWER(X,Y) select FName , FWeight , POWER(2,FWeight) from T_Person
相關文章
相關標籤/搜索