《ASP程序設計》課件第8章數據庫基礎_第1頁
《ASP程序設計》課件第8章數據庫基礎_第2頁
《ASP程序設計》課件第8章數據庫基礎_第3頁
《ASP程序設計》課件第8章數據庫基礎_第4頁
《ASP程序設計》課件第8章數據庫基礎_第5頁
已閱讀5頁,還剩32頁未讀 繼續免費閱讀

下載本文檔

版權說明:本文檔由用戶提供并上傳,收益歸屬內容提供方,若內容存在侵權,請進行舉報或認領

文檔簡介

本章導讀數據庫的基本概念1結構化查詢語言SQL語句2MicroftAccess2000數據庫創建3本章導讀:數據庫技術是ASP實現動態網頁功能的物質基礎。利用ASP開發小型項目時,Access往往是首選的數據庫管理系統。SQL(StructureQueryLanguage,結構化查詢語言)是關系型數據庫的通用查詢語言,用于對數據庫中的數據進行組織、管理和檢索的工具。

本章要點:8.1數據庫概述

8.1.1數據庫的基本概念

數據:是指存儲在某一種媒體上能夠被識別的物理符號。它包括兩方面的內容:一是描述事務特性的數據內容,二是存儲在某一種媒體上的數據形式。描述事務特性必須借助一定的符號,這些符號就是數據形式。數據形式多種多樣,例如,某人的出生日期可以是{^2008-1-18},也可以是#2008-1-18#,或者是”2008年1月18日”等。

8.1.1數據庫的基本概念數據庫管理系統:是用于管理數據庫的計算機軟件,是用戶與數據庫之間的接口。數據庫管理系統使用戶能方便地定義和操作數據,維護數據的安全性和完整性,以及進行多用戶的并發控制和數據庫恢復。根據數據之間的關系,數據庫管理系統可以分為:層次型、網狀型和關系型?,F在使用較多的是關系型數據庫管理系統。與ASP搭配的數據庫主要是SQLServer和Access。8.1.1數據庫的基本概念關系型數據庫采用二維表的方式來描述數據與數據之間的關系,表格的每一列都是一個屬性,俗稱字段;字段有字段名和字段值,字段名在一個表中不能重復。表格的每一行都表示一個實體或者兩個實體之間的聯系,俗稱記錄;行列交叉位置稱為值,值有數據類型、字節大小等相關屬性。數據庫系統:是指引進數據庫技術的計算機系統,包括計算機硬件系統、數據庫管理系統、操作系統以及在它支持下建立起來的數據庫,應用程序、用戶和維護人員的組成的一個整體。數據庫管理系統是數據庫系統的核心軟件。8.2數據庫SQLServer2000簡介簡介數據庫SQLServer2000是創建面向大型聯機事務處理,數據倉庫和電子商務的一個新型平臺。SQLServer2000支持完全集成的XML環境、分析服務中的新的數據開采特性,以及元數據服務器中增強的知識庫技術。SQLServer2000的數據庫能夠被分散在一組獨立的數據庫服務器上,以支持大規模web站點的訪問需求和企業級的數據處理系統。8.3數據庫Access簡介數據庫Access是一個桌面關系型數據庫管理系統和應用程序生成器。Access具有很強的數據處理功能,人們可以利用它來解決大量數據的管理功能。Access數據庫是由二維表組成。它使用標準的SQL作為它的數據庫訪問語言。作為網站后臺數據庫的選擇之一,Access具有簡單易用,快捷方便的特點。本書主要以Access作為數據庫平臺。8.3.1建立數據庫8.3.2建立查詢

8.3.1建立數據庫可以通過Access管理界面方便地創建Access數據庫和數據庫表,主要步驟如下:⑴啟動Access程序,首次出現新建和打開數據庫窗口,如圖8-1所示的【新建數據庫】對話框;8.3.1建立數據庫⑵在當前對話框中選擇“空Access數據庫”單選按鈕,并單擊【確定】按鈕,彈出如圖8-2所示的【文件新建數據庫】對話框,在當前窗口選擇一個存儲位置,并為數據庫文件命名jxgl,最后單擊【創建】按鈕,彈出數據庫設計器,如圖8-3所示的【jxgl:數據庫】對話框①;8.3.1建立數據庫

⑶在當前對話框中雙擊“設計器創建表”,彈出表設計器如圖8-4所示的【表1:表】對話框,設置相關字段名和數據類型等,單擊菜單【文件→保存】命令,彈出如圖8-5所示的【另存為】對話框,輸入表名稱“xsxx”,再單擊【確定】按鈕;返回表設計器;即如圖8-4所示的【表1:表】對話框。

