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

ASP基礎入門:數據庫查詢語言(1)

2022-06-13   來源: .NET編程 

  原定計劃從本篇開始就要給大家介紹 ASP 內建的 ActiveX

  組件但是考慮到我們在往後的學習中將會接觸到大量的數據庫查詢因此作者臨時決定花一到兩篇的篇幅向大家簡要介紹一些數據庫查詢語言的基本知識這其實也是學習

  ASP

  所必須掌握的一門知識是否能夠靈活地運用數據庫查詢語言將直接關系到

  ASP 程序的執行效率等一系列問題所以請各位務必重視

  相信很多朋友都聽說過 SQL

  這個名字如果你是計算機方面的行家SQL

  的大名一定是如雷貫耳那麼 SQL 究竟是什麼呢?SQL 一詞實際上是

  "Structured Query Language"

  結構式查詢語言的縮寫是用於對存放在計算機數據庫中的數據進行組織管理和檢索的一種工具;是一種特定類型的數據庫

   關系數據庫而控制這種數據庫的計算機程序就是我們常說的

  DBMS 數據庫管理系統譬如SQL ServerOracleSybaseDB

  等等當用戶想要檢索數據庫中的數據時就通過 SQL

  語言發出請求接著 DBMS 對該 SQL

  請求進行處理並檢索所要求的數據最後將其返回給用戶此過程被稱作為數據庫查詢這也就是數據庫查詢語言這一名稱的由來

  SQL 並不是象 CCOBOL 和 Fortran 語言那樣的完整的計算機語言SQL

  沒有用於條件測試的 IF 語句也沒有用於程序分支的 Goto

  語句以及循環語句 For 或 Do確切的講SQL 是一種數據庫子語言SQL

  語句可以被嵌入到另一種語言中從而使其具有數據庫存取功能SQL

  也非嚴格的結構式語言它的句法更接近英語語句因此易於理解大多數

  SQL 語句都是直述其意讀起來就象自然語言一樣明了SQL

  還是一種交互式查詢語言允許用戶直接查詢存儲數據利用這一交互特性用戶可以在很短的時間內回答相當復雜的問題而同樣問題若讓程序員編寫相應的報表程序則可能要用幾個星期甚至更長時間

  在大部分 ASP 應用程序中我們都會接觸到數據庫而我們在編寫

  ASP 應用程序時用來進行數據庫操作的標准語法正是 SQL因此 SQL

  語法的重要性是不言而喻的下面我們就從最常用的 SQL 語句 SELECT

  著手一步一步地來學習 SQL

  查詢是 SQL 語言的核心而用於表達 SQL 查詢的 SELECT

  語句則是功能最強也是最為復雜的 SQL

  語句它從數據庫中檢索數據並將查詢結果提供給用戶在本文中我們將建立一個名為

  tianjiao 的簡單數據庫該庫中存放了一個叫 sales

  的銷售記錄表如下所示 :

  姓名

  性別

  工資

  銷售目標

  銷售額

  地區

  書生

  男

  

  

  

  上海

  吳冠軍

  男

  

  

  

  北京

  雷鳴

  男

  

  

  

  四川

  雪兒

  女

  

  

  

  廣州

  顧一

  男

  

  

  

  大連

  阿卓

  女

  

  

  

  天津

  熠天

  男

  

  

  

  全國

  在該表中有六列即六個字段 :

  姓名性別工資銷售目標銷售額地區首先我們用 Select

  語句列出姓名銷售目標和銷售額 :

  Select 姓名銷售目標銷售額 From sales

  結果如下 :

  姓名

  銷售目標

  銷售額

  書生

  

  

  吳冠軍

  

  

  雷鳴

  

  

  雪兒

  

  

  顧一

  

  

  阿卓

  

  

  熠天

  

  

  然後我們再列出所有男性的姓名銷售目標和銷售額 :

  Select 姓名銷售目標銷售額 From sales Where 性別 =" 男

  "

  結果如下 :

  姓名

  銷售目標

  銷售額

  書生

  

  

  吳冠軍

  

  

  雷鳴

  

  

  顧一

  

  

  熠天

  

  

  接下來我們做一個相對復雜的查詢列出銷售額大於銷售目標的所有男性的姓名銷售目標和銷售額並且按銷售目標排序

  Select 姓名銷售目標銷售額

  Form sales

  Where 銷售額 > 銷售目標

  And 性別 =" 男 "

  Order By 銷售目標

  結果如下 :

  姓名

  銷售目標

  銷售額

  書生

  

  

  雷鳴

  

  

  顧一

  

  

  熠天

  

  

  大家可以看到對於簡單查詢SQL Select

  語句和英文語法很相象我們來分析一下 SELECT

  語句的完整格式它包括六個子句其中 SELECT 和FROM

  子句是必須的其它子句可以任選每個子句的功能如下 :

  Select 子句列出所有要求 SELECT 語句檢索的數據項它放在

  SELECT

  語句開始處指定此查詢要檢索的數據項這些數據項通常用選擇表表示即一組用“”隔開的選擇項按照從左到右的順序每個選擇項產生的一個列的查詢結果一個選擇項可能是以下項目

  ()列名標識 FROM

  子句指定表中的列如果列名作為選擇項則 SQL

  直接從數據庫表中每行取出該列的值再將其放在查詢結果的相應行中

  ()常數指定在查詢結果的每行中都放上該值

  ()SQL

  表達式說明必須將要放入查詢結果中的值按表達式的規定進行計算

  From 子句列出包含所要查詢數據的表它由關鍵字 FROM

  後跟一組用逗號分開的表名組成每個表明都代表一個包括該查詢要檢索數據的表這些表稱為此

  SQL 語句的表源因為查詢結果都源於它們

  Where 子句告訴 SQL

  只查詢某些行中的數據這些行用搜索條件描述

  Group By

  子句指定匯總查詢即不是對每行產生一個查詢結果而是將相似的行進行分組再對每組產生一個匯總結果

  Having 子句告訴 SQL 只產生有 Group By

  得到的某些組的結果和 Where

  子句一樣所需要的組也用一個搜索條件指定

  Order By

  子句將查詢結果按一列或多列中的數據排序如果省略此子句則查詢結果將是無序的

  下面作者將提供一個簡單但實用的運用 SQL 語句查詢的 ASP

  程序供大家參考

  為了使大家更清楚更直接地了解 SQL 語法在 ASP

  中的應用我們先將查詢的所有核心過程寫成一個名為 querytable 的SUB然後利用

  ASP 的服務器端包容功能調用該 SUB請將以下語句剪貼到記事簿保存為

  subdBTableinc 文件並置於虛擬目錄 asptest 下:

  < %

  sub querytable(inputquery)

  set conntemp=servercreateobject("adodbconnection")

  conntempopen "DSN=Student;uid=student;pwd=aspmagic"

  set rstemp=conntempexecute(inputquery)

  howmanyfields=rstempfieldscount

   統計數據庫中的列數

  %>

  < table border=>< tr>

  < %

  for I= to howmanyfields

  %>

  < td>< b>< %=rstemp(I)name%>< /B>< /TD>

  < % next %>

  < /tr>

  < %

  do while not rstempeof

  %>

  < tr>

  < % for I = to howmanyfields

  thisvalue=rstemp(I)

  If isnull(thisvalue) then

  thisvalue="?

   如果字段為空則將變量 thisvalue 的值定義為一個空格

  end if%>

  < td valign=top>< %=thisvalue%>< /td>

  < % next %>

  < /tr>

  < %rstempmovenext

  loop%>

  < /table>

  < %

  rstempclose

  set rstemp=nothing

  conntempclose

  set conntemp=nothingend sub%>

  完成了 SUB 的定義過程在下面幾個 ASP

  程序中我們只要加入想要使用的 SQL

  查詢語句並調用該過程就可以非常方便的得到查詢結果將以下四段代碼分別保存為

  aspaaspaspbaspaspcaspaspdasp 四個 asp 文件

  < HEAD>< TITLE>aspaasp< /TITLE>< /HEAD>

  < HTML>< body bgcolor="#FFFFFF">

  < %

  call querytable("select * from publishers where name like A%%")

   將表 publishers 中所有姓名中有字母 A 的記錄查詢出來

  %>

  < !#include virtual="/asptest/subdBTableinc">< /BODY><

  /HTML>

  < HEAD>< TITLE>aspbasp< /TITLE>< /HEAD>< HTML><

  body bgcolor="#FFFFFF">

  < %

  call querytable("select * from titles where Year_Published > = ")

   將表 titles 中所有發表年份大於或等於 年的記錄查詢出來

  %>

  < !#include virtual="/asptest/subdBTableinc">< /BODY><

  /HTML>

  < HEAD>< TITLE>aspcasp< /TITLE>< /HEAD>< HTML><

  body bgcolor="#FFFFFF">

  < %

  call querytable("select * from publishers where amount> and

  sex=male")

   將表 publishers 中所有數量大於 且性別為男的記錄查詢出來

  %>

  < !#include virtual="/asptest/subdBTableinc">< /BODY><

  /HTML>

  < HEAD>< TITLE>aspdasp< /TITLE>< /HEAD>< HTML><

  body bgcolor="#FFFFFF">

  < %

  call querytable("select * from publishers where state< > NY")

  將表 publishers 中所有所在城市不為紐約的記錄查詢出來

  %>

  < !#include virtual="/asptest/subdBTableinc">< /BODY><

  /HTML>

  利用 subdBTableinc 文件中的所定義的過程 querytable你就可以非常迅速地對數據庫進行查詢你所要做的只是將“conntempopen

  "DSN=Student;uid=student;pwd=aspmagic"”中的數據庫名稱用戶身份和密碼稍加改動並在調用

  querytable 時輸入想要使用的 SQL 查詢語句即可是不是很簡單 ?

  這就是 ASP 和 SQL 的魅力所在 !!!

  今天我們雖然用了一整篇的篇幅只學習了一個 SQL

  指令但請你相信你所獲得遠不同於一個 DOS 指令SELECT

  指令使得你可以非常容易地對數據庫進行查詢或許在這之前你對數據庫查詢還一無所知但是通過本篇的學習你其實已經會使用

  ASP 進行常用的數據庫查詢了是不是很激動 ?

  在下一篇中小編將繼續給大家介紹 SQL


From:http://tw.wingwit.com/Article/program/net/201311/14199.html
    推薦文章
    Copyright © 2005-2022 電腦知識網 Computer Knowledge   All rights reserved.