版權(quán)說明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請進行舉報或認領(lǐng)
文檔簡介
1、總復(fù)習(xí)1關(guān)系數(shù)據(jù)庫原理,第1部分 關(guān)系數(shù)據(jù)庫原理學(xué)習(xí)要求,掌握數(shù)據(jù)庫的基本概念 掌握ER概念模型 掌握關(guān)系數(shù)據(jù)模型 掌握ER圖轉(zhuǎn)化為關(guān)系模式/表 掌握關(guān)系規(guī)范化 掌握關(guān)系的三種范式,一、數(shù)據(jù)庫的基本概念,數(shù)據(jù)(Data) 是數(shù)據(jù)庫中存儲的基本對象,是描述事物的符號。如:數(shù)字、文字、圖形、圖像、聲音等。 數(shù)據(jù)庫(Database,DB) 是儲存在計算機內(nèi)、有組織的、可共享的數(shù)據(jù)集合。 數(shù)據(jù)庫管理系統(tǒng)(DBMS) 是位于用戶與操作系統(tǒng)之間的管理數(shù)據(jù)庫的軟件。如:SQL Server 2000 數(shù)據(jù)庫系統(tǒng)(DBS) 是指在計算機系統(tǒng)中引入數(shù)據(jù)庫后的系統(tǒng),包括:計算機系統(tǒng)、數(shù)據(jù)庫、數(shù)據(jù)庫管理系統(tǒng)、人員
2、。,二、ER概念模型,數(shù)據(jù)模型的含義 對現(xiàn)實世界(存在于人腦之外的客觀世界)的模擬。 數(shù)據(jù)模型的類型 概念數(shù)據(jù)模型、邏輯數(shù)據(jù)模型、物理數(shù)據(jù)模型 概念模型的含義 用于信息世界(現(xiàn)實世界在人腦中的反映)的建模,是現(xiàn)實世界到信息世界的第一次抽象。,二、ER概念模型,概念模型的表示方法 實體聯(lián)系圖(ER圖) ER圖的基本要素 實體:現(xiàn)實世界中任何可以被認識、區(qū)分的事物。 屬性:實體所具有的特性。 實體間的聯(lián)系 一對一聯(lián)系、一對多聯(lián)系、多對多聯(lián)系 課堂練習(xí):判斷實體間的聯(lián)系類型。 學(xué)校中有若干個系和若干個教師,每個教師只能屬于一個系,一個系可以有多名教師,系與教師的關(guān)系類型是_。教師與學(xué)生的關(guān)系類型是_
3、。,二、ER概念模型,ER圖的繪制方法 長方形實體 橢 圓屬性 菱 形聯(lián)系 ER圖的設(shè)計原則: 確定實體類型及屬性。 確定聯(lián)系類型及屬性。 把實體類型和聯(lián)系類型組合成ER圖。,二、ER概念模型,課堂練習(xí):某工廠生產(chǎn)多種產(chǎn)品,每種產(chǎn)品由不同的零件組裝而成,有的零件可用在不同的產(chǎn)品上。產(chǎn)品有產(chǎn)品號和產(chǎn)品名兩個屬性,零件有零件號和零件名兩個屬性。根據(jù)語義設(shè)計ER模型。 分析:ER模型中有兩個實體,產(chǎn)品(產(chǎn)品號,產(chǎn)品名),零件(零件號,零件名),產(chǎn)品與零件是M;N的聯(lián)系。,零件,產(chǎn)品,組裝,三、關(guān)系數(shù)據(jù)模型,邏輯數(shù)據(jù)模型 含義:是用戶從數(shù)據(jù)庫所看到的數(shù)據(jù)模型。 用概念數(shù)據(jù)模型表示的數(shù)據(jù)必須轉(zhuǎn)化為邏輯數(shù)
4、據(jù)模型表示的數(shù)據(jù),才能在DBMS中實現(xiàn)。 類型(四種) 關(guān)系模型(最常用) 例 : SQL Server 2000 層次模型 網(wǎng)狀模型 面向?qū)ο竽P?三、關(guān)系數(shù)據(jù)模型,關(guān)系數(shù)據(jù)模型的含義 用二維表格結(jié)構(gòu)表示實體及實體之間的聯(lián)系的數(shù)據(jù)模型 完成信息世界到機器世界的第二次抽象。 具有如下性質(zhì)的二維表格,又稱為一個關(guān)系。 表中每一個屬性值都是不可分解的。 表中不允許出現(xiàn)相同的行/列。 表中沒有行序、沒有列序。 說明:1個關(guān)系就是1張二維表,反過來則不一定。,四、ER圖轉(zhuǎn)化為關(guān)系模式/表,關(guān)系模式的表示方法 用關(guān)系名和包含的屬性名的集合表示。 例如:學(xué)生(學(xué)號,姓名,性別,年齡,系編號) 關(guān)系模式與關(guān)
5、系(表)的區(qū)別 轉(zhuǎn)化原則 每個實體轉(zhuǎn)換為一個關(guān)系。 每個聯(lián)系也轉(zhuǎn)換成一個關(guān)系。 對于1:1的聯(lián)系,每個實體的碼均是該聯(lián)系關(guān)系的候選碼 對于1:N的聯(lián)系,關(guān)系的碼是N端實體的碼。 對于M:N的聯(lián)系,關(guān)系的碼是諸實體碼的組合。 有相同碼的關(guān)系可以合并。,四、ER圖轉(zhuǎn)化為關(guān)系模式/表,課堂練習(xí):將下面的ER圖轉(zhuǎn)化成關(guān)系模式,并指出主碼與外碼。,零件(零件號,零件名) 產(chǎn)品(產(chǎn)品號,產(chǎn)品名) 組裝(零件號,產(chǎn)品號,零件個數(shù)) 主碼:零件號+產(chǎn)品號 外碼:產(chǎn)品號、零件號,四、ER圖轉(zhuǎn)化為關(guān)系模式/表,問題:在參照完整性中,為什么外鍵屬性的值可以為空?什么情況下才為空? 答:(1)外碼屬性的值可以為空,它
6、表示該屬性的值尚未確定。(2)為空的前提條件是該外碼屬性不是其所在關(guān)系的主屬性。例如: 學(xué)生(學(xué)號,姓名,性別,專業(yè)號) 專業(yè)(專業(yè)號,專業(yè)名) 其中:專業(yè)號是學(xué)生表中的一個外碼,不是學(xué)生表的主屬性,可以為空,其語義是該學(xué)生的專業(yè)尚未確定。 但若該外碼屬性是其所在關(guān)系的主屬性,則不能為空。例如: 選修(學(xué)號,課程號,成績) 課程(課程號,課程名,學(xué)分) 在選修表中,課程號雖然也是一個外部碼,但它又是選修表的主屬性,所以不能為空,因為關(guān)系模型必須滿足實體完整性。,五、關(guān)系的規(guī)范化,函數(shù)依賴 是指關(guān)系中各屬性或?qū)傩越M之間的相互依賴關(guān)系。 函數(shù)依賴的類型 完全函數(shù)依賴 部分函數(shù)依賴 傳遞函數(shù)依賴 例
7、如:SCD(學(xué)號,姓名,課程號,成績,所在學(xué)院,學(xué)院電話) “學(xué)號+課程號” “成績”,是完全函數(shù)依賴。 “姓名、所在學(xué)院、學(xué)院電話”與主碼是部分函數(shù)依賴。 “學(xué)號”“所在學(xué)院”“學(xué)院電話”,則“學(xué)院電話”傳遞依賴于“學(xué)號”。,五、關(guān)系的規(guī)范化,關(guān)系規(guī)范化的含義 為了區(qū)分關(guān)系模式的優(yōu)劣,把關(guān)系模式分為各種不同等級的范式。 將低級范式轉(zhuǎn)換為若干個高級范式過程。 范式的類型 1NF:關(guān)系模式R的所有屬性的值都不可再分解值。 2NF:關(guān)系模式R為1NF,且R中每個非主屬性完全函數(shù)依賴于R的主碼(復(fù)合碼) 。 3NF:關(guān)系模式R為2NF,且R中每個非主屬性都不傳遞函數(shù)依賴于R的某個候選碼。,五、關(guān)系的
8、規(guī)范化,將關(guān)系模式進行分解:,SC(學(xué)號,課程號,成績) SD1(學(xué)號,姓名,所在學(xué)院) SD2(學(xué)院名,學(xué)院電話),五、關(guān)系的規(guī)范化,小結(jié): 1NF中的每個屬性值是不可再分的,它是關(guān)系模式的最低要求。 消除1NF中的部分函數(shù)依賴,可轉(zhuǎn)換為2NF。 消除2NF中的傳遞函數(shù)依賴,可轉(zhuǎn)換為3NF。,練習(xí)是非題,數(shù)據(jù)庫系統(tǒng)不包含數(shù)據(jù)庫管理系統(tǒng)。 關(guān)系運算中的選擇是按照給定的條件選擇記錄組成一個新的表。 關(guān)系模式滿足第二范式,則它一定滿足第一范式 參照完整性與引用完整性是兩個不同的概念。 實體完整性是指表中的每一行都必須能夠唯一標(biāo)識,且不存在重復(fù)的數(shù)據(jù)行。 在WindowsXP操作系統(tǒng)上能夠安裝SQL
9、 Server 2000個人版的服務(wù)器。,總復(fù)習(xí)2數(shù)據(jù)庫和表的管理,引:,數(shù)據(jù)庫的設(shè)計步驟: 收集、分析數(shù)據(jù) 建立概念模型(ER圖) 建立邏輯模型(關(guān)系模式) 關(guān)系規(guī)范化 1NF 2NF 3NF 創(chuàng)建數(shù)據(jù)庫,第一次抽象,第二次抽象,第2部分 數(shù)據(jù)庫和表的管理學(xué)習(xí)要求,數(shù)據(jù)庫概述 掌握數(shù)據(jù)庫的創(chuàng)建 掌握數(shù)據(jù)庫的管理 掌握數(shù)據(jù)表和表約束的創(chuàng)建 掌握數(shù)據(jù)表的管理 掌握數(shù)據(jù)表的操作,一、數(shù)據(jù)庫概述,SQL Server數(shù)據(jù)庫的含義 是存放各種對象(表、視圖、規(guī)則、默認值、存儲過程、用戶、角色等)的邏輯實體。 數(shù)據(jù)庫的結(jié)構(gòu) 數(shù)據(jù)庫文件有三種類型: 主數(shù)據(jù)文件(有且只有只有1個,擴展名是 .mdf) 次數(shù)
10、據(jù)文件(0個或多個,擴展名是 .ndf) 事務(wù)日志文件(1個或多個,擴展名是 .ldf) 文件組的類型 主文件組:包括主數(shù)據(jù)文件,沒有指明組的其它文件 次文件組:用戶自定義文件組,一、數(shù)據(jù)庫概述,系統(tǒng)數(shù)據(jù)庫(6個) master數(shù)據(jù)庫:記錄了SQL Server的所有系統(tǒng)信息。 model數(shù)據(jù)庫:是系統(tǒng)所有數(shù)據(jù)庫的模板。 所有在系統(tǒng)中創(chuàng)建的新數(shù)據(jù)庫的內(nèi)容,在剛創(chuàng)建時都和model數(shù)據(jù)庫完全一樣。 msdb數(shù)據(jù)庫:是代理服務(wù)數(shù)據(jù)庫,為其警報、任務(wù)調(diào)度和記錄操作員的操作提供存儲空間。 tempdb數(shù)據(jù)庫:是一個臨時數(shù)據(jù)庫,用于存放所有連接到系統(tǒng)的用戶的臨時表和臨時存儲過程。比如:查詢時會用到它。
11、pubs和northwind數(shù)據(jù)庫,二、用戶數(shù)據(jù)庫的創(chuàng)建命令格式,CREATE DATABSE 數(shù)據(jù)庫名,創(chuàng)建1個大小與model的數(shù)據(jù)庫完全相同的用戶數(shù)據(jù)庫。 其初始大小為1MB,二、用戶數(shù)據(jù)庫的創(chuàng)建命令格式,CREATE DATABSE 數(shù)據(jù)庫名 ON PRIMARY ( NAME = 邏輯文件名, FILENAME = 磁盤文件名 ,SIZE = 初始大小 ,MAXSIZE = 最大容量 ,F(xiàn)ILEGROWTH = 增長量 ) , n ,主文件組,主文件組的 次數(shù)據(jù)文件n,創(chuàng)建自定義大小的用戶數(shù)據(jù)庫,二、用戶數(shù)據(jù)庫的創(chuàng)建命令格式,CREATE DATABSE 數(shù)據(jù)庫名 ON PRIMAR
12、Y ( NAME = 邏輯文件名, FILENAME = 磁盤文件名 ,SIZE = 初始大小 ,MAXSIZE = 最大容量 ,F(xiàn)ILEGROWTH = 增長量 ) , n , FILEGROUP 組文件名 () , n ,主文件組,次文件組,次文件組的 次數(shù)據(jù)文件,主文件組的 次數(shù)據(jù)文件n,主數(shù)據(jù)文件,主數(shù)據(jù)文件,創(chuàng)建自定義大小的用戶數(shù)據(jù)庫,二、用戶數(shù)據(jù)庫的創(chuàng)建命令格式,CREATE DATABSE 數(shù)據(jù)庫名 ON PRIMARY ( NAME = 邏輯文件名, FILENAME = 磁盤文件名 ,SIZE = 初始大小 ,MAXSIZE = 最大容量|unlimited ,F(xiàn)ILEGRO
13、WTH = 增長量 ) , n , FILEGROUP 組文件名 () , n LOG ON ( NAME = 邏輯文件名, FILENAME = 磁盤文件名 ,SIZE = 初始大小 ,MAXSIZE = 最大容量|unlimited ,F(xiàn)ILEGROWTH = 增長量 ) , n ,主文件組,次文件組,次文件組的 次數(shù)據(jù)文件,主文件組的 次數(shù)據(jù)文件n,主數(shù)據(jù)文件,主數(shù)據(jù)文件,日志文件n,創(chuàng)建自定義大小的用戶數(shù)據(jù)庫,例: 創(chuàng)建d1的數(shù)據(jù)庫,create database d1 on primary ( name=data1, filename= d:sqld1_data1.mdf , siz
14、e=1, maxsize=10, filegrowth=20% ) , ( name=data2, filename= d:sqld1_data2.ndf , size=4, maxsize=10, filegrowth=1 ) , filegroup g1 ( name=data3, filename= d:sqld1_data3.ndf , size=5, maxsize=unlimited, filegrowth=1 ) log on ( name=log1, filename= d:sqld1_log1.ldf , size=1, maxsize=unlimited, filegrow
15、th=20% ),三、數(shù)據(jù)庫的管理,顯示數(shù)據(jù)庫 exec sp_helpdb 數(shù)據(jù)庫名 修改數(shù)據(jù)庫: alter database 修改數(shù)據(jù)庫名 增加文件組 重命名文件組 刪除文件組 增加數(shù)據(jù)庫中的次要數(shù)據(jù)文件和事務(wù)日志文件 修改文件屬性 文件的初始大小、最大容量、增長幅度 刪除數(shù)據(jù)庫中的次要數(shù)據(jù)文件和事務(wù)日志文件,三、數(shù)據(jù)庫的管理,alter database d1 add filegroup g2 alter database d1 modify filegroup g2 name=g3 alter database d1 remove filegroup g3,在數(shù)據(jù)庫d1中增加一個文件
16、組g2,將數(shù)據(jù)庫d1中的文件組g2更名為g3,刪除數(shù)據(jù)庫d1中的文件組g3,注意:刪除文件組前必須保證該文件組為空,若其中有文件則應(yīng)先刪除。,三、數(shù)據(jù)庫的管理,alter database d1 add file (name=data4, filename=d:sqld1_data4.mdf , size=1, maxsize=5, filegrowth=1) , (name=data5, filename=d:sqld1_data5.ndf , size=1, maxsize=5, filegrowth=1) to filegroup g1 alter database d1 add log
17、 file (name=log2, filename=d:sqld1_log2.ldf , size=1, maxsize=5, filegrowth=1),增加到次文件組g1,增加數(shù)據(jù)文件到主文件組,增加日志文件,三、數(shù)據(jù)庫的管理,alter database d1 modify file (name=data2, size=10, maxsize=20, filegrowth=10%) alter database d1 remove file data4 alter database d1 modify name= aa drop database aa 說明:當(dāng)數(shù)據(jù)庫處于下列情況不能被
18、刪除。 當(dāng)有用戶正在數(shù)據(jù)庫使用時。 當(dāng)數(shù)據(jù)庫正在被恢復(fù)時。 當(dāng)數(shù)據(jù)庫正在參與復(fù)制時。,修改數(shù)據(jù)文件的屬性,刪除數(shù)據(jù)文件,將數(shù)據(jù)庫d1的名字修改為aa,刪除數(shù)據(jù)庫,四、數(shù)據(jù)表和表約束的創(chuàng)建,建表時要涉及到的問題 表的列數(shù)、列名 每列的數(shù)據(jù)類型 列上的約束:防止出現(xiàn)非法數(shù)據(jù),保證數(shù)據(jù)完整性。 建表的命令格式 create table 表名 (字段名 類型(長度) 列級完整性約束條件 ,n ) 創(chuàng)建表約束的方法 建表時:在每列的定義后,或在所有列定義后創(chuàng)建約束 表已存在:只能通過修改表,添加約束,四、數(shù)據(jù)表和表約束的創(chuàng)建,約束的類型 主鍵(PRIMARY KEY)約束 惟一(UNIQUE)約束 外鍵
19、(FOREIGN KEY)約束 檢查(CHECK)約束 默認值(DEFAULT)約束 空值(NULL)約束 主鍵約束與惟一性約束的區(qū)別: 表中只能定義1個主鍵約束,但可定義多個惟一約束。 定義了惟一約束的列可以為空值,而定義了主鍵約束的列不能為空值。,實現(xiàn)參照完整性,四、數(shù)據(jù)表和表約束的創(chuàng)建,實例:在“學(xué)籍管理”庫中有3個表。結(jié)構(gòu)如下: 創(chuàng)建“學(xué)籍管理”庫,其所有參數(shù)都取默認值。 在“學(xué)籍管理”數(shù)據(jù)庫中創(chuàng)建student,T1,T2表。,四、數(shù)據(jù)表和表約束的創(chuàng)建,在列定義之后創(chuàng)建約束 create database 學(xué)籍管理 go use 學(xué)籍管理 create table student (
20、 學(xué)號 int primary key, 姓名 char(10) not null , 出生日期 datatime null ),四、數(shù)據(jù)表和表約束的創(chuàng)建,在所有列定義后創(chuàng)建約束 create table t1 (學(xué)號 char(10) , 語文 tinyint null, 數(shù)學(xué) tinyint null constraint pk_t1 primary key (學(xué)號) ),四、數(shù)據(jù)表和表約束的創(chuàng)建,先建表,后添加約束 create table t2 (學(xué)號 int not null , 選修課程 char(20) not null , 成績 tinyint null ) alter tab
21、le t2 add constraint pk_t2 primary key (學(xué)號,選修課程) alter table t2 add constraint ck_t2 check(成績=0 and 成績=100),四、數(shù)據(jù)表和表約束的創(chuàng)建,練習(xí):在market數(shù)據(jù)庫中有2個表。結(jié)構(gòu)如下: 創(chuàng)建market數(shù)據(jù)庫,其所有參數(shù)都取默認值。 在market數(shù)據(jù)庫中創(chuàng)建goods和orders表。,四、數(shù)據(jù)表和表約束的創(chuàng)建,create database market go use market create table goods ( 貨品名稱 char(20) primary key, 單價 m
22、oney not null , 庫存量 int not null ),在列定義之后創(chuàng)建約束,四、數(shù)據(jù)表和表約束的創(chuàng)建,create table orders (訂單號 int not null identity (1,1) , 貨品名稱 char(20) null, 數(shù)量 int not null constraint pk_orders primary key (訂單號), constraint ck_orders check(數(shù)量0), constraint fk_orders foreign key (貨品名稱) references goods(貨品名稱) ),五、數(shù)據(jù)表的管理,修改表
23、結(jié)構(gòu):alter table 表名 增加列: add 列定義 修改列: alter column 列定義 刪除列: drop column 列名 重命名數(shù)據(jù)表: exec sp_rename 表名,新表名 刪除數(shù)據(jù)表: drop table 表名,五、數(shù)據(jù)表的管理,實例:在T1表中增加1列: 英語,int ,取值0100。 alter table t1 add 英語 int constraint ck_eng check (英語=0 and 英語=100) 實例:將“英語”列的類型修改為“ tinyint”。 提示:由于“英語”列上有約束,所以應(yīng)先刪除該約束,再修改該列 alter table
24、 t1 drop constraint ck_eng alter table t1 alter column 英語 tinyint 實例:刪除“英語”列。 alter table t1 drop column 英語,六、數(shù)據(jù)表的操作,插入數(shù)據(jù) insert into 表名 (字段名列表) values (字段值列表) 修改數(shù)據(jù) update 表名 set 列名 = 表達式 | null | default , n ) where 邏輯表達式 刪除數(shù)據(jù) delete 表名 where 邏輯表達式 ,練習(xí):是非題,創(chuàng)建數(shù)據(jù)庫時,filegrowth參數(shù)是用來設(shè)置數(shù)據(jù)庫的最大容量的。 創(chuàng)建數(shù)據(jù)庫時,
25、size參數(shù)是用來設(shè)置數(shù)據(jù)庫的最大容量。 insert語句后面必須要INTO。,練習(xí):填空題,_系統(tǒng)數(shù)據(jù)庫主要用來進行復(fù)制、作業(yè)調(diào)度和管理報警等活動。 當(dāng)一個表帶有約束后,執(zhí)行對表的各種_操作時,將自動_相應(yīng)的約束,只有符合約束條件的合法操作才能被真正執(zhí)行。 在一個已存在數(shù)據(jù)的表中增加不帶默認值的列,一定要保證所增加的列允許_值。 在定義基本表時,將年齡屬性限制在2040歲之間的這種數(shù)據(jù)值的約束屬于DBMS的_ 功能。,練習(xí):填空題,修改數(shù)據(jù)庫定義的命令關(guān)鍵字為_,刪除整個數(shù)據(jù)庫的命令關(guān)鍵字為_。 約束包括_、_、_、_、_。 哪種完整性用以指定列的數(shù)據(jù)輸入是否具有正確的數(shù)據(jù)類型、格式以及有效
26、的數(shù)據(jù)范圍_。 對表中記錄的維護工作主要有增加、_和_操作,它們均可通過企業(yè)管理器或T-SQL語句完成 通過對列插入值的限制,哪一種約束實施了域完整性?_。 指定返回的列來控制,選擇行就是水平地劃分數(shù)據(jù),限制返回結(jié)果中的行,這由SELECT語句中的_子句指定選擇條件來控制。,練習(xí):選擇題,語句“ use master go select * from sysfiles go ”包括()個批處理。A.1B.2C.3D.4 當(dāng)數(shù)據(jù)庫損壞時,數(shù)據(jù)庫管理員可通過何種方式恢復(fù)數(shù)據(jù)庫()。 A.事務(wù)日志文件B.主數(shù)據(jù)文件 C.DELETE語句D.聯(lián)機幫助文件 下面關(guān)于tempdb數(shù)據(jù)庫描述不正確的是()。
27、 A.是一個臨時數(shù)據(jù)庫B.屬于全局資源 C.沒有權(quán)限限制D.是用戶建立新數(shù)據(jù)庫的模板 使用“CREATE DATABASE AAA”命令所建立數(shù)據(jù)庫文件的初始大小是()字節(jié)。 A.1MB.2MC.3MD.4M,練習(xí):選擇題,SQLServer 2000的物理存儲主要包括3類文件是: A.主數(shù)據(jù)文件、次數(shù)據(jù)文件、事務(wù)日志文件 B.主數(shù)據(jù)文件、次數(shù)據(jù)文件、文本文件 C.表文件、索引文件、存儲過程 D.表文件、索引文件、圖表文件 數(shù)據(jù)庫中的數(shù)據(jù)在哪種情況下,可以被刪除? A .當(dāng)有用戶使用此數(shù)據(jù)庫時 B.當(dāng)數(shù)據(jù)庫正在恢復(fù)時 C.當(dāng)數(shù)據(jù)庫正在參與復(fù)制時 D.當(dāng)數(shù)據(jù)庫被設(shè)置為只讀時 表的主鍵約束是用來強
28、制哪種數(shù)據(jù)完整性的? A.實體完整性 B.參照完整性 C.域完整性 D.都是,練習(xí):選擇題,在alter table語句中使用了哪個子句可以使表上創(chuàng)建的檢查約束暫時無效。 A.check constraintB.nocheck constraint C.with nocheckD.drop constraint 不允許在關(guān)系中出現(xiàn)重復(fù)記錄的約束是通過: A.外部關(guān)系鍵實現(xiàn) B.索引實現(xiàn) C.主關(guān)系鍵實現(xiàn) D.惟一索引實現(xiàn) 若公司招聘中不允許17周歲以下的人員招聘,應(yīng)使用什么完整性。 A.實體完整性B.域完整性 C.參照完整性D.用戶定義完整性,總復(fù)習(xí)3 查詢語句,第3部分 數(shù)據(jù)庫的查詢學(xué)習(xí)要求
29、,掌握關(guān)系的運算方法 掌握數(shù)據(jù)庫的簡單查詢方法 掌握數(shù)據(jù)庫的匯總查詢方法 掌握數(shù)據(jù)庫的連接查詢方法,一、查詢的類型,關(guān)系的運算:投影、選擇、連接 簡單查詢 對一張表的原始數(shù)據(jù)進行查詢 匯總查詢 對表中數(shù)據(jù)進行求總和、求平均、求最大值、求最小值的查詢 連接查詢 從多個相關(guān)的表中查詢數(shù)據(jù),二、簡單查詢,語句格式 select 字段列表 from 表名 where 條件,二、簡單查詢,例:分析下列查詢語句執(zhí)行的功能和結(jié)果。 select * from xsqk select 學(xué)號 , 課程號 , 成績, 成績+ 5 from xs_kc select 學(xué)號, 課程號, 成績 as 原成績, 調(diào)整成績
30、=成績+ 5 from xs_kc select 學(xué)號, 姓名, 其職務(wù)是, 備注 from xsqk select * from xsqk where 專業(yè)名=計算機網(wǎng)絡(luò) and 性別=1 select 學(xué)號,姓名,出生日期 from xsqk where 出生日期 between 1980-07-01 and 1980-07-31 select * from xsqk where 姓名 like 陳% ,三、數(shù)據(jù)匯總查詢,使用的方法有三種: 使用聚合函數(shù)(sum、avg、count、max、min ) 使用group by子句 Select語句的格式 select 列名表 from 表名,
31、n where 條件 group by 列名 having 邏輯表達式 order by 列名 ,投影運算,選擇運算,連接運算,排序,三、數(shù)據(jù)匯總查詢,聚合函數(shù)的語句格式: select 聚合函數(shù)( * | all | distinct 列名) from 表名 where 條件 說明: 當(dāng)select子句中有聚合函數(shù)且沒有g(shù)roup by子句時,就不能再指定其它的列名。 All :計算該列值非空的記錄的個數(shù),默認為all。 Distinct:計算該列值非空且不同的記錄的個數(shù)(不計算重復(fù)行)。 * :計算所有記錄的個數(shù)。,三、數(shù)據(jù)匯總查詢,例:使用聚合函數(shù)進行匯總查詢。 select avg (
32、成績) as 平均成績, max(成績) as 最高分, min (成績) as 最低分 from xs_kc select count (學(xué)號) as 女生人數(shù) from xsqk where 性別=0 select count (課程號) as 課程總數(shù) from xs_kc select count (distinct 課程號) as 課程門數(shù) from xs_kc 注意:一個聚合函數(shù)返回一個單值。,三、數(shù)據(jù)匯總查詢,分類匯總的語法格式: select 列名,聚合函數(shù) from 表名 where 條件 group by 列名 having 邏輯表達式 注意: select 中的列名必須是
33、group by子句中出現(xiàn)了的列名。,用于對生成的組進行條件篩選,三、數(shù)據(jù)匯總查詢,where子句與having子句的區(qū)別: where子句作用于表(在分組之前對表中的記錄先篩選)。 having子句作用于組(在分組之后對生成的組進行篩選)。 having子句中可以有聚合函數(shù) where子句中不能有聚合函數(shù)。 當(dāng)二者同時出現(xiàn)時 先where 后group by 再having,三、數(shù)據(jù)匯總查詢,例:分析下列查詢語句執(zhí)行的功能。 select 專業(yè)名, count (專業(yè)名) from xsqk group by 專業(yè)名 select 學(xué)號, avg(成績) from xs_kc group by 學(xué)號 having avg(成績)75,統(tǒng)計各專業(yè)的人數(shù),統(tǒng)計平均成績超過75分的學(xué)生學(xué)號和平均成績,三、數(shù)據(jù)匯總查詢,練習(xí): 按學(xué)號分組匯總總分高于100分的學(xué)生記錄,并按總分的降序排列。 select 學(xué)號, sum(成績) as 各學(xué)生的總分 from xs_kc group by 學(xué)號 having sum(成績)100 order by sum(成績) desc 查詢課程號為103的成績記錄,并按成績的降序排列。 select 課程號,成績 from xs_kc w
溫馨提示
- 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)方式做保護處理,對用戶上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對任何下載內(nèi)容負責(zé)。
- 6. 下載文件中如有侵權(quán)或不適當(dāng)內(nèi)容,請與我們聯(lián)系,我們立即糾正。
- 7. 本站不保證下載資源的準(zhǔn)確性、安全性和完整性, 同時也不承擔(dān)用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。
最新文檔
- 企業(yè)保密規(guī)范制度
- 2026湖南懷化國際陸港經(jīng)濟開發(fā)區(qū)內(nèi)國有企業(yè)招聘4人備考題庫附答案
- 2026福建省福清市向陽幼兒園招聘考試備考題庫附答案
- 2026西安工業(yè)大學(xué)招聘備考題庫附答案
- 2026貴州湄潭縣人民醫(yī)院招聘編制外緊缺醫(yī)務(wù)人員參考題庫附答案
- 2026重慶醫(yī)科大學(xué)編外聘用人員招聘1人(2026年第1輪)備考題庫附答案
- 2026陜西選調(diào)生哪些學(xué)校有資格參加參考題庫附答案
- 中共南充市委社會工作部關(guān)于公開招聘南充市新興領(lǐng)域黨建工作專員的(6人)考試備考題庫附答案
- 中國農(nóng)業(yè)科學(xué)院2026年度第一批統(tǒng)一公開招聘參考題庫附答案
- 樂山職業(yè)技術(shù)學(xué)院2025年下半年公開考核招聘工作人員備考題庫附答案
- 無人機吊運培訓(xùn)課件
- ABAQUS在隧道及地下工程中的應(yīng)用
- 【郎朗:千里之行我的故事】-朗朗千里之行在線閱讀
- 工作匯報PPT(山與海之歌動態(tài))大氣震撼模板
- 義務(wù)消防員培訓(xùn)課件的課件
- 市政施工圍擋施工圍擋方案
- 病原生物與免疫學(xué)試題(含答案)
- 尼帕病毒專題知識宣講
- 液化石油氣重大危險源事故專項應(yīng)急救援預(yù)案
- 現(xiàn)代企業(yè)管理制度
- GB/T 24312-2022水泥刨花板
評論
0/150
提交評論