8.3.1建立數據庫⑷單擊當前窗口中的右上角的關閉按鈕,回到主界面如圖8-6所示的【jxgl:數據庫】對話框②;在當前對話框中雙擊xsxx,打開記錄輸入如圖8-7所示的【xsxx表】輸入記錄對話框,輸入數據。

8.3.1建立數據庫8.3.1建立數據庫根據上述步驟依次建立課程表kc和選課表xx,如圖8-8和圖8-9所示。

8.3.2建立查詢集合首先,回到數據庫的主窗口,在左邊對象列表中選擇“查詢”,如圖8-10所示的【jxgl:數據庫】對話框③,在右邊雙擊“在設計視圖中創建查詢”,彈出查詢設計器窗口,如圖8-11所示;8.3.2建立查詢集合其次選擇對象表,如選擇表xsxx,單擊【添加】按鈕,將表xsxx加入查詢設計器窗口,然后單擊【關閉】按鈕,如圖8-12所示,在本窗口中,可以進行可視化查詢設計,從中選擇查詢的字段,如字段“籍貫”字段,雙擊即可。8.3.2建立查詢集合最后單擊【查詢】→【運行】,則查詢結果以表格形式出現,如圖8-13所示。以上操作也可以通過SQL語句完成。在查詢設計器窗口中單擊【關閉】按鈕,然后單擊右鍵,選擇“SQL視圖”,彈出如圖8-14所示的【查詢2:選擇查詢】對話框,輸入查詢語句select籍貫fromxsxx也可。8.4SQL語言簡介

SQL(StructureQueryLanguage,結構化查詢語言)是一種被關系型數據庫產品廣泛使用的標準結構化查詢語言。主要用于對數據庫中的數據進行組織、管理和檢索。各種關系型數據庫都支持SQL指令。SQL語句是一種類似于英語的語句,很容易理解,大多數語句都直述其意,讀起來像自然語言一樣明了。SQL語言是非過程化的語言(第四代語言),不像C、Cobol、Fortran等那樣是完整的計算機語言,確切地說,SQL是一種數據庫子語言,SQL可以被嵌入到另一種語言中,從而使其具有數據庫功能。學好SQL語言對ASP編程是非常重要的。

8.4SQL語言簡介結合SQL語句分為4類:DDL數據定義語言:用于定義、修改或者刪除數據庫對象,如create、drop、alter;DQL數據查詢語言:用于對數據進行查詢,如select;DML數據操縱語言:用于訪問、建立或者操縱在數據庫中已經存在數據,如insert、update、delete;DCL數據控制語言:管理對數據庫對象的訪問權限和回收,如表grant、revoke。8.4.1基本SQL語句

8.4.2Select語句

8.4.3insert語句

8.4.4delete語句

8.4.5update語句

8.4.1基本SQL語句

基本SQL語句包括DQL和DML。也就是最常用的四大基本操作:查詢(select)、插入(insert)、刪除(delete)、更新(update)。

8.4.2Select語句select語句是SQL中功能最強大也是最復雜的語句,它負責從數據庫中檢索數據。它的基本形式由Select–From-Where查詢塊組成,多個查詢塊可以被嵌套執行,select-SQL的語法基本結構如下:select[all|distinct|top<數值>[percent]][*|字段名列表][<聚合函數><*|字段名>]from<表或查詢視圖>[[left|right|inner|full]join<表或查詢>on<條件表達式>][where<條件表達式>][groupby<分組字段名>[having<條件表達式>]][orderby<排序字段名>[asc|desc]]

8.4.2Select語句功能:完成各種查詢任務。說明:⑴

select:查詢的命令;⑵

all|distinct|top<數值>[percent]:all表示輸出所有滿足條件的記錄;distinct表示去掉重復的記錄,只輸出第一次出現的記錄,即重復的記錄不重復輸出;top<數值>[percent]表示在滿足條件的記錄中選擇前若干條記錄輸出,其中percent表示所占百分比;⑶*|字段名列表:查詢輸出的字段內容,“*”表示所有字段;⑷<聚合函數><*|字段名>:用于統計和計算;⑸

from<表或查詢視圖>:查詢的數據來源哪些表和查詢視圖8.4.2Select語句集合⑹[left|right|inner|full]join<表或查詢>on<條件表達式>:進行多表查詢的聯接方式及聯接條件;⑺

