標籤:between 忽略 to_date 分組函數 結果 orm 條件運算式 ... 包含
查詢:欄位select 欄位1,欄位2,欄位3 from表名 where 條件
“+”號:只用於數值計算 select 1+2或select 1+‘2’
“CONCAT”:用於連接字串CONCAT(字元1,字元2) ,如select concat(1,2)查詢結果為12.CANCAT函數中若有NULL參數,則結果為NULL。
"IFNULL" :給NULL指定預設值,文法IFNULL(欄位,預設值) 如select ifnull(null,0);再如select CONCAT(字元1,IFNULL(字元2,0)) from 表名。
條件查詢
條件運算式:<、>、=、<>(也可以是!=)、<=、>=、<=>(安全等於,可以判斷null值)
邏輯運算子:&&、||、!;一般使用and、or、not代替
模糊查詢:like、between and 、in/not in、is null、is not null
like一般跟萬用字元%(任意多個字元包含零個)、_(任意單個字元匹配)。萬用字元可以前面加“\”進行轉義,也可以用escape申明轉義符號。
between and可以提高條件查詢的簡潔度,包含臨界值,不可交換條件的順序(一般小的在前,大的在後)
order by :order by 關鍵字 asc/desc 預設按照asc(升序)
常見函數
字元函數:length(欄位)、concat(欄位1,欄位2,...)、upper(欄位)、lower(欄位)、substr(求子字串,sql中索引從1開始)、instr(欄位、字串)、trim(字元 from 欄位)、rpad(欄位、長度、字元)右填充、lpad(欄位、長度、字元)左填充
數學函數:round四捨五入、ceil向上取整、floor向下取整、truncate截取、mod求餘(mod(a,b)<=>a-a/b*b)
日期函數:now()返回目前時間(日期+時間)、curdate()當前日期、curtime()目前時間、year(date)、month(date)、monthname(date)、day(date)、hour(date)、minute(date)、second(date)、str_to_date、date_format、datedif(date1,date2)
系統函數:version()目前的版本、database()當前資料庫、user()當前資料庫
流程式控制制函數:if(運算式,值1,值2)、case 運算式或欄位 when 常量1 then 值或語句 when 常量1 then 值或語句 else 值或語句、case when 運算式1 then 值或語句 case when 運算式2 then 值或語句 else 值或語句。
分組函數:sum(欄位)求和、avg(欄位)平均值、max(欄位)、min(欄位)、count(欄位)。這些分組函數都會忽略計算null值。在innodb儲存引擎下,count(*)或count(1)的效率要比count(欄位)的效率高。
mysql查詢基礎