同濟(jì)大學(xué)大學(xué)計(jì)算機(jī)基礎(chǔ)課件(第八章)_第1頁
同濟(jì)大學(xué)大學(xué)計(jì)算機(jī)基礎(chǔ)課件(第八章)_第2頁
同濟(jì)大學(xué)大學(xué)計(jì)算機(jī)基礎(chǔ)課件(第八章)_第3頁
同濟(jì)大學(xué)大學(xué)計(jì)算機(jī)基礎(chǔ)課件(第八章)_第4頁
同濟(jì)大學(xué)大學(xué)計(jì)算機(jī)基礎(chǔ)課件(第八章)_第5頁
已閱讀5頁,還剩99頁未讀 繼續(xù)免費(fèi)閱讀

下載本文檔

版權(quán)說明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請進(jìn)行舉報(bào)或認(rèn)領(lǐng)

文檔簡介

大學(xué)計(jì)算機(jī)基礎(chǔ)第八章數(shù)據(jù)庫基礎(chǔ)第四版1大學(xué)計(jì)算機(jī)基礎(chǔ)第八章數(shù)據(jù)庫基礎(chǔ)第四版18.1數(shù)據(jù)庫系統(tǒng)概述8.2數(shù)據(jù)庫的建立和維護(hù)8.3數(shù)據(jù)庫查詢8.4

窗體、報(bào)表數(shù)據(jù)庫基礎(chǔ)8.1數(shù)據(jù)庫系統(tǒng)概述數(shù)據(jù)庫基礎(chǔ)典型案例無紙化通用考試系統(tǒng)

大學(xué)計(jì)算機(jī)基礎(chǔ)VisualBasic程序設(shè)計(jì)C/C++程序設(shè)計(jì)軟件技術(shù)基礎(chǔ)應(yīng)用程序數(shù)據(jù)庫管理系統(tǒng)VBVC++PowerBuilder

Delphi

ACCESSSQLSERVERORACLEFOXPROSQL命令數(shù)據(jù)庫引摯數(shù)據(jù)庫信息化社會離不開信息系統(tǒng) 信息系統(tǒng)的核心和基礎(chǔ)是數(shù)據(jù)庫3典型案例無紙化通用考試系統(tǒng)應(yīng)用程序數(shù)據(jù)庫管理系統(tǒng)VBVC+計(jì)算機(jī)基礎(chǔ)教育網(wǎng)站

IEHTM、ASP客戶機(jī)服務(wù)器SQL命令數(shù)據(jù)庫發(fā)出請求響應(yīng)請求數(shù)據(jù)4計(jì)算機(jī)基礎(chǔ)教育網(wǎng)站IEHTM、ASP客戶機(jī)服務(wù)器SQL命令數(shù)8.1.1常用術(shù)語8.1.2數(shù)據(jù)庫技術(shù)的產(chǎn)生和發(fā)展8.1.3數(shù)據(jù)模型8.1.4

常見的數(shù)據(jù)庫系統(tǒng)及其開發(fā)工具8.1.5典型的新型數(shù)據(jù)庫系統(tǒng)8.1數(shù)據(jù)庫系概述8.1.1常用術(shù)語8.1數(shù)據(jù)庫系概述8.1.1常用術(shù)語1.數(shù)據(jù)庫(DataBase,DB)長期保存在計(jì)算機(jī)外存上的、有結(jié)構(gòu)的、可共享的數(shù)據(jù)集合。2.數(shù)據(jù)庫管理系統(tǒng)(DataBaseManagementSystem,DBMS)對數(shù)據(jù)庫進(jìn)行管理的軟件系統(tǒng)。數(shù)據(jù)庫的一切操作,如查詢、更新、插入、刪除以及各種控制,都是通過DBMS進(jìn)行的。DBMS是位于用戶(或應(yīng)用程序)和操作系統(tǒng)之間的軟件。借助于操作系統(tǒng)實(shí)現(xiàn)對數(shù)據(jù)的存儲和管理,使數(shù)據(jù)能被各種不同的用戶所共享,DBMS提供給用戶可使用的數(shù)據(jù)庫語言。3.數(shù)據(jù)庫系統(tǒng)(DataBaseSystem,DBS)由DB、DBMS、應(yīng)用程序、數(shù)據(jù)庫管理員、用戶等構(gòu)成的人-機(jī)系統(tǒng)。用戶應(yīng)用程序DBMS操作系統(tǒng)數(shù)據(jù)庫DB數(shù)據(jù)庫系統(tǒng)68.1.1常用術(shù)語1.數(shù)據(jù)庫(DataBase,DB8.1.2數(shù)據(jù)庫技術(shù)的產(chǎn)生和發(fā)展數(shù)據(jù)管理技術(shù)經(jīng)歷了三個發(fā)展階段人工管理階段文件管理階段數(shù)據(jù)庫系統(tǒng)階段78.1.2數(shù)據(jù)庫技術(shù)的產(chǎn)生和發(fā)展數(shù)據(jù)管理技術(shù)經(jīng)歷了三個發(fā)1.人工管理階段時間:20世紀(jì)50年代中期以前

硬件:只有卡片、紙帶、磁帶等存儲設(shè)備軟件:沒有操作系統(tǒng),沒有進(jìn)行數(shù)據(jù)管理的軟件應(yīng)用:以科學(xué)計(jì)算為目的特點(diǎn):程序和數(shù)據(jù)放在一起數(shù)據(jù)不能共享特征圖程序1數(shù)據(jù)1程序2數(shù)據(jù)2程序n數(shù)據(jù)n……81.人工管理階段時間:20世紀(jì)50年代中期以前程序1數(shù)據(jù)1人工管理階段數(shù)據(jù)管理示例例:兩個C語言程序,分別求10個數(shù)據(jù)之和和最大值。 程序與數(shù)據(jù)放在一起,數(shù)據(jù)沒有能夠共享9人工管理階段數(shù)據(jù)管理示例例:兩個C語言程序,分別求10個數(shù)據(jù)2.文件系統(tǒng)階段時間:20世紀(jì)60年代中期硬件:磁帶、磁盤等大容量存儲設(shè)備軟件:有了操作系統(tǒng)應(yīng)用:不僅用于科學(xué)計(jì)算,還用于數(shù)據(jù)管理.特點(diǎn):程序與數(shù)據(jù)分離數(shù)據(jù)有一定的獨(dú)立性實(shí)現(xiàn)了以文件為單位的數(shù)據(jù)共享特征圖數(shù)據(jù)文件1…文件管理系統(tǒng)數(shù)據(jù)文件n應(yīng)用程序1應(yīng)用程序2應(yīng)用程序n…數(shù)據(jù)文件2102.文件系統(tǒng)階段時間:20世紀(jì)60年代中期數(shù)據(jù)文件1…文件文件系統(tǒng)階段數(shù)據(jù)管理示例上例用文件實(shí)現(xiàn)11文件系統(tǒng)階段數(shù)據(jù)管理示例上例用文件實(shí)現(xiàn)113.數(shù)據(jù)庫系統(tǒng)階段時間:20世紀(jì)60年代后期硬件:出現(xiàn)了大容量且價(jià)格低廉的磁盤軟件:有了數(shù)據(jù)庫管理系統(tǒng)DBMS應(yīng)用:各個方面.特點(diǎn):數(shù)據(jù)結(jié)構(gòu)化數(shù)據(jù)共享性高,冗余小數(shù)據(jù)獨(dú)立性高數(shù)據(jù)由DBMS統(tǒng)一管理控制為用戶提供了友好的接口特征圖史料:

數(shù)據(jù)庫技術(shù)發(fā)展的分水嶺

書寫歷史的甲骨文123.數(shù)據(jù)庫系統(tǒng)階段時間:20世紀(jì)60年代后期史料:12數(shù)據(jù)庫系統(tǒng)階段數(shù)據(jù)管理示例上例用數(shù)據(jù)庫實(shí)現(xiàn) 求和:SELECTMax(Num)FROMData 求最大值:SELECTAvg(Num)FROMData13數(shù)據(jù)庫系統(tǒng)階段數(shù)據(jù)管理示例上例用數(shù)據(jù)庫實(shí)現(xiàn) 求和:4.數(shù)據(jù)庫系統(tǒng)的特點(diǎn)

(1)

采用一定的數(shù)據(jù)模型,最大限度地減少數(shù)據(jù)的冗余(2)最低的冗余度(3)有較高的數(shù)據(jù)獨(dú)立性用戶面對的是簡單的邏輯結(jié)構(gòu)操作而不涉及數(shù)據(jù)具體的物理存儲結(jié)構(gòu)(4)安全性設(shè)置用戶的使用權(quán)限在數(shù)據(jù)庫被破壞時,系統(tǒng)可把數(shù)據(jù)庫恢復(fù)到可用狀態(tài)。

(5)

完整性一些完整性檢驗(yàn)以確保數(shù)據(jù)符合某些規(guī)則,保證數(shù)據(jù)庫中數(shù)據(jù)始終是正確的。144.數(shù)據(jù)庫系統(tǒng)的特點(diǎn)(1)采用一定的數(shù)據(jù)模型,最大8.1.3數(shù)據(jù)模型

1.數(shù)據(jù)模型的定義

現(xiàn)實(shí)世界數(shù)據(jù)特征的模擬和抽象,數(shù)據(jù)庫中數(shù)據(jù)的存儲方式

2.數(shù)據(jù)模型的基本要求

較真實(shí)的模擬現(xiàn)實(shí)世界容易被人理解便于在計(jì)算機(jī)上實(shí)現(xiàn)3.數(shù)據(jù)模型的二個層次

概念模型(信息模型)

基本數(shù)據(jù)模型4.數(shù)據(jù)模型的三個要素?cái)?shù)據(jù)結(jié)構(gòu)