where<條件表達式>:設置查詢的條件,過濾不需要的記錄行。where子句包以下幾類條件運算符號:①比較運算符:>、>=、=、<、<=、<>;②范圍運算符:[not]in、[not]between…and、is[not]null;③邏輯運算符:not、and、or;④模式匹配運算符:[not]like,模式匹配運算符可以使用一些通配符,不同數據庫的通配符可能不一樣,如SQLServer中,使用“%”匹配任意長度的字符串,使用“_”匹配一個未知的字符。在Access中,常用的通配符及其意義如表8-1所示:8.4.2Select語句集合通配符說明示例*匹配任意長度的字符串wh*可以找到what,white,why等,ASP語句恢復使用“%”?匹配1個長度的字符串b?ll可以找到ball,bill等,ASP語句恢復使用“_”[]匹配[]指定字符中的一個b[ae]ll可以找到ball,bell但找不到bill[!]匹配不在[]之內的字符b[!ae]ll能找到bill和bull,但不找ball和bell[-]匹配某個范圍內一個字符b[a-c]d可以找到bad,bbd和bcd#匹配任意單個數字字符1#3可以找到103,113,123表8-1子字段取值及其含義8.4.2Select語句集合⑻[groupby<分組字段名>[having<條件表達式>]]:groupby用于對查詢結果進行分組,進行分類匯總,不可以在子查詢中使用該子句;having必須跟在groupby后面,用于限定分組的條件;⑼orderby<排序字段名>[asc|desc]:對查詢結果輸出進行排序,不可以在子查詢中使用該子句,asc|desc表示升降序,缺省時為升序。

8.4.2.1簡單查詢簡介簡單查詢是由select…from和where短語構成的基本語句。⑴從xsxx表中檢索所有籍貫;select籍貫fromxsxx⑵從xsxx檢索所有不同籍貫;selectdistinct籍貫fromxsxx⑶檢索表中所有記錄;select*fromkc⑷檢索入學成績高于600分的記錄;select*fromxsxxwhere入學成績>600⑸檢索哪些籍貫的學生有男生;selectdistinct籍貫fromxsxxwhere性別="男"⑹檢索工商管理或信息管理專業學習,并且入學成績低于600分的學生學號;select學號fromxsxxwhere入學成績<600and(專業="信息管理"or專業="工商管理")8.4.2.2簡單的聯接查詢簡介簡單的聯接查詢是指基于多個表的基本語句。⑴找出入學成績高于600分和他們的所選修的課程號;selectxsxx.學號,課程代號fromxsxx,xxwhere入學成績>600andxsxx.學號=xx.學號;⑵找出男生所選修的課程代號及其姓名;select姓名,性別,課程代號fromxsxx,xxwhere性別="男"andxsxx.學號=xx.學號;

8.4.2.3嵌套查詢

嵌套查詢是基于多個表的查詢,與聯接查詢的區別,查詢的結果來自一個表,而查詢的條件卻涉及多個表。⑴找出選修課的成績為85分的學生;select姓名fromxsxxwhere學號in(select學號fromxxwhere成績=85);⑵查詢所有選修課的成績都高于80分的學生的信息;select*fromxsxxwhere學號notin(select學號fromxxwhere成績<=80)and學號in(select學號fromxx);注意:查詢所有選修課的成績都高于80分的學生信息,并且這些學生至少選了一門課,所以加上and學號in(select學號fromxx);⑶找出和王同學同年出生的所有學生,輸出他們的姓名,性別和出生日期;select姓名,性別,出生日期fromxsxxwhereyear(出生日期)=(selectyear(出生日期)fromxsxxwhere姓名="王同學");8.4.2.4特殊的運算符號

[not]in:[不]在……之中[not]between…and:[不]在……之間[not]like:[不]與……匹配is[not]null:是[否]空值⑴檢索入學成績在550分到590分之間的學生信息;select*fromxsxxwhere入學成績between550and590;⑵找出籍貫不在湖北的全部學生的學號、姓名和籍貫信息;select學號,姓名,籍貫fromxsxxwherenot籍貫="湖北";⑶找出選修課成績不在80分到90分之間的全部選修信息;select*fromxxwhere成績notbetween80and90;⑷找出“學生”表里專業中含有“管”字的學生信息;select*fromxsxxwhere專業like"*管*";⑸找出尚未確定選課老師的課程情況;select*fromkcwhere教師isnull;8.4.2.5查詢結果排序

