本質上這個是表示的是乙個欄位名
1,簡單函式
case col when value1 then resut1
when value2 then result2
when value2 then result3
else result
end name
表示的某個欄位的取值,若取到就返回對應的結果
2,搜尋函式
case when expr then result
when expr then result
when expr then result
else result
end表示的是某個判斷情況下然後返回某個結果
高階用法展示:
case co.course_name
when 『大學語文』 then
sc.scores
else
0end
if查詢:
if(condition,result1,result2) 可以巢狀使用
如果打算測試某個資料列是否包含null
if(isnull(expri1),expr2,expr1)
select *,if(sva=1,「男」,「女」) as ssva from taname where sva != 「」
select case sva when 1 then 『男』 else 『女』 end as ssva from taname where sva != 『』
case分支:
有兩種語法結構:
case expr
when var1 then result1
when var2 then result2
…else resultn
end這一種是先將expr做乙個if 條件判斷,若等於var1 那麼返回值為 result1
mariadb [information_schema]> select case @var when 1 then 「1」 when 2 then 『2』 when 3 then 『3』 end kk;
±-----+
| kk |
±-----+
| 3 |
±-----+
第二種語法結構:
case
when cond1 then result1
when cond1 then result2
else resultn
end每乙個condition 都是一種條件 ,如果條件成立,那麼返回對應的結果
mariadb [information_schema]> select case when 2>4 then 「1」 when 2>3 then 『2』 when 3 then 『3』 end kk;
±-----+
| kk |
±-----+
| 3 |
±-----+
1 row in set (0.01 sec)
總結: 0表示false 非零表示true
select now()
select curdate();
±-----------+
| curdate() |
±-----------+
| 2019-03-05 |
±-----------+
獲取時間的年份:month,hour
year();
將當前的日期轉化為自己想要的格式:
select date_format(『2017-04-21 10:20:09』,』%y-%m』)
將乙個字串日期轉化為標準的日期格式:
select str_to_date(『08/09/2008』, 『%m/%d/%y』); – 2008-08-09
當前的時間往前推7天:
select date_sub(curdate(),interval 7 day);
時間往前推30天
select date_sub(curdate(), interval 30 day);
往前推月份
select date_sub(curdate(), interval 4 month);
往前推年份:
select date_sub(curdate(), interval 1 year);
某個時間點往前推年份:
select date_sub(『2018-01-21 10:20:09』, interval 1 year);
時間段檢視6個月內的資料
addedtime between date_sub(now(),interval 6 month) and now();
檢視指定時間段的資料:
where addedtime between 『2017-1-1 00:00:00』 and 『2018-1-1 00:00:00』;
where addedtime >=『2017-1-1 00:00:00』 and addedtime < 『2018-1-1 00:00:00』;
檢視6個月內的資料
addedtime between date_sub(now(),interval 6 month) and now();
檢視指定時間段的資料:
where addedtime between 『2017-1-1 00:00:00』 and 『2018-1-1 00:00:00』;
where addedtime >=『2017-1-1 00:00:00』 and addedtime < 『2018-1-1 00:00:00』;
返回兩個日期之間的天數:
select datediff(『2019-12-31』,『2019-3-5』); 後面的時間減去前面的時間。
對應的 返回時間差 timediff 最多24個小時
datetime 占用8位元組的顯示範圍為:
1000-01-01 00:00:00 到 9999-12-31 23:59:59
date 占用3位元組 顯示範圍為:
1000-01-01 9999-12-31
timestamp和datetime的顯示的效果是一樣的,但是占用4個位元組
顯示範圍為:
1970-01-01 00:00:00 到 2038-01-19 03:14:07
日期和時間戳還有的不同的是:
在建表時,時間戳可以設定乙個預設值,而日期不行
在修改時,時間戳的列自動更新為乙個當前的時間
year型別占用1位元組
time占用3位元組
顯示的範圍為:
-839:59:59 ~ 838:59:59
time不僅可以儲存時間,還可以來儲存時間間隔
mysql基礎語法演示 mysql基礎語法
1 ddl 增刪改查 1 select 獲取資料 select from 表名 where 條件 2 update 更新資料 update 表名 set 欄位名 值,欄位名 值 where 條件 3 delete 刪除資料 delete from 表名 where 條件 4 insert into ...
mysql 語法入門 mysql基礎語法
1 dml 增刪改查 1 select 獲取資料 select from 表名 where 條件 2 update 更新資料 update 表名 set 欄位名 值,欄位名 值 where 條件 3 delete 刪除資料 delete from 表名 where 條件 4 insert into ...
mysql基礎語法
連線伺服器 mysql h host u user p 連線伺服器 建立資料庫 show databases 顯示當前伺服器上有什麼伺服器 use databasename 選擇資料庫 create database databasename 建立資料庫 建立表 show tables 顯示當前伺服...