數(shù)據(jù)操作數(shù)據(jù)的約束條件

5.三種重要的數(shù)據(jù)模型層次模型、網(wǎng)狀模型、關(guān)系模型158.1.3數(shù)據(jù)模型1.數(shù)據(jù)模型的定義15

層次型

以樹形結(jié)構(gòu)來表示實(shí)體及其之間的聯(lián)系(1:n)1968年美國IBM公司推出的層次模型的IMS數(shù)據(jù)庫管理系統(tǒng)例:學(xué)校組織結(jié)構(gòu)圖

校部學(xué)院A系A(chǔ)學(xué)院B系B系C系D系E16層次型校部學(xué)院A系A(chǔ)學(xué)院B系B系C系D系E16

網(wǎng)狀型

以網(wǎng)狀結(jié)構(gòu)表示實(shí)體及其之間的聯(lián)系(m:n)1969年美國數(shù)據(jù)系統(tǒng)語言研究會下屬數(shù)據(jù)庫任務(wù)組公布了關(guān)于網(wǎng)狀模型的DBTG報(bào)告例:城市交通圖共同存在問題:難以實(shí)現(xiàn)系統(tǒng)擴(kuò)充,插入或刪除數(shù)據(jù)時,在于涉及到大量鏈接指針的調(diào)整。

17網(wǎng)狀型共同存在問題:17關(guān)系模型

Students表屬性名(字段名)屬性值(字段值)男張智忠學(xué)號姓名性別黨員專業(yè)出生年月助學(xué)金990001王濤男No物理82-01-21¥160.00990002莊前女Yes物理82-09-21¥200.00990101丁保華男No數(shù)學(xué)81-04-18¥180.00990102姜沛棋女No數(shù)學(xué)81-12-02¥280.00No數(shù)學(xué)80-08-06¥240.00990201程玲女Yes計(jì)算機(jī)82-11-14¥200.00990202黎敏艷女Yes計(jì)算機(jī)83-02-21¥160.00990103記錄

關(guān)鍵字唯一確定一條記錄

關(guān)系(二維表)值域:{男,女}一組二維表表示實(shí)體及其之間的聯(lián)系,建立在嚴(yán)格的數(shù)學(xué)概念的基礎(chǔ)上.1970年IBM公司研究員E.F.Codd發(fā)表論文提出了關(guān)系模型18關(guān)系模型Students表屬性名屬性值男張智忠學(xué)號姓名性別術(shù)語關(guān)系:一個關(guān)系一張二維表記錄:表中的一行屬性(字段):表中的一列關(guān)鍵字:某個屬性可以惟一地確定記錄值域:屬性的取值范圍19術(shù)語19特點(diǎn):關(guān)系必須規(guī)范化:表中不能再包含表。模型概念單一:數(shù)據(jù)本身自然地反映它們之間的聯(lián)系, 無需另設(shè)指針。關(guān)系運(yùn)算:集合運(yùn)算(并、差、交等)、關(guān)系運(yùn)算(選擇、投影、聯(lián)接等),結(jié)果還是關(guān)系。常見關(guān)系DBMS:MicrosoftAccess、VisualFoxPro、LotusApproach等;在大型機(jī)上的數(shù)據(jù)庫軟件有Oracle、SQLServer、Sybase和DB220特點(diǎn):常見關(guān)系DBMS:208.1.4常見的數(shù)據(jù)庫系統(tǒng)及其開發(fā)工具

應(yīng)用程序數(shù)據(jù)庫管理系統(tǒng)VBVCPowerBuilder

Delphi

ACCESSSQLSERVERORACLEFOXPROSQL命令數(shù)據(jù)庫引摯數(shù)據(jù)庫218.1.4常見的數(shù)據(jù)庫系統(tǒng)及其開發(fā)工具應(yīng)用程序數(shù)據(jù)庫管8.1.5新型數(shù)據(jù)庫系統(tǒng)分布式數(shù)據(jù)庫系統(tǒng)數(shù)據(jù)庫中一個數(shù)據(jù)在多個不同的地理位置存儲的和處理面向?qū)ο髷?shù)據(jù)庫可以像對待一般對象一樣存儲復(fù)雜信息與過程多媒體數(shù)據(jù)庫涉及圖像、音頻、視頻處理、三維動畫、數(shù)據(jù)存儲與檢索等技術(shù)數(shù)據(jù)倉庫面向主題的、集成的、穩(wěn)定的和隨時間變化的數(shù)據(jù)集合,用于決策制定工程數(shù)據(jù)庫存儲和管理各種工程設(shè)計(jì)圖形和工程設(shè)計(jì)文檔,并能為工程設(shè)計(jì)提供各種服務(wù)的數(shù)據(jù)庫空間數(shù)據(jù)庫是描述、存儲與處理具有位置、形狀、大小、分布特征及空間關(guān)系等屬性的空間數(shù)據(jù)及其屬性數(shù)據(jù)的數(shù)據(jù)庫系統(tǒng)228.1.5新型數(shù)據(jù)庫系統(tǒng)分布式數(shù)據(jù)庫系統(tǒng)228.2數(shù)據(jù)庫的建立一、Access概述二、Access數(shù)據(jù)庫的組成三、Access數(shù)據(jù)庫的建立238.2數(shù)據(jù)庫的建立一、Access概述23一、Access概述是Office的組件之一具有對數(shù)據(jù)進(jìn)行存儲、管理、處理等常規(guī)功能直觀的可視化操作操作工具和向?qū)жS富的函數(shù)功能24一、Access概述是Office的組件之一24實(shí)例創(chuàng)建表Students。Students的結(jié)構(gòu)字段名稱字段類型字段寬度學(xué)號Text6個字符姓名Text4個字符性別Text1個字符黨員Yes/No1個二進(jìn)制位專業(yè)Text20個字符出生年月Date/Time8字節(jié)助學(xué)金Currency8字節(jié)照片OLEObject不確定25實(shí)例創(chuàng)建表Students。Students的結(jié)構(gòu)字段名二、Access數(shù)據(jù)庫的組成

