同濟大學大學計算機基礎課件(第八章)_第1頁
同濟大學大學計算機基礎課件(第八章)_第2頁
同濟大學大學計算機基礎課件(第八章)_第3頁
同濟大學大學計算機基礎課件(第八章)_第4頁
同濟大學大學計算機基礎課件(第八章)_第5頁
已閱讀5頁,還剩99頁未讀 繼續免費閱讀

下載本文檔

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

文檔簡介

大學計算機基礎第八章數據庫基礎第四版1大學計算機基礎第八章數據庫基礎第四版18.1數據庫系統概述8.2數據庫的建立和維護8.3數據庫查詢8.4

窗體、報表數據庫基礎8.1數據庫系統概述數據庫基礎典型案例無紙化通用考試系統

大學計算機基礎VisualBasic程序設計C/C++程序設計軟件技術基礎應用程序數據庫管理系統VBVC++PowerBuilder

Delphi

ACCESSSQLSERVERORACLEFOXPROSQL命令數據庫引摯數據庫信息化社會離不開信息系統 信息系統的核心和基礎是數據庫3典型案例無紙化通用考試系統應用程序數據庫管理系統VBVC+計算機基礎教育網站

IEHTM、ASP客戶機服務器SQL命令數據庫發出請求響應請求數據4計算機基礎教育網站IEHTM、ASP客戶機服務器SQL命令數8.1.1常用術語8.1.2數據庫技術的產生和發展8.1.3數據模型8.1.4

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

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

數據庫技術發展的分水嶺

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

(1)

采用一定的數據模型,最大限度地減少數據的冗余(2)最低的冗余度(3)有較高的數據獨立性用戶面對的是簡單的邏輯結構操作而不涉及數據具體的物理存儲結構(4)安全性設置用戶的使用權限在數據庫被破壞時,系統可把數據庫恢復到可用狀態。

(5)

完整性一些完整性檢驗以確保數據符合某些規則,保證數據庫中數據始終是正確的。144.數據庫系統的特點(1)采用一定的數據模型,最大8.1.3數據模型

1.數據模型的定義

現實世界數據特征的模擬和抽象,數據庫中數據的存儲方式

2.數據模型的基本要求

較真實的模擬現實世界容易被人理解便于在計算機上實現3.數據模型的二個層次

概念模型(信息模型)

基本數據模型4.數據模型的三個要素數據結構

數據操作數據的約束條件

5.三種重要的數據模型層次模型、網狀模型、關系模型158.1.3數據模型1.數據模型的定義15

層次型

以樹形結構來表示實體及其之間的聯系(1:n)1968年美國IBM公司推出的層次模型的IMS數據庫管理系統例:學校組織結構圖

校部學院A系A學院B系B系C系D系E16層次型校部學院A系A學院B系B系C系D系E16

網狀型

以網狀結構表示實體及其之間的聯系(m:n)1969年美國數據系統語言研究會下屬數據庫任務組公布了關于網狀模型的DBTG報告例:城市交通圖共同存在問題:難以實現系統擴充,插入或刪除數據時,在于涉及到大量鏈接指針的調整。

17網狀型共同存在問題:17關系模型

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

關鍵字唯一確定一條記錄

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

應用程序數據庫管理系統VBVCPowerBuilder

Delphi

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

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

字段數據類型有10種字段屬性大小、小數位、格式

確定表的結構建立一個空數據庫,輸入文件名使用設計器或向導創建表,進入設計視圖,輸入各個字段的信息建立表的索引定義主鍵輸入表的名稱保存表主要方法:數據庫向導(模板)或設計視圖,一般用后者27三、Access數據庫的建立字段數據類型有10種1.Access數據庫的建立

3.定義表的結構

1。建立空數據庫2.使用設計器或向導281.Access數據庫的建立3.定義表的結構1。建立2.數據輸入

選定基本表,進入數據表視圖,輸入編輯數據

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

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

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

什么是SQL語言

StructureQueryLanguage即結構化查詢語言,1974年推出,已成為DBMS的國際標準語言,在眾多DBMS系統中使用。特點使用方便、功能豐富、語言簡單易學。工作方式獨立語言:直接輸入SQL命令與機器交互,實現對數據庫操作.

宿主語言:將SQL命令嵌入某高級語言中實現對數據庫操作.

33一、SQL語言什么是SQL語言特點工作方式33

SQL語言

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

MM/DD/YY#

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

表[WHERE條件]注意:

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

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

注意:

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

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

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

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

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

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

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

Access2002的表達式

常用運算符

型運

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

GROUPBY學號

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

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

連接條件

使用內連接格式SELECTStudents.學號,Students.姓名,Scores.課程,Scores.成績FROMStudentsINNERJOINScores

ONStudents.學號=Scores.學號

連接條件

表1

連接命令

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

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

Notin

