SQL資料操作基礎 初級 2

2021-04-01 18:18:42 字數 4303 閱讀 7262

使用isql執行select查詢

當你安裝sql sever時,你同時安裝了乙個叫作isql/w的應用程式。isql/w允許你執行交

互的sql查詢。在把查詢包括到你的asp網頁中之前,用isql/w對其進行測試是非常有用

的。注意:

在這本書的第一部份,你學習了怎樣安裝和配置microsoft sql sever 。如果沒有安裝

sql sever或者sql sever不能執行,請參閱第三章「安裝和使用sql sever」。

選擇任務上sql sever程式組中的isql_w以啟動該程式。程式啟動時,首先會出現乙個對

話框,要求輸入伺服器資訊和登入資訊(見圖10.1)。在sever框中,輸入你的sql服務

器的名字。如果伺服器正執行在本地計算機上,伺服器名字就是你計算機的名字。在登

錄資訊框中,輸入乙個登入帳號和密碼或選擇使用「可信連線」,然後單擊connect按鈕

注意:如果你將sql sever配置為使用完整安全或混合安全,那麼你可以使用可信連線。如果你

如果一切正常,在你單擊連線按鈕後會出現乙個查詢視窗,如圖10.2所示。(如果有異

常,請參考第三章)

在執行查詢之前,你需要選擇資料庫。安裝 sql sever時你已為自己建立了乙個資料庫

,sql sever還有許多系統資料庫,如master,model,msdb,和tempdb。方便的是,

sql sever帶有乙個特殊的名為pubs的例子資料庫。庫 pubs中包含供乙個虛擬的出版商

使用的各個表。文件中所有的例子程式都是針對這個庫來設計的。本書中的

許多例子也使用這個資料庫。

在查詢視窗頂部的db下拉框中選擇資料庫pubs,這樣你就選擇了資料庫。你所有的查詢

都將針對這個庫中的各個表來執行。現在你可以執行你的第乙個查詢了。這真讓人興奮

你的第乙個查詢將針對乙個名為autrors的表,表中包含所有為某個虛擬出版商工作的作

select phone from authors where au_name="ringer"

後,任何出現在查詢視窗中的語句均會被執行。查詢視窗會自動變成結果顯示視窗,你

可以看到查詢的結果(見圖10.3)。

你看到的查詢結果也許與圖10.3所示的不同。在sql sever的不同版本中,庫pubs中的數

據會有所不同。對sql sever 6.5來說,將會找到兩條記錄。結果顯示視窗中應顯示如下

內容:phone

……………….

801 826_0752

801 826_0752

(2 row(s) affected)

你所執行的select語句從表authors中取出所有名字為ringer的作者的**號碼。你通過

在where子句中使用特殊的選擇條件來限制查詢的結果。你也可以忽略選擇條件,從表中

取出所有作者的**號碼。要做到這一點,單擊query標籤,返回到查詢視窗,輸入以下

的select語句:

select phone from authors

這個查詢執行後,會取出表authors中的所有**號碼(沒有特定的順序)。如果表aut

hors中包含一百個**號碼,會有一百個記錄被取出,如果表中有十億個**號碼,這

十億條記錄都會被取出(這也許需要一些時間)。

語句的第一部份指定它們,你可以從表中取出任何乙個字段。你可以在乙個select語句

中一次取出多個字段,比如:

select au_fname ,au_lname, phone from authors

這個select語句執行後,將取出這三個列的所有值。下面是這個查詢的結果的乙個示例

(為了節省紙張,只顯示查詢結果的一部分,其餘記錄用省略號代替):

au_fname au_lname phone

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

johnson white 408 496_7223

marjorie green 415 986_7020

cheryl carson 415 548_7723

michael o』leary 408 286_2428

…(23 row(s) affected)

在select語句中,你需要列出多少個字段,你就可以列出多少。不要忘了把欄位名用逗

號隔開。你也可以用星號(*)從乙個表中取出所有的字段。這裡有乙個使用星號的例子

:select * from authors

這個select語句執行後,表中的所有欄位的值都被取出。你會發現你將在sql查詢中頻繁

使用星號。

技巧:你可以使用星號來檢視乙個表的所有列的名字。要做到這一點,只需要在執行完select

語句後看一下查詢結果的列標題。

操作多個表

到現在為止,你只嘗試了用一句sql查詢從乙個表中取出資料。你也可以用乙個select語