表:最基本的對象,表及其表之間的關(guān)系構(gòu)成數(shù)據(jù)庫的核心查詢:從表(或查詢)中選擇一部分?jǐn)?shù)據(jù),形成一個全局性的集合窗體:用戶與數(shù)據(jù)庫交互的界面,窗體的數(shù)據(jù)源是表或查詢報(bào)表:按指定的樣式格式化的數(shù)據(jù)形式宏:若干個操作的組合模塊:用戶用VB語言編寫應(yīng)用程序Web頁:向Internet上發(fā)布數(shù)據(jù)這些不同類型的對象集合構(gòu)成了一個數(shù)據(jù)庫文件,以.mdb存儲在盤上.26二、Access數(shù)據(jù)庫的組成表:最基本的對象三、Access數(shù)據(jù)庫的建立

字段數(shù)據(jù)類型有10種字段屬性大小、小數(shù)位、格式

確定表的結(jié)構(gòu)建立一個空數(shù)據(jù)庫,輸入文件名使用設(shè)計(jì)器或向?qū)?chuàng)建表,進(jìn)入設(shè)計(jì)視圖,輸入各個字段的信息建立表的索引定義主鍵輸入表的名稱保存表主要方法:數(shù)據(jù)庫向?qū)В0澹┗蛟O(shè)計(jì)視圖,一般用后者27三、Access數(shù)據(jù)庫的建立字段數(shù)據(jù)類型有10種1.Access數(shù)據(jù)庫的建立

3.定義表的結(jié)構(gòu)

1。建立空數(shù)據(jù)庫2.使用設(shè)計(jì)器或向?qū)?81.Access數(shù)據(jù)庫的建立3.定義表的結(jié)構(gòu)1。建立2.數(shù)據(jù)輸入

選定基本表,進(jìn)入數(shù)據(jù)表視圖,輸入編輯數(shù)據(jù)

添加新記錄292.數(shù)據(jù)輸入選定基本表,進(jìn)入數(shù)據(jù)表視圖,輸入編輯數(shù)據(jù)注意:打開的表或正在使用的表是不能修改的.修改字段名稱不會影響到字段中所存放的數(shù)據(jù),但是會影響到一些相關(guān)的部分。如果查詢、報(bào)表、窗體等對象使用了這個更換名稱的字段,那么在這些對象中也要作相應(yīng)的修改。關(guān)系表中互相關(guān)聯(lián)的字段是無法修改的,如果需要修改,必須先將關(guān)聯(lián)去掉選定基本表,進(jìn)入設(shè)計(jì)視圖,修改表結(jié)構(gòu)3.表結(jié)構(gòu)的修改30注意:選定基本表,進(jìn)入設(shè)計(jì)視圖,修改表結(jié)構(gòu)3.表結(jié)構(gòu)的修改34.數(shù)據(jù)的導(dǎo)出和導(dǎo)入導(dǎo)出操作可以將表中數(shù)據(jù)以另一種文件格式保存在磁盤上導(dǎo)入操作是導(dǎo)出操作的逆操作5.表的復(fù)制、刪除、恢復(fù)和更名類似于Windows中對文件或文件夾的操作注意在進(jìn)行這些操作之前,必須關(guān)閉有關(guān)的表操作必須在“數(shù)據(jù)庫”窗口中完成314.數(shù)據(jù)的導(dǎo)出和導(dǎo)入導(dǎo)出操作可以將表中數(shù)據(jù)以另一種文件格8.3數(shù)據(jù)庫查詢

一、SQL語言概述二、數(shù)據(jù)更新語句:INSERTINTO,DELETE,UPDATE三、數(shù)據(jù)查詢語句:SELECT四、多表查詢328.3數(shù)據(jù)庫查詢

一、SQL語言概述32一、SQL語言

什么是SQL語言

StructureQueryLanguage即結(jié)構(gòu)化查詢語言,1974年推出,已成為DBMS的國際標(biāo)準(zhǔn)語言,在眾多DBMS系統(tǒng)中使用。特點(diǎn)使用方便、功能豐富、語言簡單易學(xué)。工作方式獨(dú)立語言:直接輸入SQL命令與機(jī)器交互,實(shí)現(xiàn)對數(shù)據(jù)庫操作.

宿主語言:將SQL命令嵌入某高級語言中實(shí)現(xiàn)對數(shù)據(jù)庫操作.

33一、SQL語言什么是SQL語言特點(diǎn)工作方式33

SQL語言

