2012年8月17日 星期五

0817 SQL exits

當子查詢存在時 SHOW 出母查詢的相關資料

當子查詢 四月份有訂單時,SHOW出客戶編號及客戶名稱
等價查詢 我用了3個方式查出同樣地答案

兩個查詢組合成一個結果

UNION             聯集 (會刪除重複地項目) UNION 則不會刪除重複項目
INTERSECT     交集
EXCEPT           前一個查詢 扣掉 後一個查詢的結果

(因為現在練習的範本資料表非常少樣本,故執行起來覺得功能不明顯,覺得這些功能用 where 下條件就可以解決之類的)
譬如說

SELECT * FROM 訂單 WHERE DATEPART(M,日期) = 4
UNION
SELECT * FORM 訂單 WHERE DATEPART(M,日期) = 5
意思是說聯集四月及五月的訂單 
那也等價於
SELECT * FORM 訂單 WHERE DATEPART(M,日期)=4 OR DATEPART(M,日期)=5


新增 及 刪除 資料表

drop table DEMO                           (刪除資料表)

CREATE TABLE DEMO               (建立資料表)
(
ID           int     not null,
username nvarchar(20) not null,
phone    nvarchar(10),
);

insert into DEMO                            (新增資料到資料表內)
(ID, username, phone) VALUES (1, 'john', '0933333333')

將某個資料表的欄位資料 新增到另一個資料表
下面練習是將客戶資料表的編號 名稱及電話 新增到 demo資料表內
insert into DEMO
(ID, username, phone)
select 客戶編號, 客戶名稱, 電話 from 客戶


今天的語法
insert
delete
update set
select top 5 * from table order by 

沒有留言:

張貼留言