多多色-多人伦交性欧美在线观看-多人伦精品一区二区三区视频-多色视频-免费黄色视屏网站-免费黄色在线

國內最全IT社區(qū)平臺 聯(lián)系我們 | 收藏本站
阿里云優(yōu)惠2
您當前位置:首頁 > 數(shù)據(jù)庫 > 數(shù)據(jù)庫應用 > SQL應用與開發(fā):(七)數(shù)據(jù)操作 · 查 · (二)高級型

SQL應用與開發(fā):(七)數(shù)據(jù)操作 · 查 · (二)高級型

來源:程序員人生   發(fā)布時間:2015-07-31 08:29:34 閱讀次數(shù):3745次

2.高級型

在高級型查詢中,是將SELECT的語句的高級利用,和怎樣使用它查詢數(shù)據(jù)庫中符合條件的數(shù)據(jù),例如通過BETWEEN來限制查詢的范圍和條件,并將取得的結果保存到表或視圖。


2.1BETWEEN 限制查詢范圍

使用關鍵字BETWEEN可以方便的限制數(shù)據(jù)的范圍。BETWEEN用來指定1個范圍,可讓用戶對上邊界值、下邊界值及它們中的值進行搜索。

利用BETWEEN關鍵字來限定查詢條件的基本語法格式為:

SELECT <select_list>

FROM <table_reference>

WHERE test_expression [NOT] BETWEEN begin_expression AND end_expression


2.1.1舉例來講,利用BETWEEN關鍵字來限制日期,從數(shù)據(jù)庫“銷售關系系統(tǒng)”的“入庫單信息”表中,查詢“入庫日期”從2004年8月1日至2005年9月1日期間的入庫單信息。

SELECT 入庫單編號,供應商編號,庫存編號,商品編號,入庫日期,操作員編號

FROM 入庫單信息

WHERE 入庫日期 BETWEEN '2004⑻⑴' AND '2005⑼⑴'


2.1.2舉例來講,利用BETWEEN關鍵字來限制文本,從數(shù)據(jù)庫“銷售關系系統(tǒng)”的“入庫單信息”表中,查詢所在城市為北京市到南京市的供應商信息。

SELECT 供應商編號,供應商名稱,供應商所在城市,聯(lián)系人姓名,聯(lián)系電話,備注

FROM 供應商信息

WHERE 供應商所在城市 BETWEEN '北京市' AND '南京市'


2.2使用WHERE的復合條件

使用WHERE子句的目的是將表中數(shù)據(jù)挑選出符合條件的行,WHERE可以限定查詢的范圍,提高效力。WHERE子句中的條件表達式包括算術表達式、邏輯表達式等。這里將會綜合前面介紹的內容,在WHERE子句中使用復合條件來實現(xiàn)1些復雜的查詢操作。


2.2.1在WHERE子句中使用復合條件

可使用3種布爾連接符構成復合條件,這3種布爾連接符是:AND、OR和NOT。AND和OR將兩個條件合并構成1個復合條件,重復利用這些組合就能夠將許多條件組合到1個單獨的復合條件中;NOT利用于單個條件,含義為取反。

AND 只有在所有條件都成立時才返回結果。即A和B都為TRUE時,語句“A AND B”才為TRUE。

OR 只要其中1個調價成立便可返回結果。即A或B為TRUE時,語句“A OR B”為TRUE。

NOT 表示否認1個表達式,表達式成立時不反悔結果。即在A為FALSE時,語句“NOT A ”為TRUE。

舉例來講,從“珠寶營銷系統(tǒng)”數(shù)據(jù)庫的“顧客信息”表中,非北京且消費金額在2000以上的顧客,或北京的顧客。

SELECT 消費者姓名,消費者消費金額,消費者所在城市,聯(lián)系電話,郵編

FROM 顧客信息

WHERE ((消費者消費金額 > 2000 AND NOT 消費者所在城市='北京市') OR 消費者所在城市='北京市')


