1.() 的用法
2.not 的用法
where end
isnull
andnot (title = 'hello');
dept_id = (select dept_id from department where name = 'loans')
date
between '2005-01-01' and '2005-12-31';
1.between 條件包含前後值,例如上面包含2005-01-01 當天和2005-12-31 當天。
2.如果between 前面的值比後面的值大,查詢時不會報錯而是返回空集。
3.字串也可以當作範圍來使用。
比如:select * from account where product_cd = 'a'
or product_cd = 'b'
or product_cd = 'd';
可以採用:
where product_cd in ('a','b','c');
處理部分字串匹配問題:比如可以找到以t開頭的字串或者以b結尾的字串
... where left(lname,1) = 't' or right(lname,1) = 'b';
_ : 乙個字元
% : 任意數目的字元(包含0個字元)
where lname regexp '^[fg]';以字元f或者g開頭。
1.
null 表示值的缺失
沒有合適的值、值為確定、值為定義。
2.表示式的值可以為null,但是不能等於null。一般採用 is
null/ is
notnull;
3.兩個null值不能彼此判斷為相等。
1.select e.lname,d.name from employee e join department d;
多表連線如果沒有明確指出如何連線,預設採用內鏈結。
沒有明確指出連線條件,結果返回笛卡爾積。也就是說兩張表所有置換,若employee 有5條資訊,department 表有3條資訊,那麼結果會返回 5 * 3 = 15 條結果。
select e.fname,e.lname,d.name from employee e inner join department d on
e.dept_id = d.dept_id;
如果乙個表中的dept_id 列中存在某個值,但是該值在另乙個表中的dept_id中不存在,那麼相關行就會連線失敗。在結果集中值存在兩表相互存在的行資料。
內鏈結是查詢交叉部分的資料,假如連線條件為a.bid = b.id 那麼結果中只會出現,a.bid 的值既存在a表中也存在b表中的資料。
如果想要顯示在a.bid 存在於a表中的值,但是不存在b表中的值的行,可以採用外連線 outer join ... on...
1.連線條件 on 後面的條件
2.過濾條件 where 後面的條件
select a.account_id,a.cust_id,a.open_date,a.product_cd from account a inner
join employee e on a.open_emp_id = e.emp_id inner
join branch b on e.assigned_branch_id = b.branch_id where e.start_date < '2007-01-01'
and (e.title = 'taller'
or e.title = 'head teller') and b.name = 'woburn branch';
sql 是一種非過程化的語言,也就是說只需要描述要獲取的資料物件,而如何以最好的方式執行查詢則由資料庫伺服器負責,伺服器根據所收集的資料庫物件資訊,在多表中選擇乙個作為開始點(驅動表),然後確定連線其它表的順序。、
from字句各表出現的順序不重要。
select e.fname,e.lname,e_mgr.fname,e_mgr.lname from employee e inner
join employee e_mgr on e.superior_emp_id = e_mgr.emp_id;
資料庫之MySQL基礎(二)
1.基礎操作 建立資料庫 create database if notexists school 刪除資料庫 drop database if exists school 使用資料庫 tab 鍵的上面,如果你的表名或者欄位名是乙個特殊字元,就需要帶 use school 檢視資料庫 show dat...
資料庫 mysql 基礎
1.建立 create database 資料庫名 例如建立名為d testdb的資料庫 mysql create database d testdb 2.修改 alter database 資料庫名 character set 字符集名 例如修改字符集 set utf8 3.刪除 drop dat...
mysql資料庫基礎
乙個表不能有多個主鍵?解釋 不能,乙個表中有且只能有乙個主鍵,大事兩列 字段 可以作為乙個主鍵 例如 mysql create table t name varchar 5 addr varchar 28 age int 5 primary key name,addr 為什麼要設定主鍵?資料庫儲存的...