SQLCookbook 學習筆記 1檢索記錄

2021-06-28 18:56:18 字數 1488 閱讀 5769

特殊字元 * 表示 所有列

使用* 和指定某個列 ,效能相同。

使用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為空,...