麻豆小视频在线观看_中文黄色一级片_久久久成人精品_成片免费观看视频大全_午夜精品久久久久久久99热浪潮_成人一区二区三区四区

首頁(yè) > 數(shù)據(jù)庫(kù) > SQL Server > 正文

SQL數(shù)據(jù)操作基礎(chǔ)(初級(jí))3

2019-11-03 08:38:13
字體:
供稿:網(wǎng)友
操作字段

通常,當(dāng)你從一個(gè)表中取出字段值時(shí),該值與創(chuàng)建該表時(shí)所定義的字段名聯(lián)系在一起。如果你從表authors中選擇所有的作者名字,所有的值將會(huì)與字段名au_lname相聯(lián)系。但是在某些情況下,你需要對(duì)字段名進(jìn)行操作。在SELECT語(yǔ)句中,你可以在缺省字段名后面僅跟一個(gè)新名字來取代它。例如,可以用一個(gè)更直觀易讀的名字Author Last Name來代替字段名au_lname:

SELECT au_lname "Author Last Name" FROM authors

當(dāng)這個(gè)SELECT語(yǔ)句執(zhí)行時(shí),來自字段au_lname的值會(huì)與“Author Last Name”相聯(lián)系。查詢結(jié)果可能是這樣:

Author Last Name

……………………………………………………………………..

White

Green

Carson

O’Leary

Straight



(23 row(s) affected)

注意字段標(biāo)題不再是au_lname,而是被Author Last Name所取代。

你也可以通過執(zhí)行運(yùn)算,來操作從一個(gè)表返回的字段值。例如,如果你想把表titles中的所有書的價(jià)格加倍,你可以使用下面的
SELECT語(yǔ)句:

SELECT PRice*2 FROM titles

當(dāng)這個(gè)查詢執(zhí)行時(shí),每本書的價(jià)格從表中取出時(shí)都會(huì)加倍。但是,通過這種途徑操作字段不會(huì)改變存儲(chǔ)在表中的書價(jià)。對(duì)字段的運(yùn)
算只會(huì)影響SELECT語(yǔ)句的輸出,而不會(huì)影響表中的數(shù)據(jù)。為了同時(shí)顯示書的原始價(jià)格和漲價(jià)后的新價(jià)格,你可以使用下面的查詢:

SELECT price "Original price", price*2 "New price" FROM titles

當(dāng)數(shù)據(jù)從表titles中取出時(shí),原始價(jià)格顯示在標(biāo)題Original price下面,加倍后的價(jià)格顯示在標(biāo)題New price下面。結(jié)果可能是這
樣:

original price new price

……………………………………………………………….

39.98
11.95 23.90

5.98
39.98


(18 row(s) affected)

你可以使用大多數(shù)標(biāo)準(zhǔn)的數(shù)學(xué)運(yùn)算符來操作字段值,如加(+),減(-),乘(*)和除(/)。你也可以一次對(duì)多個(gè)字段進(jìn)行運(yùn)
算,例如:

SELECT price*ytd_sales "total revenue" FROM titles

在這個(gè)例子中,通過把價(jià)格與銷售量相乘,計(jì)算出了每種書的總銷售額。這個(gè)SELECT語(yǔ)句的結(jié)果將是這樣的:

total revenue

……………………………………………..

81,859,05

46,318,20

55,978,78

81,859,05

40,619,68



(18 row(s) affected)

最后,你還可以使用連接運(yùn)算符(它看起來像個(gè)加號(hào))來連接兩個(gè)字符型字段:

SELECT au_fname+" "+au_lname "author name" FROM authors

在這個(gè)例子中,你把字段au_fname和字段au_lname粘貼在一起,中間用一個(gè)逗號(hào) 隔開,并把查詢結(jié)果的標(biāo)題指定為author
name。這個(gè)語(yǔ)句的執(zhí)行結(jié)果將是這樣的:

author names

…………………………………………………………

Johnson White

Marjorie Green

Cheryl Carson

Michael O’Leary

Dean Straight



(23 row(s) affected)

可以看到,SQL為你提供了對(duì)查詢結(jié)果的許多控制。你應(yīng)該在asp編程過程中充分利用這些優(yōu)點(diǎn)。使用SQL來操作查詢結(jié)果幾乎總是
比使用有同樣作用的腳本效率更高。

