久久―日本道色综合久久,亚洲欧美精品在线,狼狼色丁香久久婷婷综合五月,香蕉人人超,日本网站黄,国产在线观看不卡免费高清,无遮挡的毛片免费

2025年度未來銀行科技服務(wù)商TOP100
全世界各行各業(yè)聯(lián)合起來,internet一定要實現(xiàn)!

SQL數(shù)據(jù)庫查詢語言(1)

2004-02-19 eNet&Ciweek

  SQL 并不是象 C、COBOL 和 Fortran 語言那樣的完整的計算機(jī)語言。SQL 沒有用于條件測試的 IF 語句,也沒有用于程序分支的 Goto 語句以及循環(huán)語句 For 或 Do。確切的講,SQL 是一種數(shù)據(jù)庫子語言,SQL 語句可以被嵌入到另一種語言中,從而使其具有數(shù)據(jù)庫存取功能。SQL 也非嚴(yán)格的結(jié)構(gòu)式語言,它的句法更接近英語語句,因此易于理解,大多數(shù) SQL 語句都是直述其意,讀起來就象自然語言一樣明了。SQL 還是一種交互式查詢語言,允許用戶直接查詢存儲數(shù)據(jù),利用這一交互特性,用戶可以在很短的時間內(nèi)回答相當(dāng)復(fù)雜的問題,而同樣問題若讓程序員編寫相應(yīng)的報表程序則可能要用幾個星期甚至更長時間。

   在大部分 ASP 應(yīng)用程序中我們都會接觸到數(shù)據(jù)庫,而我們在編寫 ASP 應(yīng)用程序時用來進(jìn)行數(shù)據(jù)庫操作的標(biāo)準(zhǔn)語法正是 SQL,因此 SQL 語法的重要性是不言而喻的。下面,我們就從最常用的 SQL 語句 SELECT 著手,一步一步地來學(xué)習(xí) SQL。

   查詢是 SQL 語言的核心,而用于表達(dá) SQL 查詢的 SELECT 語句則是功能最強(qiáng)也是最為復(fù)雜的 SQL 語句,它從數(shù)據(jù)庫中檢索數(shù)據(jù),并將查詢結(jié)果提供給用戶。在本文中我們將建立一個名為 tianjiao 的簡單數(shù)據(jù)庫,該庫中存放了一個叫 sales 的銷售記錄表,如下所示 :





































































姓名性別工資銷售目標(biāo)銷售額地區(qū)
888250080009000上海
吳冠軍3000100009999北京
雷鳴2000800010000四川
雪兒250050006000廣州
顧一260090009800大連
阿卓200040004000天津
熠天40002000020000全國




  在該表中有六列即六個字段 : 姓名、性別、工資、銷售目標(biāo)、銷售額、地區(qū),首先我們用 Select 語句列出姓名、銷售目標(biāo)和銷售額 :

   Select 姓名,銷售目標(biāo),銷售額 From sales

   結(jié)果如下 :












































姓名銷售目標(biāo)銷售額
88880009000
吳冠軍100009999
雷鳴800010000
雪兒50006000
顧一90009800
阿卓40004000
熠天2000020000


  然后,我們再列出所有男性的姓名、銷售目標(biāo)和銷售額 :

  Select 姓名,銷售目標(biāo),銷售額 From sales Where 性別 =" 男 "

  結(jié)果如下 :


































姓名銷售目標(biāo)銷售額
88880009000
吳冠軍100009999
雷鳴800010000
顧一90009800
熠天2000020000

  接下來,我們做一個相對復(fù)雜的查詢,列出銷售額大于銷售目標(biāo)的所有男性的姓名、銷售目標(biāo)和銷售額,并且按銷售目標(biāo)排序。
  Select 姓名,銷售目標(biāo),銷售額
  Form sales
  Where 銷售額 > 銷售目標(biāo)
  And 性別 =" 男 "
  Order By 銷售目標(biāo)

  結(jié)果如下 :




























姓名銷售目標(biāo)銷售額
88880009000
雷鳴800010000
顧一90009800
熠天2000020000

