熱點推薦:
您现在的位置: 電腦知識網 >> 編程 >> SQL Server >> 正文

SQL數據操作基礎(初級)1

2013-11-15 14:39:06  來源: SQL Server 

  為了建立交互站點你需要使用數據庫來存儲來自訪問者的信息例如你要建立一個職業介紹服務的站點你就需要存儲諸如個人簡歷所感興趣的工作等等這樣的信息創建動態網葉也需要使用數據庫如果你想顯示符合來訪者要求的最好的工作你就需要從數據庫中取出這份工作的信息你將會發現在許多情況下需要使用數據庫
  
  在這一章裡你將學會怎樣使用結構化查詢語言(SQL〕來操作數據庫SQL語言是數據庫的標准語言在Active Sever Pages 中無論何時你要訪問一個數據庫你就要使用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
  
  SQL介紹
  
  本書假設你是在SQL操作Microsoft SQL Sever 的數據庫你也可以用SQL操作許多其它類型的數據庫SQL是操作數據庫的標准語言(事實上關於SQL語言有一個專門的ANSI標准〕
  
  注意
  
  不要在你的站點上試圖用Microsoft Access代替Microsoft SQL SeverSQL Sever可以同時服務於許多用戶如果你希望你的站點有較高的訪問率MS Access是不能勝任的
  
  在學習SQL的細節之前你需要理解它的兩大特點一個特點容易掌握另一個掌握起來有點困難
  
  第一個特點是所有SQL數據庫中的數據都存儲在表中一個表由行和列組成例如下面這個簡單的表包括name 和email address
  
  Name Email Address
  
  
  
  Bill Gates
  
  president Clinton pres
  
  Stephen Walther sw
  
  這個表有兩列(列也稱為字段域〕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的角度來說表中的記錄沒有順序在下一節你將學會怎樣用SQL從表中選擇特殊的記錄
  
  使用SQL從表中取記錄
  
  SQL的主要功能之一是實現數據庫查詢如果你熟悉Internet 引擎那麼你已經熟悉查詢了你使用查詢來取得滿足特定條件的信息例如如果你想找到有ASP信息的全部站點你可以連接到 Yahoo!並執行一個對Active Sever Pages的搜索在你輸入這個查詢後你會收到一個列表表中包括所有其描述中包含搜索表達式的站點
  
  多數Internet 引擎允許邏輯查詢在邏輯查詢中你可以包括特殊的運算符如ANDOR和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列的值
  
  ■ 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語句從表中取數據的各種不同方法
From:http://tw.wingwit.com/Article/program/SQLServer/201311/22116.html
    Copyright © 2005-2013 電腦知識網 Computer Knowledge   All rights reserved.