排序查詢結(jié)果

本章的介紹中曾強(qiáng)調(diào)過,SQL表沒有內(nèi)在的順序。例如,從一個(gè)表中取第二個(gè)記錄是沒有意義的。從SQL的角度看來,沒有一個(gè)記錄
在任何其他記錄之前。

然而,你可以操縱一個(gè)SQL查詢結(jié)果的順序。在缺省情況下,當(dāng)記錄從表中取出時(shí),記錄不以特定的順序出現(xiàn)。例如,當(dāng)從表
authors中取出字段au_lname時(shí),查詢結(jié)果顯示成這樣:

au_lname

…………………………………….

White

Green

Carson

O’Leary

Straight



(23 row(s) affected)

看一列沒有特定順序的名字是很不方便的。如果把這些名字按字母順序排列,讀起來就會(huì)容易得多。通過使用ORDER BY子句,你可
以強(qiáng)制一個(gè)查詢結(jié)果按升序排列,就像這樣:

SELECT au_lname FROM authors ORDER BY au_lname

當(dāng)這個(gè)SELECT語(yǔ)句執(zhí)行時(shí),作者名字的顯示將按字母順序排列。ORDER BY子句將作者名字按升序排列。

你也可以同時(shí)對(duì)多個(gè)列使用ORDER BY子句。例如,如果你想同時(shí)按升序顯示字段au_lname和字段au_fname,你需要對(duì)兩個(gè)字段都
進(jìn)行排序:

SELECT au_lname,au_fname FROM authors ORDER BY au_lname ,au_fname

這個(gè)查詢首先把結(jié)果按au_lname字段進(jìn)行排序,然后按字段au_fname排序。記錄將按如下的順序取出:

au_lname au_fname

…………………………………………………………………….

Bennet Abraham

Ringer Albert

Ringer Anne

Smith Meander



(23 row(s) affected)

注意有兩個(gè)作者有相同的名字Ringer。名為Albert Ringer的作者出現(xiàn)名為Anne Ringer的作者之前,這是因?yàn)樾誂lbert按字母順
序應(yīng)排在姓Anne之前。

如果你想把查詢結(jié)果按相反的順序排列,你可以使用關(guān)鍵字DESC。關(guān)鍵字DESC把查詢結(jié)果按降序排列,如下例所示:

SELECT au_lname,au_fname FROM authors

WHERE au_lname=”Ringer” ORDER BY au_lname ,au_fname DESC

這個(gè)查詢從表authors中取出所有名字為Ringer的作者記錄。ORDER BY子句根據(jù)作者的名字和姓,將查詢結(jié)果按降序排列。結(jié)果是
這樣的:

au_lname au_fname

……………………………………………………………………………………….

Ringer Anne

Ringer Albert

(2 row(s) affectec)

注意在這個(gè)表中,姓Anne出現(xiàn)在姓Albert之前。作者名字按降序顯示。

你也可以按數(shù)值型字段對(duì)一個(gè)查詢結(jié)果進(jìn)行排序。例如,如果你想按降序取出所有書的價(jià)格,你可以使用如下的SQL查詢:

SELECT price FROM titles ORDER BY price DESC

這個(gè)SELECT語(yǔ)句從表中取出所有書的價(jià)格,顯示結(jié)果時(shí),價(jià)格低的書先顯示,價(jià)格高的書后顯示。

警告:

不是特別需要時(shí),不要對(duì)查詢結(jié)果進(jìn)行排序,因?yàn)榉?wù)器完成這項(xiàng)工作要費(fèi)些力氣。這意味著帶有ORDER BY 子句的SELECT語(yǔ)句執(zhí)
行起來比一般的SELECT語(yǔ)句花的時(shí)間長(zhǎng)。

取出互不相同的記錄

一個(gè)表有可能在同一列中有重復(fù)的值。例如,數(shù)據(jù)庫(kù)pubs的表authors中有兩個(gè)作者的名字是Ringer。如果你從這個(gè)表中取出所有
的名字,名字Ringer將會(huì)顯示兩次。

