為了建立互動站點,你需要使用資料庫來儲存來自訪客的資訊。例如,你要建立一個職業介紹服務的站點,你需要儲存諸如個人履歷,所感興趣的工作等等這樣的資訊。建立動態網葉也需要使用資料庫,如果你想顯示符合來訪者要求的最好的工作,你就需要從資料庫中取出這份工作的資訊。你將會發現,在許多情況下需要使用資料庫。
在這一章裡,你將學習如何使用「結構化查詢語言」(SQL〕來操作資料庫。SQL語言是資料庫的標準語言。在Active
在SeverPages 中,無論何時你要存取一個資料庫,你就要使用SQL語言。因此,掌握好SQL對asp程式設計是非常重要的。
注意:
你可以把“SQL”讀作“sequel”,也可以按單字母的讀音讀作S-Q-L。
兩種發音都是正確的,每種發音各有大量的支持者。
在本書裡,認為「SQL」讀作「sequel」。
透過這一章的學習,你將理解怎樣用SQL實現資料庫查詢,你將學會怎樣使用這種查詢從資料表中取出信息,最後,你將學會怎樣設
計和建立自己的資料庫。
注意:
透過下面幾章對SQL的介紹,你將對SQL有足夠的了解,從而可以有效地使用Active
Sever Pages。但是,SQL是一種複雜的語言,
本書不可能包含它的全部細節。要全面掌握SQL語言,你需要學習在Microsoft SQL
Sever 中使用SQL。你可以到附近的書店去買
一本Microsoft SQL Sever
6.5。
SQL介紹:
本書假設你是在SQL操作Microsoft SQL Sever
的資料庫。你也可以用SQL操作許多其它類型的資料庫。 SQL是操作資料庫的標準語
言。 (事實上,關於SQL語言有一個專門的ANSI標準〕
注意:
不要在你的網站上試圖用Microsoft
access代替Microsoft
SQL Sever。 SQL Sever可以同時服務許多用戶,如果你希望你的
網站有較高的存取率,MS
Access是不能勝任的。
在學習SQL的細節之前,你需要先理解它的兩大特色。一個特點容易掌握,另一個掌握起來有點困難。
第一個特點是所有SQL資料庫中的資料都儲存在表格中。一個表格由行和列組成。例如,下面這個簡單的表包括name
和e-mail
address:
Name Email
Address
......................................... ....................
Bill
Gates billg@microsoft.com
PResident
Clinton president@whitehouse.com
Stephen Walther
swalther@somewhere.com
這個表有兩列(列也稱為字段,域〕:Name和Email
Address。有三行,每一行包含一組資料。一行中的資料組合在一起稱為一條
記錄。
無論何時你在表格中新增數據,你就新增了一筆新記錄。一個資料表可以有幾十個記錄,也可以有幾千甚至幾十億個記錄。雖然你
也許永遠不需要儲存十億個Email地址,但知道你能這樣做總是好的,也許有一天你會有這樣的需要。
你的資料庫很有可能包含幾十個表,所有儲存在你資料庫中的資訊都被儲存在這些表中。當你考慮怎麼把資訊儲存在資料庫中時,
你應該考慮怎麼把它們儲存在表中。
SQL的第二個特點有些難於掌握。這種語言被設計成不允許你按照某種特定的順序來取出記錄,因為這樣做會降低SQL
Sever取紀錄
的效率。使用SQL,你只能按查詢條件來讀取記錄。
當考慮如何從表中取出記錄時,自然會想到按記錄的位置讀取它們。例如,也許你會嘗試透過一個循環,逐一記錄地掃描,來選出
特定的記錄。使用SQL時,你必須訓練自己,不要有這種想法。
假如你想選出所有的名字是「Bill
Gates」的記錄,如果使用傳統的程式語言,你也許會建構一個循環,逐一查看表中的記錄,看
名字域是否是「Bill
Gates」。
這種選擇記錄的方法是可行的,但是效率不高。使用SQL,你只要說,「選擇所有名字域等於Bill
Gates的記錄”,SQL就會為你選擇
出所有符合條件的記錄。SQL會決定實現查詢的最佳方法。
建設你想取出表中的前十個記錄。使用傳統的程式語言,你可以做一個循環,取出前十個記錄後結束循環。
開始時,當你知道你不能用SQL實現某些你感覺應該能實現的功能,你會受到挫折。設計者們。但後來你會體認到,SQL的這個特點不只是個限制,反而是其長處。因為SQL不根據位置來讀取記錄,它讀取記錄可以
很快。
綜上所述,SQL有兩個特點:所有資料儲存在表中,從SQL的角度來說,表格中的記錄沒有順序。在下一節,你將學習如何用SQL從表
中選擇特殊的記錄。
使用SQL從表格中取記錄。
SQL的主要功能之一是實作資料庫查詢。如果你熟悉Internet
引擎,那麼你已經熟悉查詢了。你使用查詢來取得滿足特定條件的信件
息。例如,如果你想找到有ASP資訊的全部站點,你可以連接到
Yahoo!並執行一個對Active Sever
Pages的搜尋。在你輸入這個
查詢後,你會收到一個列表,表中包括所有其描述中包含搜尋表達式的站點。
多數Internet
引擎允許邏輯查詢。在邏輯查詢中,你可以包含特殊的運算子如AND、OR和NOT,你使用這些運算子來選擇特定的記
錄。例如,你可以用AND來限制查詢結果。如果你執行一個對Active
Sever Pages AND SQL的搜尋。你將得到其描述中同時包含
Active Sever Pages
和SQL的記錄。當你需要限制查詢結果時,你可以使用AND。
如果你需要擴充查詢的結果,你可以使用邏輯運算子OR。例如,如果你執行一個搜索,搜索所有的其描述中包含Active
Sever
Pages OR
SQL的站點,你收到的清單中將包括所有其描述中同時包含兩個表達式或其中任何一個表達式的站點。
如果你想從搜尋結果中排除特定的站點,你可以使用NOT。例如,查詢“Active
Sever Pages ”AND NOT 「SQL」將會傳回一個欄位
表,清單中的網站包含Active Sever
Pages,但不包含SQL。當必須排除特定的記錄時,你可以使用NOT。
用SQL執行的查詢與用Internet搜尋引擎執行的搜尋非常相似。
當你執行一個SQL查詢時,透過使用包含邏輯運算子的查詢條件,
你可以得到一個記錄清單。此時查詢結果是來自一個或多個表。
SQL查詢的句法非常簡單。假設有一個名為email_table
的表,包含名字和地址兩個字段,要得到Bill Gates 的e_mail地址,你
可以使用下面的查詢:
SELECT email from
email_table WHERE name="Bill Gates"
當這個查詢執行時,就從名為email_table的表中讀取Bill
Gates的e_mail 位址。這個簡單的語句包括三個部分:
■ SELECT語句的第一部分指名要選取的欄位。在此例中,只有email列被選取。當執行
時,只顯示email列的值
billg@microsoft.com。
■
SELECTT語句的第二部分指明要從哪個(些)表中查詢資料。在此例中,要查詢的表名為email_table 。
■
最後,SELECT語句的WHERE子句指明要選擇滿足哪種條件的記錄。在此例中,查詢條件為只有name列的值為Bill Gates
的記錄
才被選取。
Bill Gates很有可能擁有不只一個email地址。如果表中包含Bill
Gates的多個email地址。用上述的SELECT語句可以讀取他所有
的email位址。 SELECT語句從表中取出所有name欄位值為Bill
Gates 的記錄的email 欄位的值。
前面說過,查詢可以在查詢條件中包含邏輯運算子。如果你想讀Bill Gates
或Clinton總統的所有email地址,你可以使用下面
的查詢語句:
SELECT email FROM email_table
WHERE name="Bill Gates" OR
name="president
Clinton"
此例中的查詢條件比前一個複雜了一點。這個語句從表email_table中選出所有name列為Bill
Gates或president Clinton的記錄。如果表中含有Bill Gates或president
Clinton的多個位址,所有的位址都被讀取。
SELECT語句的結構看起來很直觀。如果你請朋友從一個表格中為你選擇一組記錄,你也許以非常相似的方式提出你的要求。在SQL
在SELECT語句中,你「SELECT特定的列FROM一個表WHERE某些欄位滿足一個特定的條件」。
下一節將介紹如何執行SQL查詢來選取記錄。這將幫助你熟悉用SELECT語句從表格中取資料的各種不同方法。
以上就是SQL資料操作基礎(初級)1的內容,更多相關文章請關注PHP中文網(m.sbmmt.com)!