進(jìn)入SQL視圖在“查詢”對象中選擇“在設(shè)計(jì)視圖中創(chuàng)建查詢”,建立空查詢表。在“視圖|SQL視圖”就可進(jìn)入其對話框輸入相應(yīng)的命令。SQL功能動詞數(shù)據(jù)查詢SELECT數(shù)據(jù)定義CREATE、DROP、ALTER數(shù)據(jù)更新INSERT、UPDATE、DELETE數(shù)據(jù)控制GRANT、REVOKE主要功能和動詞:34SQL語言進(jìn)入SQL視圖SQL功能動詞數(shù)據(jù)更新INSE二、數(shù)據(jù)更新-INSERT語句INSERT語句用于數(shù)據(jù)插入其語法格式為:插入一條記錄INSERTINTO表名[(字段1,…,字段n)]VALUES(值1,…,值n)插入查詢的結(jié)果INSERTINTO表名(字段1,…,字段n)VALUES子查詢35二、數(shù)據(jù)更新-INSERT語句INSERT語句用于數(shù)據(jù)插入例8.3向表Students中插入一條記錄INSERTINTOStudents(學(xué)號,姓名,性別,黨員,專業(yè),出生年月,助學(xué)金)VALUES(“990301”,"楊國強(qiáng)","男",TRUE,"化學(xué)",#12/28/80#,220)注意:字符型常量用單引號或雙引號括起來邏輯型字段的值是True/False、Yes/No或On/Off日期的表示形式為#

MM/DD/YY#

#MM/DD/YYYY#36例8.3向表Students中插入一條記錄36數(shù)據(jù)更新-DELETE語句例8.5刪除表Students中所有學(xué)號為990301的記錄DELETEFROMStudentsWHERE學(xué)號=“990301”例8.6刪除表Scores中成績低于70分的記錄DELETEFROMScoresWHERE成績<70DELETE語句用于數(shù)據(jù)刪除其語法格式為:DELETEFROM

表[WHERE條件]注意:

WHERE子句缺省,則刪除表中所有的記錄(表還在)37數(shù)據(jù)更新-DELETE語句例8.5刪除表Students中數(shù)據(jù)更新-UPDATE語句例8.7將表Students中學(xué)生王濤的姓名改為王寶球UPDATEStudentsSET姓名=“王寶球”WHERE姓名="王濤"例8.8將表Students中助學(xué)金低于200的學(xué)生加30元UPDATEStudentsSET助學(xué)金=助學(xué)金+30WHERE助學(xué)金<200UPDATE語句用于數(shù)據(jù)修改其語法格式為:UPDATE

SET字段1=表達(dá)式1,…,字段n=表達(dá)式n[WHERE條件]

注意:

WHERE子句缺省,則修改表中所有的記錄UPDATE語句一次只能對一個表進(jìn)行修改

38數(shù)據(jù)更新-UPDATE語句例8.7將表Students中學(xué)三、數(shù)據(jù)查詢SELECT語句查詢根據(jù)給定的條件,從一個或多個表中獲取所需的數(shù)據(jù),形成一張“虛表”(表中的記錄是與數(shù)據(jù)庫表鏈接產(chǎn)生的)。39三、數(shù)據(jù)查詢SELECT語句查詢39SELECT語句

語法形式為:SELECT[ALL|DISTINCT]目標(biāo)列FROM表(或查詢)[WHERE條件表達(dá)式][GROUPBY列名1HAVING過濾表達(dá)式][ORDERBY列名2[ASC|DESC]]不可缺少可缺省功能

根據(jù)WHERE子句中的表達(dá)式,從指定的表或視圖中找出滿足條件的記錄,按目標(biāo)列顯示數(shù)據(jù)GROUPBY子句按列名1的值進(jìn)行分組,每一組產(chǎn)生一條記錄,HAVING 短語對組進(jìn)行輸出過濾ORDERBY子句按列名2對查詢結(jié)果的值進(jìn)行排序不能出現(xiàn)重復(fù)的記錄40SELECT語句語法形式為:不可缺少可缺省功能不能出現(xiàn)重SELECT語句示例例8.9

查詢所用學(xué)生的基本情況SELECT學(xué)號,姓名,性別,黨員,專業(yè),出生年月,助學(xué)金,照片F(xiàn)ROMStudents例8.10查詢學(xué)生人數(shù)、最低、最高助學(xué)金和平均助學(xué)金SELECTCount(*)AS人數(shù),Min(助學(xué)金)AS最低助學(xué)金,Max(助學(xué)金)AS最高助學(xué)金,Avg(助學(xué)金)AS平均助學(xué)金FROMStudents可改為Count(學(xué)號)用別名命名輸出列本例產(chǎn)生一條記錄41SELECT語句示例例8.9查詢所用學(xué)生的基本情況可例8.12查詢學(xué)生的人數(shù)和平均年齡SELECTCount(*)AS人數(shù),Avg(Year(Date())-Year(出生年月))AS平均年齡FROMStudents例8.11查詢所用的專業(yè),查詢結(jié)果中不出現(xiàn)重復(fù)的記錄。SELECTDISTINCT專業(yè)FROMStudents不出現(xiàn)重復(fù)系統(tǒng)日期Year函數(shù)得到年份

42例8.12查詢學(xué)生的人數(shù)和平均年齡例8.11查詢所用的專例8.14顯示所有非計(jì)算機(jī)專業(yè)學(xué)生的學(xué)號、姓名和年齡SELECT學(xué)號,姓名,Year(Date())-Year(出生年月)AS年齡FROMStudentsWHERE專業(yè)<>"計(jì)算機(jī)"(1)WHERE子句示例例8.13查詢計(jì)算機(jī)專業(yè)學(xué)生的學(xué)號、姓名和專業(yè)SELECT學(xué)號,姓名,專業(yè)FROMStudentsWHERE專業(yè)="計(jì)算機(jī)"查詢條件例8.15查詢1981年(包括1981年)以前出生的女生姓名和出生年月。SELECT姓名,出生年月ROMStudentsWHERE出生年月<#1/1/1982#AND性別="女"可用#MM/DD/YYYY#的形式表示日期43例8.14顯示所有非計(jì)算機(jī)專業(yè)學(xué)生的學(xué)號、姓名和年齡(1)例8.17查詢選修了2門(包括2門)以上課程的學(xué)生的學(xué)號和課程數(shù)SELECT學(xué)號,Count(*)AS課程數(shù)FROMScoresGROUPBY學(xué)號

HAVINGCount(*)>=2(2)ORDERBY,GROUPBY子句示例例8.16查詢所有黨員學(xué)生的學(xué)號和姓名,并按助學(xué)金升序排列SELECT學(xué)號,姓名FROMStudentsWHERE黨員=TrueORDERBY助學(xué)金邏輯值按學(xué)號分組2門以上例8.18查詢所有課程的成績在70分以上的學(xué)生的學(xué)號SELECT學(xué)號FROMScoresGROUPBY學(xué)號HAVINGMin(成績)>=7044例8.17查詢選修了2門(包括2門)以上課程的學(xué)生的學(xué)號和課問查詢姓“張”的學(xué)生?Like運(yùn)算符45問查詢姓“張”的學(xué)生?Like運(yùn)算符45

Access2002的表達(dá)式

常用運(yùn)算符

型運(yùn)

符算術(shù)運(yùn)算符+-*/^(乘方)\(整除)MOD(取余數(shù))關(guān)系運(yùn)算符<<=<>>>=BetweenLike邏輯運(yùn)算符NotAndOr字符運(yùn)算符&通配符:* ? -任意字符串單個字符 一定范圍的字符用于LikeBetwwen運(yùn)算符中例姓名Like“?明*”46Access2002的表達(dá)式常用運(yùn)算符類型運(yùn)練習(xí)SELECT學(xué)號,COUNT(課程)AS課程數(shù),AVG(成績)AS平均成績FROMscores

GROUPBY學(xué)號

ORDERBY學(xué)號DESC;問查詢選修了2門(包括2門)以上課程、最低成績在60分以上的學(xué)生的學(xué)號、課程數(shù)和最低分?SELECT學(xué)號,Min(成績)AS成績之Min,Count(課程)AS課程之CountFROMScoresGROUPBYScores.學(xué)號HAVING(((Min(成績))>=60)AND((Count(課程))>2));例對學(xué)生成績表,統(tǒng)計(jì)每人的平均分和課程數(shù),按學(xué)號遞減排序47練習(xí)SELECT學(xué)號,COUNT(課程)AS課學(xué)號姓名性別黨員專業(yè)出生年月990001王濤男No物理82-01-21990002莊前女Yes物理82-09-21990101丁保華男No數(shù)學(xué)81-04-18990102姜沛棋女No數(shù)學(xué)81-12-02990103張智忠男No數(shù)學(xué)80-08-06990201程玲女Yes計(jì)算機(jī)82-11-14990202黎敏艷女Yes計(jì)算機(jī)83-02-21990203鄧倩梅女Yes計(jì)算機(jī)82-04-28990204楊夢逸女No計(jì)算機(jī)81-12-15學(xué)號課程成績990001大學(xué)計(jì)算機(jī)基礎(chǔ)82990001高等數(shù)學(xué)76990202計(jì)算機(jī)導(dǎo)論53990203英語71990204計(jì)算機(jī)導(dǎo)論66990204高等數(shù)學(xué)75990204英語82學(xué)生成績表學(xué)生基本情況表學(xué)號姓名課程成績990001王濤計(jì)算機(jī)文化基礎(chǔ)82990001王濤高等數(shù)學(xué)76990002莊前計(jì)算機(jī)文化基礎(chǔ)90990101丁保華高等數(shù)學(xué)77990102姜沛棋計(jì)算機(jī)文化基礎(chǔ)68990102姜沛棋C/C++程序設(shè)計(jì)85990102姜沛棋大學(xué)英語56990201程玲計(jì)算機(jī)導(dǎo)論87990201程玲高等數(shù)學(xué)67990202黎敏艷計(jì)算機(jī)導(dǎo)論53990203鄧倩梅英語71990204楊夢逸計(jì)算機(jī)導(dǎo)論66990204楊夢逸高等數(shù)學(xué)75990204楊夢逸英語8248學(xué)號姓名性黨專業(yè)出生年月990001王濤男No物理82-01(3)SELECT語句-連接查詢例8.20查詢所有學(xué)生的學(xué)號、姓名、課程和成績

SELECTStudents.學(xué)號,Students.姓名,Scores.課程,Scores.成績FROMStudents,ScoresWHEREStudents.學(xué)號=Scores.學(xué)號兩個表

連接條件

使用內(nèi)連接格式SELECTStudents.學(xué)號,Students.姓名,Scores.課程,Scores.成績FROMStudentsINNERJOINScores

ONStudents.學(xué)號=Scores.學(xué)號

連接條件

表1

連接命令

表249(3)SELECT語句-連接查詢例8.20查詢所有學(xué)生(4)嵌套查詢

在SQL中,將一個SELECT語句查詢塊嵌套在另一個SELECT語句的WHERE子句或HAVING子句中稱為嵌套查詢例8.25查詢沒有學(xué)過大學(xué)計(jì)算機(jī)基礎(chǔ)的學(xué)生的學(xué)號、姓名和專業(yè)SELECTStudents.學(xué)號,Students.姓名,Students.專業(yè)FROMStudentsWHEREStudents.學(xué)號

Notin

(SELECTScores.學(xué)號

FROMScoresWHEREScores.課程="大學(xué)計(jì)算機(jī)基礎(chǔ)")從Students中選擇學(xué)號不在學(xué)過該課程名單中的人從Scores中選擇學(xué)過計(jì)算機(jī)文化的學(xué)生的學(xué)號50(4)嵌套查詢在SQL中,將一個SELECT語句查詢塊嵌套嵌套查詢示例例8.26查詢與“鄧倩梅”在同一個專業(yè)的學(xué)生的學(xué)號和姓名

SELECTStudents.學(xué)號,Students.姓名FROMStudentsWHERE專業(yè)

in

(SELECTStudents.專業(yè)FROMStudentsWHEREStudents.姓名="鄧倩梅")與查詢結(jié)果同專業(yè)的學(xué)生查詢鄧倩梅的專業(yè)

51嵌套查詢示例例8.26查詢與“鄧倩梅”在同一個專業(yè)的學(xué)生的(5)使用向?qū)У牟樵?/p>