句同時從多個表中取出資料,只需在select語句的from從句中列出要從中取出資料的表

名稱即可:

select au_lname ,title from authors, titles

這個select語句執行時,同時從表authors和表titles中取出資料。從表authors中取出

所有的作者名字,從表titles中取出所有的書名。在isql/w程式中執行這個查詢,看一

下查詢結果。你會發現一些奇怪的出乎意料的情況:作者的名字並沒有和它們所著的書

相匹配,而是出現了作者名字和書名的所有可能的組合,這也許不是你所希望見到的。

出了什麼差錯?問題在於你沒有指明這兩個表之間的關係。你沒有通過任何方式告訴sq

l如何把表和表關聯在一起。由於不知道如何關聯兩個表,伺服器只能簡單地返回取自兩

個表中的記錄的所有可能組合。

要從兩個表中選出有意義的記錄組合,你需要通過建立兩表中字段的關係來關聯兩個表

。要做到這一點的途徑之一是建立第三個表,專門用來描述另外兩個表的字段之間的關

系。表authors有乙個名為au_id的字段,包含有每個作者的唯一標識。表titles有乙個名為

title_id的字段,包含每個書名的唯一標識。如果你能在字段au_id和字段title_id 之

間建立乙個關係,你就可以關聯這兩個表。資料庫pubs中有乙個名為titleauthor的表,

正是用來完成這個工作。表中的每個記錄包括兩個字段,用來把錶titles和表authors關

聯在一起。下面的select語句使用了這三個表以得到正確的結果:

select au_name,title from authors,titles,titleauthor

where authors.au_id=titleauthor.au_id

and titles.title_id=titleauthor.title_id

當這個select語句執行時,每個作者都將與正確的書名相匹配。表titleauthor指明了表

authors和表titles的關係,它通過包含分別來自兩個表的各乙個字段實現這一點。第三

個表的唯一目的是在另外兩個表的字段之間建立關係。它本身不包含任何附加資料。

注意在這個例子中欄位名是如何書寫的。為了區別表authors和表titles中相同的欄位名

au_id,每個欄位名前面都加上了表名字首和乙個句號。名為author.au_id 的字段屬於

表authors,名為titleauthor.au_id的字段屬於表titleauthor,兩者不會混淆。

通過使用第三個表,你可以在兩個表的字段之間建立各種型別的關係。例如,乙個作者

也許寫了許多不同的書,或者一本書也許由許多不同的作者共同完成。當兩個表的字段

之間有這種「多對多」的關係時,你需要使用第三個表來指明這種關係。

但是,在許多情況下,兩個表之間的關係並不複雜。比如你需要指明表titles和表publ

ishers之間的關係。因為乙個書名不可能與多個出版商相匹配,你不需要通過第三個表

來指明這兩個表之間的關係。要指明表titles和表publishers之間的關係,你只要讓這

兩個表有乙個公共的字段就可以了。在資料庫pubs中,表titles和表publishers都有一

個名為pub_id的字段。如果你想得到書名及其出版商的乙個列表,你可以使用如下的語

句:select title,pub_name from titles,publishers

where titles.pub_id=publishers.pub_id

當然,如果一本書是由兩個出版商聯合出版的,那麼你需要第三個表來代表這種關係。

通常,當你予先知道兩個表的字段間存在「多對多」關係時,就使用第三個表來關聯這

兩個表。反之,如果兩個表的字段間只有「一對一」或「一對多」關係,你可以使用公

共字段來關聯它門。

SQL資料操作基礎 初級 5

使用 sql事務管理器建立新錶 你可以使用前面幾節所講的方法建立新錶。但是,使用事務管理器建立新錶會更容易。這一節介紹如何使用這個程式建立新錶。從工作列的 sqlsever程式組中選擇 sqlenterprisemanager,啟動該程式,你會看到如圖10.4所示的視窗。瀏覽服務管理器視窗中的樹形結...

SQL初級基礎

sql基礎 l選擇資料,select語句 select lastname,firstname from persons select from persons l返回不同的值,去除重複值selectdistinct select distinct 列名稱from 表名稱 l 如需有條件地從表中選取資...

sql初級DCL操作語言

dcl語言 在mysql資料庫中的user表 1.建立使用者 語法 create user 使用者名稱 位址 identified by 密碼 localhost 127.0.0.1 只能本機使用,localhost 127.0.0.1 所有電腦都可以用,ip的方式 192.168.2.所有192....