特殊字元 * 表示 所有列
使用* 和指定某個列 ,效能相同。
使用where 指定 要保留哪些行
判斷某個字段 是非為空 用 is null 或者 is not null 如:
mysql> select * from menpiao where logdate is null;
在使用 and 和or 的時候,可以使用圓括號作為乙個 整體的判斷。
在select查詢中使用指定列,可以不返回多餘的資料,在跨越網路的檢索中,能避免不需要的時間浪費。
可以使用as 改變列名。
select sal as salary from menpiao;
這將 sal 改新名 salary。 有些資料庫 接收 不用as 的方式 ,但是 所有資料庫都接受 使用as 的方式。
如何在where語句中使用別名的方法。
select * from(select sal as salary from menpiao) xwhere salary = 3000;
where子句 是在 select 之前處理的,所有在where 子句之前 salary 並不存在。要在where語句處理完之後,別名才能生效。
連線列值
mysql使用 concat 函式
select concat(name, ' phone number is ',phone) as content from menpiao_2015 where num='12'
使用case表示式直接在select語句中執行條件邏輯
select *,case when logdate < '2015-01-22 14:30' then 'zao' else 'chi' end as jieguo from menpiao_2015 where num = '12'
結果集如果沒有else,對於不滿足判斷條件的行,case表示式返回null。
限制返回行數
在oracle中,不能用 where rownum = 5 來返回第五行。
隨機返回n條記錄
mysql> select * from menpiao_2015order by rand()limit 5;
order by 子句可以接受函式的返回值,並使用它來改變結果集的次序。
查詢空值
必須使用 is null
null不能用 != 或者 = 來比較。必須使用is null 或者 is not null
select coalesce(comm,0) from emp;
當comm欄位為null時候,則返回0.
按模式搜尋
使用like 運算 和 % 萬用字元。
select name where name like '%er%';
% 匹配任意字串行
_ 匹配單一單個字元, 所以當需要匹配的字元中有_時,需要用轉移字元\
SQLCookbook 學習筆記
許多人以一種馬馬虎虎的態度在使用sql,根本沒有意識到自己掌握著多麼強大的 本書的目的是開啟讀者的視野,看看sql究竟能幹什麼。一鱗半爪 從資料庫中檢索資料看似是一件容易的事情,然而,在it世界裡,盡可能高效地檢索資料至關重要。讀完本書,你不應該覺得要將現在所有 重寫,而是要認識到,現在sql已經有...
SQLCookbook 學習筆記 5元資料查詢
元資料是關於資料的資料 列出所有的 表 select table name from information schema.tables 列出所有的列。select from information schema.columns 列出表的索引 show index from emp 列出表約束 se...
SQL cookbook學習筆記(六) 使用字串
length 表示字串長度 replace 單體替換 replace str1,str2,str3 說明 str3替換str1中出現的所有str2,返回新的字串,如果有某個引數為null,此函式返回null 該函式可以多次替換,只要str1中還有str2存在,最後都被替換成str3 若str3為空,...