SQL NULL 值
如果表中的某個(gè)列是可選的,那么我們可以在不向該列添加值的情況下插入新記錄或更新已有的記錄。這意味著該字段將以 NULL 值保存。
NULL 值的處理方式與其他值不同。
NULL 用作未知的或不適用的值的占位符。
注釋?zhuān)簾o(wú)法比較 NULL 和 0;它們是不等價(jià)的。
無(wú)法使用比較運(yùn)算符來(lái)測(cè)試 NULL 值,比如 =, <, 或者 <>。
--------------->mysql中ifnull的用法
SELECT ProductName,UnitPrice*(UnitsInStock+IFNULL(UnitsOnOrder,0)) FROM Products
或者
SELECT ProductName,UnitPrice*(UnitsInStock+COALESCE(UnitsOnOrder,0)) FROM Products
-------------------------------------------------------------------------------------------------------------------------------------------------------
各種函數(shù)的應(yīng)用
count(*)和count(column)的區(qū)別是后者會(huì)忽略null的選項(xiàng)。
在用sum函數(shù)的時(shí)候通常要和group by 結(jié)合使用.當(dāng)然,group by 后面可以跟多個(gè)列。
SELECT Customer,OrderDate,SUM(OrderPrice) FROM Orders GROUP BY Customer,OrderDate
切記:group by一般要和聚合函數(shù)結(jié)合使用,否則就沒(méi)什么意義,并且假如只有g(shù)roup by沒(méi)有什么聚合函數(shù),那么查出的記錄會(huì)丟失一部分。
在group by分組后每個(gè)分組對(duì)應(yīng)1個(gè)count();
-----------------------------------------------------------------------------------------------------------------------------------
sql中having子句的應(yīng)用,因?yàn)閣here關(guān)鍵字無(wú)法與合計(jì)函數(shù)一起使用,Having函數(shù)代替了where函數(shù).
例如我們需要查找訂單總額大于2000的用戶(hù)...
SELECT Customer,SUM(OrderPrice) FROM Orders GROUP BY Customer HAVING SUM(OrderPrice)<2000
當(dāng)然,where無(wú)法使用是指,不能放到group by 子句后面,可以如下使用
select Customer ,SUM(OrderPrice) from Orders wherr customer ='A' or customer ='B' group by customer having sum(orderprice) >1500
------------------------------------------------------------------------------------------------------------------------------------
ucase,lcase將數(shù)據(jù)表中的某列置為大寫(xiě)或者小寫(xiě)
select ucase(firstname) as u_name from person;
-----------------------------------------------------------------------------------------------------------------------------------
mid函數(shù)用于從文本字段中截取字符串,比如 mid(firstname,start[,end]);其中start,end可以隨便寫(xiě),或者返回?cái)?shù)據(jù)或者返回空,不會(huì)報(bào)錯(cuò)。
假如想提取第二個(gè)字段,可以這么寫(xiě),mid(firstname,2,2);返回來(lái)就是第二個(gè)字符。
SELECT MID(column_name,start[,length]) FROM table_name
select mid(firstname ,1,3) from person;
-----------------------------------------------------------------------------------------------------------------------------------
LEN 函數(shù)返回文本字段中值的長(zhǎng)度。
select len(firstname) from person;
----------------------------------------------------------------------------------------------------------------------------------
ROUND 函數(shù)用于把數(shù)值字段舍入為指定的小數(shù)位數(shù)。
? select customer ,round(orderprice,0) from orders ;意思是要把訂單金額保留整數(shù)。
-------------------------------------------------------------------------------------------------------------------------------------------------------
NOW 函數(shù)返回當(dāng)前的日期和時(shí)間。
select now() as perDate from person ;
----------------------------------------------------------------------------------------------------------------------------------
FORMAT 函數(shù)用于對(duì)字段的顯示進(jìn)行格式化。---->format(column,format)其中兩個(gè)參數(shù)是必須的。
SELECT ProductName, UnitPrice, FORMAT(Now(),'YYYY-MM-DD') as PerDate FROM Products。
---------------------------------------------------------------------------------------------------------------------------------- ?
?
更多文章、技術(shù)交流、商務(wù)合作、聯(lián)系博主
微信掃碼或搜索:z360901061

微信掃一掃加我為好友
QQ號(hào)聯(lián)系: 360901061
您的支持是博主寫(xiě)作最大的動(dòng)力,如果您喜歡我的文章,感覺(jué)我的文章對(duì)您有幫助,請(qǐng)用微信掃描下面二維碼支持博主2元、5元、10元、20元等您想捐的金額吧,狠狠點(diǎn)擊下面給點(diǎn)支持吧,站長(zhǎng)非常感激您!手機(jī)微信長(zhǎng)按不能支付解決辦法:請(qǐng)將微信支付二維碼保存到相冊(cè),切換到微信,然后點(diǎn)擊微信右上角掃一掃功能,選擇支付二維碼完成支付。
【本文對(duì)您有幫助就好】元