例8.27使用向?qū)Р樵兯脤W(xué)生的基本情況

1.進(jìn)入向?qū)нx定字段

2.選擇明細(xì)方式3.輸入查詢的名稱

4.查詢結(jié)果52(5)使用向?qū)У牟樵兝?.27使用向?qū)Р樵兯脤W(xué)生(6)在設(shè)計(jì)視圖中創(chuàng)建查詢

例8.28查詢學(xué)生人數(shù)、最低助學(xué)金、最高助學(xué)金和平均助學(xué)金1.進(jìn)入設(shè)計(jì)視圖2.選擇表Students添加到設(shè)計(jì)視圖3.輸入或選定查詢的字段

53(6)在設(shè)計(jì)視圖中創(chuàng)建查詢例8.28查詢學(xué)生人數(shù)、最低8.4窗體、報(bào)表

8.4.1創(chuàng)建窗體

例8.29創(chuàng)建下圖所示的窗體Scores1創(chuàng)建窗體的方法:使用向?qū)?chuàng)建窗體

使用設(shè)計(jì)視圖創(chuàng)建窗體

打開Student.mdb數(shù)據(jù)庫選擇使用向?qū)?chuàng)建窗體選定表Scores及所有字段選定窗體布局和窗體樣式輸入窗體名稱:Scores1548.4窗體、報(bào)表

8.4.1創(chuàng)建窗體例8.29創(chuàng)建使用設(shè)計(jì)視圖創(chuàng)建窗體

例8.30創(chuàng)建下圖所示的窗體Scores2數(shù)據(jù)分布在兩個表中,先建立下列查詢SELECTStudents.學(xué)號,First(Students.姓名)AS姓名,Avg(Scores.成績)AS平均成績FROMStudents,ScoresGROUPBYStudents.學(xué)號拖所需的字段5.拖放所需的字段1.進(jìn)入新建窗體2.選擇設(shè)計(jì)視圖3.命名查詢名稱4.建立查詢

55使用設(shè)計(jì)視圖創(chuàng)建窗體例8.30創(chuàng)建下圖所示的窗體Sco8.4.2創(chuàng)建報(bào)表

例8.31創(chuàng)建下圖所示的報(bào)表Scores1打開Student.mdb數(shù)據(jù)庫選擇使用向?qū)?chuàng)建報(bào)表選定表Scores及所有字段決定要否分組(本例不分組)選擇排序方式(本例按學(xué)號)

選擇表格布局方式

選擇報(bào)表樣式(本例為組織)

輸入報(bào)表名稱:Scores1

568.4.2創(chuàng)建報(bào)表例8.31創(chuàng)建下圖所示的報(bào)表Sco大學(xué)計(jì)算機(jī)基礎(chǔ)第八章數(shù)據(jù)庫基礎(chǔ)第四版57大學(xué)計(jì)算機(jī)基礎(chǔ)第八章數(shù)據(jù)庫基礎(chǔ)第四版18.1數(shù)據(jù)庫系統(tǒng)概述8.2數(shù)據(jù)庫的建立和維護(hù)8.3數(shù)據(jù)庫查詢8.4

窗體、報(bào)表數(shù)據(jù)庫基礎(chǔ)8.1數(shù)據(jù)庫系統(tǒng)概述數(shù)據(jù)庫基礎(chǔ)典型案例無紙化通用考試系統(tǒng)

大學(xué)計(jì)算機(jī)基礎(chǔ)VisualBasic程序設(shè)計(jì)C/C++程序設(shè)計(jì)軟件技術(shù)基礎(chǔ)應(yīng)用程序數(shù)據(jù)庫管理系統(tǒng)VBVC++PowerBuilder

Delphi

ACCESSSQLSERVERORACLEFOXPROSQL命令數(shù)據(jù)庫引摯數(shù)據(jù)庫信息化社會離不開信息系統(tǒng) 信息系統(tǒng)的核心和基礎(chǔ)是數(shù)據(jù)庫59典型案例無紙化通用考試系統(tǒng)應(yīng)用程序數(shù)據(jù)庫管理系統(tǒng)VBVC+計(jì)算機(jī)基礎(chǔ)教育網(wǎng)站

IEHTM、ASP客戶機(jī)服務(wù)器SQL命令數(shù)據(jù)庫發(fā)出請求響應(yīng)請求數(shù)據(jù)60計(jì)算機(jī)基礎(chǔ)教育網(wǎng)站IEHTM、ASP客戶機(jī)服務(wù)器SQL命令數(shù)8.1.1常用術(shù)語8.1.2數(shù)據(jù)庫技術(shù)的產(chǎn)生和發(fā)展8.1.3數(shù)據(jù)模型8.1.4