2.2.2使用多個關鍵字

NOT可以用兩種不同的方式與多個條件1起使用,包括IN、BETWEEN、LIKE和IS NULL時,此時含義完全相同。

舉例來講,在本例中從“經銷商”數(shù)據(jù)庫中顯示符合以下所有條件的商品信息,包括商品編號、供應商朝號、商品名稱、商品種別、單價和商品單位。

條件為:不是7、5、4、2其中任何1個的供應商朝號;以10開始的商品編號;單價不在20~100之間;不屬于12、13、14其中任何1個種別的商品;商品單位不能為NULL。

SELECT 商品編號,供應商朝號,商品名稱,商品種別,單價,商品單位

FROM 商品信息

WHERE 供應商朝號NOT IN ('7','5','4','2')

           AND 商品編號 LIKE '10%'

           AND 單價 NOT BETWEEN 20 AND 100

           AND 商品種別 NOT IN(12,13,14)

           AND 商品單位 IS NOT NULL


2.3使用常數(shù)值、DISTINCT和ALL

在表的數(shù)據(jù)級別上,常數(shù)值是每行中都有相同值得1個列。我們通常有兩種方法來替換常數(shù)值。第1種方法是將1個文字值放入SELECT子句作為編碼值,這類方法適用于只有少數(shù)SELECT語句時。不過當有大量SELECT語句時,這類方法就不夠靈活,也不容易更改代碼來滿足變化的需求。

第2種方法是將常數(shù)值放入1個單獨的表中,我們將這個表稱為“常數(shù)表”。這類表被定義為只有1行的表。在這類表中,每一個不同的常數(shù)值都有1個單獨的列。這些列的名字通常都是唯1的,并且與任何其他表中的表名不同。在創(chuàng)建后,可使用它與任意其他表編寫SELECT語句。這類方法只要在有較多使用相同常數(shù)集的SELECT語句時使用。

數(shù)據(jù)庫“經銷商”中,查詢出2004年所收進的貨物,并列出貨物的名稱,價格,進貨的數(shù)量及進貨的日期。

SELECT TOP10 t1.商品名稱,t1.單價,t2.進貨數(shù)量,t2.進貨時間

FROM 商品信息 AS t1,進貨信息 AS t2

WHERE t2.進貨時間 BETWEEN '2004⑴⑴' AND '2004⑴2⑶1'

AND t2.商品編號=t1.商品編號

ORDER BY t2.進貨時間

當指定1個日期時,不能只給出年份。為了制定1個年份,必須將這個日期設成這1年的1月1日到12月31日之間的日期。

在SELECT子句中DISTINCT和ALL關鍵字可讓我們明確該如何在結果中處理重復行。ALL返回所有限定行,是默許用法。如果不明確指定ALL或DISTINCT,那就會默許設置為ALL。DISTINCT只返回唯1的行。

在前面的總結中,已說明了二者的相干用法,在這里,不在累述。

下面我們了解1下要求:DISTINCT或ALL在SELECT子句中只能使用1次,在SELECT列表中被看做為首詞并且后面不能添加逗號。

舉例來講,在“珠寶營銷系統(tǒng)”數(shù)據(jù)庫的查詢消費者所在城市和郵編,要求不返回重復行。

SELECT DISTINCT 消費者所在城市,郵編  FROM 顧客信息


2.4保存SELECT結果

查詢的結果是1個表,可以像處理器1樣進行處理。當查詢語句運行后,查詢結果知識顯示在屏幕上,如果關閉計算機,則這些查詢結果也會消失。為了便于查看查詢結果,我們1般將查詢結果保存到1個新表或1個視圖中。


2.4.1保存結果到表

將查詢結果保存到1個新表,也就是說,從SELECT語句的查詢結果中創(chuàng)建1個新表。1旦將查詢結果保存到1個新表,用戶即可以通過天劍新行、更新行或刪除行來修改表中的數(shù)據(jù)。