大家可以看到,對于簡單查詢,SQL Select 語句和英文語法很相象,我們來分析一下 SELECT 語句的完整格式,它包括六個子句,其中 SELECT 和 FROM 子句是必須的,其它子句可以任選,每個子句的功能如下 :

   1、Select 子句列出所有要求 SELECT 語句檢索的數(shù)據(jù)項。它放在 SELECT 語句開始處,指定此查詢要檢索的數(shù)據(jù)項。這些數(shù)據(jù)項通常用選擇表表示,即一組用“,”隔開的選擇項。按照從左到右的順序,每個選擇項產(chǎn)生的一個列的查詢結(jié)果,一個選擇項可能是以下項目:

   (1)、列名:標(biāo)識 FROM 子句指定表中的列。如果列名作為選擇項,則 SQL 直接從數(shù)據(jù)庫表中每行取出該列的值,再將其放在查詢結(jié)果的相應(yīng)行中。
   (2)、常數(shù):指定在查詢結(jié)果的每行中都放上該值。

   (3)、SQL 表達(dá)式:說明必須將要放入查詢結(jié)果中的值按表達(dá)式的規(guī)定進(jìn)行計算。

   2、From 子句列出包含所要查詢數(shù)據(jù)的表,它由關(guān)鍵字 FROM 后跟一組用逗號分開的表名組成。每個表明都代表一個包括該查詢要檢索數(shù)據(jù)的表。這些表稱為此 SQL 語句的表源,因為查詢結(jié)果都源于它們。
   3、Where 子句告訴 SQL 只查詢某些行中的數(shù)據(jù),這些行用搜索條件描述。

   4、Group By 子句指定匯總查詢,即不是對每行產(chǎn)生一個查詢結(jié)果,而是將相似的行進(jìn)行分組,再對每組產(chǎn)生一個匯總結(jié)果。

   5、Having 子句告訴 SQL 只產(chǎn)生有 Group By 得到的某些組的結(jié)果,和 Where 子句一樣,所需要的組也用一個搜索條件指定。

   6、Order By 子句將查詢結(jié)果按一列或多列中的數(shù)據(jù)排序。如果省略此子句,則查詢結(jié)果將是無序的。

   下面作者將提供一個簡單但實用的運用 SQL 語句查詢的 ASP 程序供大家參考。

   為了使大家更清楚更直接地了解 SQL 語法在 ASP 中的應(yīng)用,我們先將查詢的所有核心過程寫成一個名為 query2table 的 SUB,然后利用 ASP 的服務(wù)器端包容功能調(diào)用該 SUB。請將以下語句剪貼到記事簿,保存為 subdbtable.inc 文件,并置于虛擬目錄 asptest 下 :
  < %
  sub query2table(inputquery)
  set conntemp=server.createobject("adodb.connection")
  conntemp.open "DSN=Student;uid=student;pwd=aspmagic"
  set rstemp=conntemp.execute(inputquery)
  howmanyfields=rstemp.fields.count -1
  ' 統(tǒng)計數(shù)據(jù)庫中的列數(shù)
  %>
 ?。?table border=1>< tr>
 ?。?%
  for i=0 to howmanyfields
  %>
  < td>< b>< %=rstemp(i).name%>< /B>< /TD>
 ?。?% next %>
  < /tr>
 ?。?%
  do while not rstemp.eof
  %>
 ?。?tr>
 ?。?% for i = 0 to howmanyfields
  thisvalue=rstemp(i)
  If isnull(thisvalue) then
  thisvalue="?
  ' 如果字段為空,則將變量 thisvalue 的值定義為一個空格
  end if%>
 ?。?td valign=top>< %=thisvalue%>< /td>
 ?。?% next %>
 ?。?/tr>
  < %rstemp.movenext
  loop%>
 ?。?/table>
  < %
  rstemp.close
  set rstemp=nothing
  conntemp.close
  set conntemp=nothingend sub%>

   完成了 SUB 的定義過程,在下面幾個 ASP 程序中我們只要加入想要使用的 SQL 查詢語句,并調(diào)用該過程就可以非常方便的得到查詢結(jié)果。將以下四段代碼分別保存為 asp11a.asp、asp11b.asp、asp11c.asp、asp11d.asp 四個 .asp 文件。

 ?。?HEAD>< TITLE>asp11a.asp< /TITLE>< /HEAD>
 ?。?HTML>< body bgcolor="#FFFFFF">
 ?。?%
  call query2table("select > from publishers where name like 'A%%'")
' 將表 publishers 中所有姓名中有字母 A 的記錄查詢出來
  %>
 ?。?!--#include virtual="/asptest/subdbtable.inc"-->< /BODY>< /HTML>


 ?。?HEAD>< TITLE>asp11b.asp< /TITLE>< /HEAD>< HTML>< body bgcolor="#FFFFFF">
 ?。?%
  call query2table("select > from titles where Year_Published > = 1998")
' 將表 titles 中所有發(fā)表年份大于或等于 1998 年的記錄查詢出來
  %>
 ?。?!--#include virtual="/asptest/subdbtable.inc"-->< /BODY>< /HTML>


 ?。?HEAD>< TITLE>asp11c.asp< /TITLE>< /HEAD>< HTML>< body bgcolor="#FFFFFF">
  < %
  call query2table("select > from publishers where amount>10000 and sex='male'")
' 將表 publishers 中所有數(shù)量大于 10000 且性別為男的記錄查詢出來
  %>
  < !--#include virtual="/asptest/subdbtable.inc"-->< /BODY>< /HTML>


 ?。?HEAD>< TITLE>asp11d.asp< /TITLE>< /HEAD>< HTML>< body bgcolor="#FFFFFF">
  < %
  call query2table("select > from publishers where state< > 'NY'")
'將表 publishers 中所有所在城市不為紐約的記錄查詢出來。
  %>
  < !--#include virtual="/asptest/subdbtable.inc"-->< /BODY>< /HTML>

   利用 subdbtable.inc 文件中的所定義的過程 query2table,你就可以非常迅速地對數(shù)據(jù)庫進(jìn)行查詢,你所要做的只是將“conntemp.open "DSN=Student;uid=student;pwd=aspmagic"”中的數(shù)據(jù)庫名稱、用戶身份和密碼稍加改動,并在調(diào)用 query2table 時輸入想要使用的 SQL 查詢語句即可。是不是很簡單 ? 這就是 ASP 和 SQL 的魅力所在 !!!

   今天,我們雖然用了一整篇的篇幅只學(xué)習(xí)了一個 SQL 指令,但請你相信你所獲得遠(yuǎn)不同于一個 DOS 指令,SELECT 指令使得你可以非常容易地對數(shù)據(jù)庫進(jìn)行查詢,或許在這之前你對數(shù)據(jù)庫查詢還一無所知,但是通過本篇的學(xué)習(xí),你其實已經(jīng)會使用 ASP 進(jìn)行常用的數(shù)據(jù)庫查詢了,是不是很激動 ? 在下一篇中,作者將繼續(xù)給大家介紹 SQL 的其它幾個基本指令。


相關(guān)頻道: eNews

您對本文或本站有任何意見,請在下方提交,謝謝!

投稿信箱:tougao@enet16.com