常見的數(shù)據(jù)庫系統(tǒng)及其開發(fā)工具8.1.5典型的新型數(shù)據(jù)庫系統(tǒng)8.1數(shù)據(jù)庫系概述8.1.1常用術(shù)語8.1數(shù)據(jù)庫系概述8.1.1常用術(shù)語1.數(shù)據(jù)庫(DataBase,DB)長期保存在計(jì)算機(jī)外存上的、有結(jié)構(gòu)的、可共享的數(shù)據(jù)集合。2.數(shù)據(jù)庫管理系統(tǒng)(DataBaseManagementSystem,DBMS)對數(shù)據(jù)庫進(jìn)行管理的軟件系統(tǒng)。數(shù)據(jù)庫的一切操作,如查詢、更新、插入、刪除以及各種控制,都是通過DBMS進(jìn)行的。DBMS是位于用戶(或應(yīng)用程序)和操作系統(tǒng)之間的軟件。借助于操作系統(tǒng)實(shí)現(xiàn)對數(shù)據(jù)的存儲和管理,使數(shù)據(jù)能被各種不同的用戶所共享,DBMS提供給用戶可使用的數(shù)據(jù)庫語言。3.數(shù)據(jù)庫系統(tǒng)(DataBaseSystem,DBS)由DB、DBMS、應(yīng)用程序、數(shù)據(jù)庫管理員、用戶等構(gòu)成的人-機(jī)系統(tǒng)。用戶應(yīng)用程序DBMS操作系統(tǒng)數(shù)據(jù)庫DB數(shù)據(jù)庫系統(tǒng)628.1.1常用術(shù)語1.數(shù)據(jù)庫(DataBase,DB8.1.2數(shù)據(jù)庫技術(shù)的產(chǎn)生和發(fā)展數(shù)據(jù)管理技術(shù)經(jīng)歷了三個發(fā)展階段人工管理階段文件管理階段數(shù)據(jù)庫系統(tǒng)階段638.1.2數(shù)據(jù)庫技術(shù)的產(chǎn)生和發(fā)展數(shù)據(jù)管理技術(shù)經(jīng)歷了三個發(fā)1.人工管理階段時間:20世紀(jì)50年代中期以前

硬件:只有卡片、紙帶、磁帶等存儲設(shè)備軟件:沒有操作系統(tǒng),沒有進(jìn)行數(shù)據(jù)管理的軟件應(yīng)用:以科學(xué)計(jì)算為目的特點(diǎn):程序和數(shù)據(jù)放在一起數(shù)據(jù)不能共享特征圖程序1數(shù)據(jù)1程序2數(shù)據(jù)2程序n數(shù)據(jù)n……641.人工管理階段時間:20世紀(jì)50年代中期以前程序1數(shù)據(jù)1人工管理階段數(shù)據(jù)管理示例例:兩個C語言程序,分別求10個數(shù)據(jù)之和和最大值。 程序與數(shù)據(jù)放在一起,數(shù)據(jù)沒有能夠共享65人工管理階段數(shù)據(jù)管理示例例:兩個C語言程序,分別求10個數(shù)據(jù)2.文件系統(tǒng)階段時間:20世紀(jì)60年代中期硬件:磁帶、磁盤等大容量存儲設(shè)備軟件:有了操作系統(tǒng)應(yīng)用:不僅用于科學(xué)計(jì)算,還用于數(shù)據(jù)管理.特點(diǎn):程序與數(shù)據(jù)分離數(shù)據(jù)有一定的獨(dú)立性實(shí)現(xiàn)了以文件為單位的數(shù)據(jù)共享特征圖數(shù)據(jù)文件1…文件管理系統(tǒng)數(shù)據(jù)文件n應(yīng)用程序1應(yīng)用程序2應(yīng)用程序n…數(shù)據(jù)文件2662.文件系統(tǒng)階段時間:20世紀(jì)60年代中期數(shù)據(jù)文件1…文件文件系統(tǒng)階段數(shù)據(jù)管理示例上例用文件實(shí)現(xiàn)67文件系統(tǒng)階段數(shù)據(jù)管理示例上例用文件實(shí)現(xiàn)113.數(shù)據(jù)庫系統(tǒng)階段時間:20世紀(jì)60年代后期硬件:出現(xiàn)了大容量且價(jià)格低廉的磁盤軟件:有了數(shù)據(jù)庫管理系統(tǒng)DBMS應(yīng)用:各個方面.特點(diǎn):數(shù)據(jù)結(jié)構(gòu)化數(shù)據(jù)共享性高,冗余小數(shù)據(jù)獨(dú)立性高數(shù)據(jù)由DBMS統(tǒng)一管理控制為用戶提供了友好的接口特征圖史料:

數(shù)據(jù)庫技術(shù)發(fā)展的分水嶺

書寫歷史的甲骨文683.數(shù)據(jù)庫系統(tǒng)階段時間:20世紀(jì)60年代后期史料:12數(shù)據(jù)庫系統(tǒng)階段數(shù)據(jù)管理示例上例用數(shù)據(jù)庫實(shí)現(xiàn) 求和:SELECTMax(Num)FROMData 求最大值:SELECTAvg(Num)FROMData69數(shù)據(jù)庫系統(tǒng)階段數(shù)據(jù)管理示例上例用數(shù)據(jù)庫實(shí)現(xiàn) 求和:4.數(shù)據(jù)庫系統(tǒng)的特點(diǎn)

(1)

采用一定的數(shù)據(jù)模型,最大限度地減少數(shù)據(jù)的冗余(2)最低的冗余度(3)有較高的數(shù)據(jù)獨(dú)立性用戶面對的是簡單的邏輯結(jié)構(gòu)操作而不涉及數(shù)據(jù)具體的物理存儲結(jié)構(gòu)(4)安全性設(shè)置用戶的使用權(quán)限在數(shù)據(jù)庫被破壞時,系統(tǒng)可把數(shù)據(jù)庫恢復(fù)到可用狀態(tài)。

(5)

完整性一些完整性檢驗(yàn)以確保數(shù)據(jù)符合某些規(guī)則,保證數(shù)據(jù)庫中數(shù)據(jù)始終是正確的。704.數(shù)據(jù)庫系統(tǒng)的特點(diǎn)(1)采用一定的數(shù)據(jù)模型,最大8.1.3數(shù)據(jù)模型

1.數(shù)據(jù)模型的定義

現(xiàn)實(shí)世界數(shù)據(jù)特征的模擬和抽象,數(shù)據(jù)庫中數(shù)據(jù)的存儲方式

2.數(shù)據(jù)模型的基本要求

較真實(shí)的模擬現(xiàn)實(shí)世界容易被人理解便于在計(jì)算機(jī)上實(shí)現(xiàn)3.數(shù)據(jù)模型的二個層次

概念模型(信息模型)

基本數(shù)據(jù)模型4.數(shù)據(jù)模型的三個要素?cái)?shù)據(jù)結(jié)構(gòu)

數(shù)據(jù)操作數(shù)據(jù)的約束條件

5.三種重要的數(shù)據(jù)模型層次模型、網(wǎng)狀模型、關(guān)系模型718.1.3數(shù)據(jù)模型1.數(shù)據(jù)模型的定義15

層次型

以樹形結(jié)構(gòu)來表示實(shí)體及其之間的聯(lián)系(1:n)1968年美國IBM公司推出的層次模型的IMS數(shù)據(jù)庫管理系統(tǒng)例:學(xué)校組織結(jié)構(gòu)圖

校部學(xué)院A系A(chǔ)學(xué)院B系B系C系D系E72層次型校部學(xué)院A系A(chǔ)學(xué)院B系B系C系D系E16

網(wǎng)狀型

以網(wǎng)狀結(jié)構(gòu)表示實(shí)體及其之間的聯(lián)系(m:n)1969年美國數(shù)據(jù)系統(tǒng)語言研究會下屬數(shù)據(jù)庫任務(wù)組公布了關(guān)于網(wǎng)狀模型的DBTG報(bào)告例:城市交通圖共同存在問題:難以實(shí)現(xiàn)系統(tǒng)擴(kuò)充,插入或刪除數(shù)據(jù)時,在于涉及到大量鏈接指針的調(diào)整。

73網(wǎng)狀型共同存在問題:17關(guān)系模型

Students表屬性名(字段名)屬性值(字段值)男張智忠學(xué)號姓名性別黨員專業(yè)出生年月助學(xué)金990001王濤男No物理82-01-21¥160.00990002莊前女Yes物理82-09-21¥200.00990101丁保華男No數(shù)學(xué)81-04-18¥180.00990102姜沛棋女No數(shù)學(xué)81-12-02¥280.00No數(shù)學(xué)80-08-06¥240.00990201程玲女Yes計(jì)算機(jī)82-11-14¥200.00990202黎敏艷女Yes計(jì)算機(jī)83-02-21¥160.00990103記錄

關(guān)鍵字唯一確定一條記錄

關(guān)系(二維表)值域:{男,女}一組二維表表示實(shí)體及其之間的聯(lián)系,建立在嚴(yán)格的數(shù)學(xué)概念的基礎(chǔ)上.1970年IBM公司研究員E.F.Codd發(fā)表論文提出了關(guān)系模型74關(guān)系模型Students表屬性名屬性值男張智忠學(xué)號姓名性別術(shù)語關(guān)系:一個關(guān)系一張二維表記錄:表中的一行屬性(字段):表中的一列關(guān)鍵字:某個屬性可以惟一地確定記錄值域:屬性的取值范圍75術(shù)語19特點(diǎn):關(guān)系必須規(guī)范化:表中不能再包含表。模型概念單一:數(shù)據(jù)本身自然地反映它們之間的聯(lián)系, 無需另設(shè)指針。關(guān)系運(yùn)算:集合運(yùn)算(并、差、交等)、關(guān)系運(yùn)算(選擇、投影、聯(lián)接等),結(jié)果還是關(guān)系。常見關(guān)系DBMS:MicrosoftAccess、VisualFoxPro、LotusApproach等;在大型機(jī)上的數(shù)據(jù)庫軟件有Oracle、SQLServer、Sybase和DB276特點(diǎn):常見關(guān)系DBMS:208.1.4常見的數(shù)據(jù)庫系統(tǒng)及其開發(fā)工具

