mysql基礎語法

2021-10-23 04:51:44 字數 3311 閱讀 3410

本質上這個是表示的是乙個欄位名

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 顯示當前伺服...