(SELECTScores.學號

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

SELECTStudents.學號,Students.姓名FROMStudentsWHERE專業

in

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

51嵌套查詢示例例8.26查詢與“鄧倩梅”在同一個專業的學生的(5)使用向導的查詢

例8.27使用向導查詢所用學生的基本情況

1.進入向導選定字段

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

4.查詢結果52(5)使用向導的查詢例8.27使用向導查詢所用學生(6)在設計視圖中創建查詢

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

53(6)在設計視圖中創建查詢例8.28查詢學生人數、最低8.4窗體、報表

8.4.1創建窗體

例8.29創建下圖所示的窗體Scores1創建窗體的方法:使用向導創建窗體

使用設計視圖創建窗體

打開Student.mdb數據庫選擇使用向導創建窗體選定表Scores及所有字段選定窗體布局和窗體樣式輸入窗體名稱:Scores1548.4窗體、報表

8.4.1創建窗體例8.29創建使用設計視圖創建窗體

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

55使用設計視圖創建窗體例8.30創建下圖所示的窗體Sco8.4.2創建報表

例8.31創建下圖所示的報表Scores1打開Student.mdb數據庫選擇使用向導創建報表選定表Scores及所有字段決定要否分組(本例不分組)選擇排序方式(本例按學號)

選擇表格布局方式

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

輸入報表名稱:Scores1

568.4.2創建報表例8.31創建下圖所示的報表Sco大學計算機基礎第八章數據庫基礎第四版57大學計算機基礎第八章數據庫基礎第四版18.1數據庫系統概述8.2數據庫的建立和維護8.3數據庫查詢8.4

窗體、報表數據庫基礎8.1數據庫系統概述數據庫基礎典型案例無紙化通用考試系統

大學計算機基礎VisualBasic程序設計C/C++程序設計軟件技術基礎應用程序數據庫管理系統VBVC++PowerBuilder

Delphi

ACCESSSQLSERVERORACLEFOXPROSQL命令數據庫引摯數據庫信息化社會離不開信息系統 信息系統的核心和基礎是數據庫59典型案例無紙化通用考試系統應用程序數據庫管理系統VBVC+計算機基礎教育網站

IEHTM、ASP客戶機服務器SQL命令數據庫發出請求響應請求數據60計算機基礎教育網站IEHTM、ASP客戶機服務器SQL命令數8.1.1常用術語8.1.2數據庫技術的產生和發展8.1.3數據模型8.1.4

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

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

數據庫技術發展的分水嶺

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

(1)

采用一定的數據模型,最大限度地減少數據的冗余(2)最低的冗余度(3)有較高的數據獨立性用戶面對的是簡單的邏輯結構操作而不涉及數據具體的物理存儲結構(4)安全性設置用戶的使用權限在數據庫被破壞時,系統可把數據庫恢復到可用狀態。

(5)

完整性一些完整性檢驗以確保數據符合某些規則,保證數據庫中數據始終是正確的。704.數據庫系統的特點(1)采用一定的數據模型,最大8.1.3數據模型

1.數據模型的定義

現實世界數據特征的模擬和抽象,數據庫中數據的存儲方式

2.數據模型的基本要求

較真實的模擬現實世界容易被人理解便于在計算機上實現3.數據模型的二個層次

概念模型(信息模型)

基本數據模型4.數據模型的三個要素數據結構

數據操作數據的約束條件

5.三種重要的數據模型層次模型、網狀模型、關系模型718.1.3數據模型1.數據模型的定義15

層次型

以樹形結構來表示實體及其之間的聯系(1:n)1968年美國IBM公司推出的層次模型的IMS數據庫管理系統例:學校組織結構圖

校部學院A系A學院B系B系C系D系E72層次型校部學院A系A學院B系B系C系D系E16

網狀型

以網狀結構表示實體及其之間的聯系(m:n)1969年美國數據系統語言研究會下屬數據庫任務組公布了關于網狀模型的DBTG報告例:城市交通圖共同存在問題:難以實現系統擴充,插入或刪除數據時,在于涉及到大量鏈接指針的調整。

73網狀型共同存在問題:17關系模型

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

關鍵字唯一確定一條記錄

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

應用程序數據庫管理系統VBVCPowerBuilder

Delphi

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

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

字段數據類型有10種字段屬性大小、小數位、格式

確定表的結構建立一個空數據庫,輸入文件名使用設計器或向導創建表,進入設計視圖,輸入各個字段的信息建立表的索引定義主鍵輸入表的名稱保存表主要方法:數據庫向導(模板)或設計視圖,一般用后者83三、Access數據庫的建立字段數據類型有10種1.Access數據庫的建立

3.定義表的結構

1。建立空數據庫2.使用設計器或向導841.Access數據庫的建立3.定義表的結構1。建立2.數據輸入

選定基本表,進入數據表視圖,輸入編輯數據

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

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

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

什么是SQL語言

StructureQueryLanguage即結構化查詢語言,1974年推出,已成為DBMS的國際標準語言,在眾多DBMS系統中使用。特點使用方便、功能豐富、語言簡單易學。工作方式獨立語言:直接輸入SQL命令與機器交互,實現對數據庫操作.

宿主語言:將SQL命令嵌入某高級語言中實現對數據庫操作.

89一、SQL語言什么是SQL語言特點工作方式33

SQL語言

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

MM/DD/YY#

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

表[WHERE條件]注意:

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

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

注意:

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

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

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

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

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

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

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

Access2002的表達式

常用運算符

型運

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

GROUPBY學號

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

溫馨提示

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

評論

0/150

提交評論