應(yīng)用程序數(shù)據(jù)庫管理系統(tǒng)VBVCPowerBuilder

Delphi

ACCESSSQLSERVERORACLEFOXPROSQL命令數(shù)據(jù)庫引摯數(shù)據(jù)庫778.1.4常見的數(shù)據(jù)庫系統(tǒng)及其開發(fā)工具應(yīng)用程序數(shù)據(jù)庫管8.1.5新型數(shù)據(jù)庫系統(tǒng)分布式數(shù)據(jù)庫系統(tǒng)數(shù)據(jù)庫中一個數(shù)據(jù)在多個不同的地理位置存儲的和處理面向?qū)ο髷?shù)據(jù)庫可以像對待一般對象一樣存儲復(fù)雜信息與過程多媒體數(shù)據(jù)庫涉及圖像、音頻、視頻處理、三維動畫、數(shù)據(jù)存儲與檢索等技術(shù)數(shù)據(jù)倉庫面向主題的、集成的、穩(wěn)定的和隨時間變化的數(shù)據(jù)集合,用于決策制定工程數(shù)據(jù)庫存儲和管理各種工程設(shè)計(jì)圖形和工程設(shè)計(jì)文檔,并能為工程設(shè)計(jì)提供各種服務(wù)的數(shù)據(jù)庫空間數(shù)據(jù)庫是描述、存儲與處理具有位置、形狀、大小、分布特征及空間關(guān)系等屬性的空間數(shù)據(jù)及其屬性數(shù)據(jù)的數(shù)據(jù)庫系統(tǒng)788.1.5新型數(shù)據(jù)庫系統(tǒng)分布式數(shù)據(jù)庫系統(tǒng)228.2數(shù)據(jù)庫的建立一、Access概述二、Access數(shù)據(jù)庫的組成三、Access數(shù)據(jù)庫的建立798.2數(shù)據(jù)庫的建立一、Access概述23一、Access概述是Office的組件之一具有對數(shù)據(jù)進(jìn)行存儲、管理、處理等常規(guī)功能直觀的可視化操作操作工具和向?qū)жS富的函數(shù)功能80一、Access概述是Office的組件之一24實(shí)例創(chuàng)建表Students。Students的結(jié)構(gòu)字段名稱字段類型字段寬度學(xué)號Text6個字符姓名Text4個字符性別Text1個字符黨員Yes/No1個二進(jìn)制位專業(yè)Text20個字符出生年月Date/Time8字節(jié)助學(xué)金Currency8字節(jié)照片OLEObject不確定81實(shí)例創(chuàng)建表Students。Students的結(jié)構(gòu)字段名二、Access數(shù)據(jù)庫的組成

表:最基本的對象,表及其表之間的關(guān)系構(gòu)成數(shù)據(jù)庫的核心查詢:從表(或查詢)中選擇一部分?jǐn)?shù)據(jù),形成一個全局性的集合窗體:用戶與數(shù)據(jù)庫交互的界面,窗體的數(shù)據(jù)源是表或查詢報(bào)表:按指定的樣式格式化的數(shù)據(jù)形式宏:若干個操作的組合模塊:用戶用VB語言編寫應(yīng)用程序Web頁:向Internet上發(fā)布數(shù)據(jù)這些不同類型的對象集合構(gòu)成了一個數(shù)據(jù)庫文件,以.mdb存儲在盤上.82二、Access數(shù)據(jù)庫的組成表:最基本的對象三、Access數(shù)據(jù)庫的建立

字段數(shù)據(jù)類型有10種字段屬性大小、小數(shù)位、格式

確定表的結(jié)構(gòu)建立一個空數(shù)據(jù)庫,輸入文件名使用設(shè)計(jì)器或向?qū)?chuàng)建表,進(jìn)入設(shè)計(jì)視圖,輸入各個字段的信息建立表的索引定義主鍵輸入表的名稱保存表主要方法:數(shù)據(jù)庫向?qū)В0澹┗蛟O(shè)計(jì)視圖,一般用后者83三、Access數(shù)據(jù)庫的建立字段數(shù)據(jù)類型有10種1.Access數(shù)據(jù)庫的建立

3.定義表的結(jié)構(gòu)

1。建立空數(shù)據(jù)庫2.使用設(shè)計(jì)器或向?qū)?41.Access數(shù)據(jù)庫的建立3.定義表的結(jié)構(gòu)1。建立2.數(shù)據(jù)輸入

選定基本表,進(jìn)入數(shù)據(jù)表視圖,輸入編輯數(shù)據(jù)

添加新記錄852.數(shù)據(jù)輸入選定基本表,進(jìn)入數(shù)據(jù)表視圖,輸入編輯數(shù)據(jù)注意:打開的表或正在使用的表是不能修改的.修改字段名稱不會影響到字段中所存放的數(shù)據(jù),但是會影響到一些相關(guān)的部分。如果查詢、報(bào)表、窗體等對象使用了這個更換名稱的字段,那么在這些對象中也要作相應(yīng)的修改。關(guān)系表中互相關(guān)聯(lián)的字段是無法修改的,如果需要修改,必須先將關(guān)聯(lián)去掉選定基本表,進(jìn)入設(shè)計(jì)視圖,修改表結(jié)構(gòu)3.表結(jié)構(gòu)的修改86注意:選定基本表,進(jìn)入設(shè)計(jì)視圖,修改表結(jié)構(gòu)3.表結(jié)構(gòu)的修改34.數(shù)據(jù)的導(dǎo)出和導(dǎo)入導(dǎo)出操作可以將表中數(shù)據(jù)以另一種文件格式保存在磁盤上導(dǎo)入操作是導(dǎo)出操作的逆操作5.表的復(fù)制、刪除、恢復(fù)和更名類似于Windows中對文件或文件夾的操作注意在進(jìn)行這些操作之前,必須關(guān)閉有關(guān)的表操作必須在“數(shù)據(jù)庫”窗口中完成874.數(shù)據(jù)的導(dǎo)出和導(dǎo)入導(dǎo)出操作可以將表中數(shù)據(jù)以另一種文件格8.3數(shù)據(jù)庫查詢

一、SQL語言概述二、數(shù)據(jù)更新語句:INSERTINTO,DELETE,UPDATE三、數(shù)據(jù)查詢語句:SELECT四、多表查詢888.3數(shù)據(jù)庫查詢

一、SQL語言概述32一、SQL語言

什么是SQL語言

StructureQueryLanguage即結(jié)構(gòu)化查詢語言,1974年推出,已成為DBMS的國際標(biāo)準(zhǔn)語言,在眾多DBMS系統(tǒng)中使用。特點(diǎn)使用方便、功能豐富、語言簡單易學(xué)。工作方式獨(dú)立語言:直接輸入SQL命令與機(jī)器交互,實(shí)現(xiàn)對數(shù)據(jù)庫操作.

宿主語言:將SQL命令嵌入某高級語言中實(shí)現(xiàn)對數(shù)據(jù)庫操作.

89一、SQL語言什么是SQL語言特點(diǎn)工作方式33

SQL語言