在特定情況下,你可能只有興趣從一個(gè)表中取出互不相同的值。如果一個(gè)字段有重復(fù)的值,你也許希望每個(gè)值只被選取一次,你可
以使用關(guān)鍵字DISTINCT來做到這一點(diǎn):

SELCET DISTINCT au_lname FROM authors WHERE au_lname="Ringer"

當(dāng)這個(gè)SELECT語(yǔ)句執(zhí)行時(shí),只返回一個(gè)記錄。通過在SELECT語(yǔ)句中包含關(guān)鍵字DISTINCT,你可以刪除所有重復(fù)的值。例如,假設(shè)
有一個(gè)關(guān)于新聞組信息發(fā)布的表,你想取出所有曾在這個(gè)新聞組中發(fā)布信息的人的名字,那么你可以使用關(guān)鍵字DISTINCT。每個(gè)用
戶的名字只取一次——盡管有的用戶發(fā)布了不止一篇信息。

警告:

如同ORDER BY子句一樣,強(qiáng)制服務(wù)器返回互不相同的值也會(huì)增加運(yùn)行開銷。福氣不得不花費(fèi)一些時(shí)間來完成這項(xiàng)工作。因此,不是
必須的時(shí)候不要使用關(guān)鍵字DISTINCT。

創(chuàng)建新表

前面說過,數(shù)據(jù)庫(kù)中的所有數(shù)據(jù)存儲(chǔ)在表中。數(shù)據(jù)表包括行和列。列決定了表中數(shù)據(jù)的類型。行包含了實(shí)際的數(shù)據(jù)。

例如,數(shù)據(jù)庫(kù)pubs中的表authors有九個(gè)字段。其中的一個(gè)字段名為為au_lname,這個(gè)字段被用來存儲(chǔ)作者的名字信息。每次向這個(gè)表中添加新作者時(shí),作者名字就被添加到這個(gè)字段,產(chǎn)生一條新記錄。

通過定義字段,你可以創(chuàng)建一個(gè)新表。每個(gè)字段有一個(gè)名字和一個(gè)特定的數(shù)據(jù)類型(數(shù)據(jù)類型在后面的“字段類型”一節(jié)中講述),例如字段au_lname存儲(chǔ)的是字符型數(shù)據(jù)。一個(gè)字段也可以存儲(chǔ)其它類型的數(shù)據(jù)。

使用SQL Sever,創(chuàng)建一個(gè)新表的方法是很多的。你可以可執(zhí)行一個(gè)SQL語(yǔ)句或使用SQL事務(wù)管理器(SQL Enterprise Manager)來創(chuàng)建一個(gè)新表。在下一節(jié)里,你將學(xué)會(huì)如何用SQL語(yǔ)句來創(chuàng)建一個(gè)新表。


發(fā)表評(píng)論 共有條評(píng)論
用戶名: 密碼:
驗(yàn)證碼: 匿名發(fā)表
主站蜘蛛池模板: 午夜久久久精品一区二区三区 | 欧美在线a | 黄色大片在线免费看 | 在线播放免费播放av片 | 美女黄污视频 | 羞羞视频免费视频欧美 | 欧美国产成人在线 | 最新91在线视频 | 免费观看的毛片手机视频 | 毛片成人网 | 午夜精品视频免费观看 | 欧美成人理论片乱 | 视频www | 欧美18—19sex性hd按摩 | 欧美女优一区 | 成人羞羞视频在线观看免费 | 最新se94se在线欧美 | av老司机久久 | 国产精品一区二区日韩 | av免费在线播放网址 | 男女污视频在线观看 | 亚洲成人综合网站 | 激情亚洲一区二区 | 新久草视频 | 欧美在线a | 免费黄色大片在线观看 | 欧美一级电影网站 | 国产亚洲精品久久777777 | 免费a视频在线观看 | 看免费5xxaaa毛片 | 久久久久一本一区二区青青蜜月 | 成人福利视频在线 | 在线成人免费网站 | 九色 在线 | 亚洲一级电影在线观看 | 午夜色片 | www.91sese| 午夜小网站| 香蕉视频破解 | 日日摸夜夜添夜夜添牛牛 | 国产精品成人免费一区久久羞羞 |