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

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