在SQL Server中,新行添加在SELECT語句后,然后在FROM關鍵字之前增加1個INTO子句,并在INTO關鍵字后給出這個新表的名稱。除此以外,不需要對查詢語句的其他子句進行修改。

舉例來講,從數(shù)據(jù)庫“經銷商”的“銷售信息”表中,查詢2005年8月份的銷售信息,并將查詢結果保存到1個名為“銷售詳情 05_08”的新表中,要求該表中包括列“商品編號”、“金額”、“銷售人員編號”和“售出時間”。

SELECT 商品邊號,金額,銷售人員編號,售出時間

INTO 銷售詳情 05_08

FROM 銷售信息

WHERE 售出時間 BETWEEN '2005⑻⑴' AND '2005⑻⑶1'

上述語句是在數(shù)據(jù)庫“經銷商”中,創(chuàng)建1個新表名為“銷售詳情 05_08”。通過下述SELECT語句可以查看新標的數(shù)據(jù):

SELECT *  FROM 銷售詳情 05_08


2.4.2保存結果到視圖

還可以將查詢結果保存到1個視圖中,而不死保存到1個表中。視圖與表非常相似。

在創(chuàng)建1個視圖后,可以像使用基表1樣使用它,可以任意的SELECT語句的FROM子句中使用視圖。

舉例來講,從數(shù)據(jù)庫“經銷商”的“商品信息”表中,查詢由代號為7的供應商提供的商品信息,并將查詢結果保存到1個名為“供應商 07_VIEW”的視圖中,要求改視圖中的列為“商品編號”、“商品名稱”和“單價”。

CREATE VIEW 供應商 07_VIEW

AS 

SELECT 商品編號,商品名稱,單價

FROM 商品信息

WHERE 供應商朝號=7

上述語句運行后,就會在數(shù)據(jù)庫“經銷商”中,添加1個名為“供應商 07_VIEW”的新視圖。利用SELECT語句查詢該視圖中的數(shù)據(jù)。

SELECT *

FROM 供應商07_VIEW

ORDER BY 單價 


關于數(shù)據(jù)庫的查操作,未完待續(xù)......

生活不易,碼農辛苦
如果您覺得本網站對您的學習有所幫助,可以手機掃描二維碼進行捐贈
程序員人生
------分隔線----------------------------
分享到:
------分隔線----------------------------
關閉
程序員人生
主站蜘蛛池模板: 99色吧| 老司机亚洲精品影院在线 | 视频一区二区在线 | 国产精品国产三级国产爱网 | 久久久久久久久久久久久久久久久久久久 | 自拍偷拍第4页 | 99r8这里精品热视频免费看 | 国产综合成人久久大片91 | 一级做a爱免费观看视频 | 亚洲精品国产77777 | 天天爱综合网 | 亚洲午夜久久久久中文字幕 | 视频一二三区 | 91精品国产亚一区二区三区 | 国产一区二区精品久久 | 武则天全黄肉体毛片免费看 | 国产成人精品综合久久久 | 欧美性生交大片 | 亚洲人成网址在线观看 | 成年人在线观看免费视频 | 久久久久国产精品美女毛片 | 91性视频 | 欧美xxxx性特级高清 | 精品哟哟哟国产在线观看不卡 | 久久在线视频播放 | 国产精品福利片免费看 | 欧美一区精品 | 九色在线 | 激性欧美激情在线播放16页 | 日韩欧美一二三区 | 国产人做人爱免费视频 | 国产在线不卡一区 | 亚洲高清一区二区三区四区 | 国产欧美精品综合一区 | 亚洲精品中文字幕乱码影院 | free性欧美人与牛 | xx小视频| 国产一级做人爱c黑人版 | 国产亚洲欧美另类久久久 | 国产一级视频久久 | 亚洲第一页国产 |