進(jìn)入SQL視圖在“查詢”對象中選擇“在設(shè)計(jì)視圖中創(chuàng)建查詢”,建立空查詢表。在“視圖|SQL視圖”就可進(jìn)入其對話框輸入相應(yīng)的命令。SQL功能動詞數(shù)據(jù)查詢SELECT數(shù)據(jù)定義CREATE、DROP、ALTER數(shù)據(jù)更新INSERT、UPDATE、DELETE數(shù)據(jù)控制GRANT、REVOKE主要功能和動詞:90SQL語言進(jìn)入SQL視圖SQL功能動詞數(shù)據(jù)更新INSE二、數(shù)據(jù)更新-INSERT語句INSERT語句用于數(shù)據(jù)插入其語法格式為:插入一條記錄INSERTINTO表名[(字段1,…,字段n)]VALUES(值1,…,值n)插入查詢的結(jié)果INSERTINTO表名(字段1,…,字段n)VALUES子查詢91二、數(shù)據(jù)更新-INSERT語句INSERT語句用于數(shù)據(jù)插入例8.3向表Students中插入一條記錄INSERTINTOStudents(學(xué)號,姓名,性別,黨員,專業(yè),出生年月,助學(xué)金)VALUES(“990301”,"楊國強(qiáng)","男",TRUE,"化學(xué)",#12/28/80#,220)注意:字符型常量用單引號或雙引號括起來邏輯型字段的值是True/False、Yes/No或On/Off日期的表示形式為#

MM/DD/YY#

#MM/DD/YYYY#92例8.3向表Students中插入一條記錄36數(shù)據(jù)更新-DELETE語句例8.5刪除表Students中所有學(xué)號為990301的記錄DELETEFROMStudentsWHERE學(xué)號=“990301”例8.6刪除表Scores中成績低于70分的記錄DELETEFROMScoresWHERE成績<70DELETE語句用于數(shù)據(jù)刪除其語法格式為:DELETEFROM

表[WHERE條件]注意:

WHERE子句缺省,則刪除表中所有的記錄(表還在)93數(shù)據(jù)更新-DELETE語句例8.5刪除表Students中數(shù)據(jù)更新-UPDATE語句例8.7將表Students中學(xué)生王濤的姓名改為王寶球UPDATEStudentsSET姓名=“王寶球”WHERE姓名="王濤"例8.8將表Students中助學(xué)金低于200的學(xué)生加30元UPDATEStudentsSET助學(xué)金=助學(xué)金+30WHERE助學(xué)金<200UPDATE語句用于數(shù)據(jù)修改其語法格式為:UPDATE

SET字段1=表達(dá)式1,…,字段n=表達(dá)式n[WHERE條件]

注意:

WHERE子句缺省,則修改表中所有的記錄UPDATE語句一次只能對一個表進(jìn)行修改

94數(shù)據(jù)更新-UPDATE語句例8.7將表Students中學(xué)三、數(shù)據(jù)查詢SELECT語句查詢根據(jù)給定的條件,從一個或多個表中獲取所需的數(shù)據(jù),形成一張“虛表”(表中的記錄是與數(shù)據(jù)庫表鏈接產(chǎn)生的)。95三、數(shù)據(jù)查詢SELECT語句查詢39SELECT語句

語法形式為:SELECT[ALL|DISTINCT]目標(biāo)列FROM表(或查詢)[WHERE條件表達(dá)式][GROUPBY列名1HAVING過濾表達(dá)式][ORDERBY列名2[ASC|DESC]]不可缺少可缺省功能

根據(jù)WHERE子句中的表達(dá)式,從指定的表或視圖中找出滿足條件的記錄,按目標(biāo)列顯示數(shù)據(jù)GROUPBY子句按列名1的值進(jìn)行分組,每一組產(chǎn)生一條記錄,HAVING 短語對組進(jìn)行輸出過濾ORDERBY子句按列名2對查詢結(jié)果的值進(jìn)行排序不能出現(xiàn)重復(fù)的記錄96SELECT語句語法形式為:不可缺少可缺省功能不能出現(xiàn)重SELECT語句示例例8.9

查詢所用學(xué)生的基本情況SELECT學(xué)號,姓名,性別,黨員,專業(yè),出生年月,助學(xué)金,照片F(xiàn)ROMStudents例8.10查詢學(xué)生人數(shù)、最低、最高助學(xué)金和平均助學(xué)金SELECTCount(*)AS人數(shù),Min(助學(xué)金)AS最低助學(xué)金,Max(助學(xué)金)AS最高助學(xué)金,Avg(助學(xué)金)AS平均助學(xué)金FROMStudents可改為Count(學(xué)號)用別名命名輸出列本例產(chǎn)生一條記錄97SELECT語句示例例8.9查詢所用學(xué)生的基本情況可例8.12查詢學(xué)生的人數(shù)和平均年齡SELECTCount(*)AS人數(shù),Avg(Year(Date())-Year(出生年月))AS平均年齡FROMStudents例8.11查詢所用的專業(yè),查詢結(jié)果中不出現(xiàn)重復(fù)的記錄。SELECTDISTINCT專業(yè)FROMStudents不出現(xiàn)重復(fù)系統(tǒng)日期Year函數(shù)得到年份

98例8.12查詢學(xué)生的人數(shù)和平均年齡例8.11查詢所用的專例8.14顯示所有非計(jì)算機(jī)專業(yè)學(xué)生的學(xué)號、姓名和年齡SELECT學(xué)號,姓名,Year(Date())-Year(出生年月)AS年齡FROMStudentsWHERE專業(yè)<>"計(jì)算機(jī)"(1)WHERE子句示例例8.13查詢計(jì)算機(jī)專業(yè)學(xué)生的學(xué)號、姓名和專業(yè)SELECT學(xué)號,姓名,專業(yè)FROMStudentsWHERE專業(yè)="計(jì)算機(jī)"查詢條件例8.15查詢1981年(包括1981年)以前出生的女生姓名和出生年月。SELECT姓名,出生年月ROMStudentsWHERE出生年月<#1/1/1982#AND性別="女"可用#MM/DD/YYYY#的形式表示日期99例8.14顯示所有非計(jì)算機(jī)專業(yè)學(xué)生的學(xué)號、姓名和年齡(1)例8.17查詢選修了2門(包括2門)以上課程的學(xué)生的學(xué)號和課程數(shù)SELECT學(xué)號,Count(*)AS課程數(shù)FROMScoresGROUPBY學(xué)號

HAVINGCount(*)>=2(2)ORDERBY,GROUPBY子句示例例8.16查詢所有黨員學(xué)生的學(xué)號和姓名,并按助學(xué)金升序排列SELECT學(xué)號,姓名FROMStudentsWHERE黨員=TrueORDERBY助學(xué)金邏輯值按學(xué)號分組2門以上例8.18查詢所有課程的成績在70分以上的學(xué)生的學(xué)號SELECT學(xué)號FROMScoresGROUPBY學(xué)號HAVINGMin(成績)>=70100例8.17查詢選修了2門(包括2門)以上課程的學(xué)生的學(xué)號和課問查詢姓“張”的學(xué)生?Like運(yùn)算符101問查詢姓“張”的學(xué)生?Like運(yùn)算符45

Access2002的表達(dá)式

常用運(yùn)算符

型運(yùn)

符算術(shù)運(yùn)算符+-*/^(乘方)\(整除)MOD(取余數(shù))關(guān)系運(yùn)算符<<=<>>>=BetweenLike邏輯運(yùn)算符NotAndOr字符運(yùn)算符&通配符:* ? -任意字符串單個字符 一定范圍的字符用于LikeBetwwen運(yùn)算符中例姓名Like“?明*”102Access2002的表達(dá)式常用運(yùn)算符類型運(yùn)練習(xí)SELECT學(xué)號,COUNT(課程)AS課程數(shù),AVG(成績)AS平均成績FROMscores

GROUPBY學(xué)號

ORDERBY學(xué)號DESC;問查詢選修了2門(包括2門)以上課程、最低成績在60分以上的學(xué)生的學(xué)號、課程數(shù)和最低分?SELECT學(xué)號,Min(成績)AS成績之Min,Count(課程)AS課程之CountFROMScoresGROUPBYScores.學(xué)號HAVING(((Min(成績))>=60)AND((Count(課程))>2));例對學(xué)生成績表,統(tǒng)計(jì)每人的平均分和課程數(shù),按學(xué)號遞減排序103練習(xí)SELECT學(xué)號,COUNT(課程)AS課學(xué)號姓名性別黨員專業(yè)出生年月990001王濤男No物理82-01-21990002莊前女Yes物理82-09-21990101丁保華男No數(shù)學(xué)81-04-18990102姜沛棋女No數(shù)學(xué)81-12-02990103張智忠男No數(shù)學(xué)80-08-06990201程玲女Ye

溫馨提示

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

評論

0/150

提交評論