格式:[orderby<排序選項1>[asc|desc]]功能:將結果排序。⑴按入學成績的升序檢索男生的學號、姓名、性別和入學成績信息;select學號,姓名,性別,入學成績fromxsxxwhere性別="男"orderby入學成績;⑵先按學生的性別排序,再按出生年月排序,并輸出全部學生信息;select*fromxsxxorderby性別,出生日期;8.4.2.6聚合函數查詢方法集合函數在信息管理系統中經常使用,功能是進行一些基本的統計和計算,聚合函數有5個,這些函數如表8-2所示。

名稱說明sum(<字段名>)計算出某個字段的總和avg(<字段名>)計算出某個字段的平均值Count(<*|字段名>)計算出返回記錄的行數max(<字段名>)計算出某個字段的最大值min(<字段名>)計算出某個字段的最小值表8-2SQL聚合函數8.4.2.6聚合函數查詢方法⑴求入學成績的總分數;selectsum(入學成績)fromxsxx;⑵求王同學和潘同學選修課程成績的總和;selectsum(成績)fromxxwhere學號in(select學號fromxsxxwhere姓名="王同學"or姓名="潘同學");⑶求選修課程代號為01的平均成績;selectavg(成績)fromxxwhere課程代號="01";⑷求選修了課程的教師人數;selectcount(教師)fromkc;⑸求出入學成績最高的學生;selectmax(入學成績)as最高分fromxsxx;⑹求出選修課成績最小的學生;selectmin(成績)as最低分fromxx;8.4.2.7分組查詢

格式:[groupby<分組選項>[having<條件表達式>]]說明:指定輸出分組和分組的條件。⑴求每門選修課程課的平均成績;select課程代號,avg(成績)fromxxgroupby課程代號;⑵求至少有3個學生選修的課程的平均成績;select課程代號,count(*),avg(成績)fromxxgroupby課程代號

havingcount(*)>=3;8.4.2.8超聯接查詢

格式:select…from<表1>inner|left|right|full|join<表2>on<連接條件>where……功能:根據聯接條件對<表1>和<表2>進行內部聯接,或左聯接,或右聯接,完全聯接。說明:⑴innerjoin:內部聯接,只有滿足條件的記錄才出現在查詢結果中;例:查詢學生姓名的同時查詢對應的選修成績。selectxsxx.姓名,xx.成績

fromxsxxinnerjoinxxonxsxx.學號=xx.學號;⑵leftjoin:左聯接,以<表1>為依據,顯示<表2>與之關聯的數據記錄;⑶rightjoin:右聯接,以<表2>為依據,顯示<表1>與之關聯的數據記錄;⑷fulljoin:完全聯接,先以<表1>為依據,顯示<表2>與之關聯的數據記錄,再以<表2>為依據,顯示<表1>與之關聯的數據記錄,去掉重復出現的記錄行。8.4.3insert語句

ASP網頁向數據庫添加記錄的方法主要分為兩種:一種使用recordset對象的(記錄對象)的addnew方法;另一種是直接執行SQL插入語句insert命令。insert語句可給數據庫中的某一個表添加一條或多條新記錄。單記錄格式:insertinto<表名>[<字段名列表>]values<表達式清單>多記錄格式:insertinto<表名>[<字段名列表>]select[<源字段名列表>]from<源表名>⑴往選修表里摻入記錄("02301","05",90);insertintoxx(學號,課程代號,成績)values("02501","05",90)⑵選修課“離散數學”老師尚未確定,往“課程”表追加記錄("11","離散數學",null);insertintokc(課程代號,課程名稱,教師)values("11","離散數學",null)8.4.4delete語句

格式:deletefrom<表名>where<條件表達式>功能:可刪除表或視圖中的一條或多條記錄。

溫馨提示

  • 1. 本站所有資源如無特殊說明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請下載最新的WinRAR軟件解壓。
  • 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請聯系上傳者。文件的所有權益歸上傳用戶所有。
  • 3. 本站RAR壓縮包中若帶圖紙,網頁內容里面會有圖紙預覽,若沒有圖紙預覽就沒有圖紙。
  • 4. 未經權益所有人同意不得將文件中的內容挪作商業或盈利用途。
  • 5. 人人文庫網僅提供信息存儲空間,僅對用戶上傳內容的表現方式做保護處理,對用戶上傳分享的文檔內容本身不做任何修改或編輯,并不能對任何下載內容負責。
  • 6. 下載文件中如有侵權或不適當內容,請與我們聯系,我們立即糾正。
  • 7. 本站不保證下載資源的準確性、安全性和完整性, 同時也不承擔用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。

評論

0/150

提交評論