數(shù)據(jù)庫復習資料_第1頁
數(shù)據(jù)庫復習資料_第2頁
數(shù)據(jù)庫復習資料_第3頁
數(shù)據(jù)庫復習資料_第4頁
數(shù)據(jù)庫復習資料_第5頁
已閱讀5頁,還剩7頁未讀, 繼續(xù)免費閱讀

下載本文檔

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

文檔簡介

1、心之所向,所向披靡1、通常,一個數(shù)據(jù)庫的數(shù)據(jù)模型由數(shù)據(jù)結(jié)構(gòu)、數(shù)據(jù)操作和數(shù)據(jù)的約束條件三部分組成。其中,數(shù)據(jù)結(jié)構(gòu)和數(shù)據(jù)的約束條件為數(shù)據(jù)的靜態(tài)特性。2、數(shù)據(jù)模型實際上是模型化數(shù)據(jù)和信息的工具。根據(jù)模型應(yīng)用的不同目的,可以將模型分為兩大類:概念層數(shù)據(jù)模型(概念模型)-從數(shù)據(jù)的語義視角來抽取模型,是按用戶的觀點來對數(shù)據(jù)和信息進行建模。組織層數(shù)據(jù)模型(邏輯模型)-從數(shù)據(jù)的組織層次來描述數(shù)據(jù)。3、數(shù)據(jù)模型中的組織層數(shù)據(jù)模型從數(shù)據(jù)的組織方式來描述數(shù)據(jù),目前主要包括四種組織層數(shù)據(jù)模型:層次模型、網(wǎng)狀模型、關(guān)系模型和對象-關(guān)系模型。4、實體之間的聯(lián)系可分為三種:一對一關(guān)系,一對多關(guān)系和多對多關(guān)系5、關(guān)系模型的操

2、作對象是集合,也就是關(guān)系。6、關(guān)系數(shù)據(jù)模型的數(shù)據(jù)操作主要包括四種:查詢、插入、刪除和修改數(shù)據(jù)。 7、關(guān)系模型的數(shù)據(jù)完整性約束包括:實體完整性、參照完整性和用戶定義的完整性。8、數(shù)據(jù)庫系統(tǒng)的三級模式結(jié)構(gòu)分別為:外模式(External Schema),模式(Schema)和內(nèi)模式(Internal Schema)。9、SQL SERVER中提供的整數(shù)數(shù)據(jù)類型有:BIGINT,INT,SMALLINT,TINYINT和BIT10、要在SQL SERVER表中存儲一個小數(shù)數(shù)據(jù),具體要求如下:小數(shù)位保留三位,整數(shù)位最大有10位,應(yīng)該選用的數(shù)據(jù)類型為DECIMAL(13,3)或NUMERIC(13,3)

3、。11、要在要在SQL SERVER表中存儲個人愛好資料,該資料可以不填,最多可填200漢字,應(yīng)該選用的數(shù)據(jù)類型為VARCHAR(400)來定義。12、統(tǒng)一字符編碼字符串類型每個字符占兩個字節(jié)。13、一個漢字節(jié)兩個字節(jié)。名詞解釋1、什么是數(shù)據(jù)庫,作用是什么? 答:1、存放數(shù)據(jù)的一個有組織,有結(jié)構(gòu)的系統(tǒng)。2、一個軟件系統(tǒng)。1、數(shù)據(jù)存儲2、數(shù)據(jù)查詢3、數(shù)據(jù)管理4、數(shù)據(jù)共享5、數(shù)據(jù)挖掘6、數(shù)據(jù)安全 2、什么是數(shù)據(jù)庫系統(tǒng),作用是什么?答:本質(zhì)上是一個用計算機存儲數(shù)據(jù)的系統(tǒng),一般由數(shù)據(jù)庫、數(shù)據(jù)庫管理系統(tǒng)(及相關(guān)實用工具)、應(yīng)用程序、數(shù)據(jù)庫管理員組成。 主要作用除保存數(shù)據(jù)外,還提供對數(shù)據(jù)進行各種管理和處理

4、:安全管理、數(shù)據(jù)共享、數(shù)據(jù)查詢。3、什么是數(shù)據(jù)庫管理系統(tǒng),作用是什么?答:是一個專門用于實現(xiàn)對數(shù)據(jù)進行管理和維護的系統(tǒng)軟件。主要作用包括:數(shù)據(jù)庫的建立與維護;數(shù)據(jù)定義;數(shù)據(jù)組織、存儲和管理;數(shù)據(jù)操作;事務(wù)的管理和運行。4、數(shù)據(jù)獨立性答:指應(yīng)用程序不會因數(shù)據(jù)的物理表示方式和訪問技術(shù)的改變而改變,即應(yīng)用程序不依賴于任何特定的物理表示方式和訪問技術(shù),包含兩個方面:邏輯獨立性和物理獨立性5、關(guān)系模型、關(guān)系和關(guān)系模式。答:用關(guān)系(表格數(shù)據(jù))表示實體和實體之間聯(lián)系的模型稱為關(guān)系數(shù)據(jù)模型關(guān)系 :關(guān)系就是二維表。并滿足如下性質(zhì):關(guān)系表中的每一列都是不可再分的基本屬性;表中的行、列次序并不重要。關(guān)系模式:二維表

5、的結(jié)構(gòu)稱為關(guān)系模式,即,關(guān)系模式是二維表的表框架或表頭結(jié)構(gòu)。6、元組、屬性、主碼、域答:元組:表中的每一行稱作是一個元組,它相當于一個記錄值。屬性:表中的每一列是一個屬性值的集合,列可以命名,稱為屬性名。 主碼:表中用于惟一地確定一個元組的一個屬性或最小的屬性組。域:屬性的取值范圍。7、實體完整性、參照完整性和用戶定義完整性答:實體完整性是保證關(guān)系中的每個元組都是可識別的和惟一的。 而且表中不允許存在如下的記錄:無主碼值的記錄和主碼值相同的記錄。參照完整性用于描述實體之間的聯(lián)系。參照完整性一般是指多個實體(表)之間的關(guān)聯(lián)關(guān)系。 一般用外碼實現(xiàn)。外碼:取作本表(子表)屬性之一的外表(父表,主表)

6、主碼。主碼值先在主表中生成,后在子表中引用。用戶定義完整性也稱為域完整性或語義完整性。按應(yīng)用語義,屬性數(shù)據(jù)有:類型與長度限制:方便計算機操作。取值范圍限制:防止屬性值與應(yīng)用語義矛盾8、數(shù)據(jù)模式答:在數(shù)據(jù)模型中有關(guān)數(shù)據(jù)結(jié)構(gòu)及其相互間關(guān)系的描述稱為數(shù)據(jù)模式(Data schema)。9、信息技術(shù)答:信息技術(shù)(Information Technology 簡稱IT)是指在信息科學的基本原理和方法的指導下擴展人類信息功能的技術(shù)。一般說,信息技術(shù)是以電子計算機和現(xiàn)代通信為主要手段實現(xiàn)信息的獲取,加工,傳遞和利用等功能的技術(shù)總和。 10、信息技術(shù)的四大基本技術(shù)是哪些?答:傳感技術(shù)、通信技術(shù)、計算機技術(shù)和控

7、制技術(shù)是信息技術(shù)的四大基本技術(shù),其主要支柱是通訊(Communication)技術(shù)、計算機(Computer)技術(shù)和控制(Control)技術(shù),即“3C”技術(shù)。11、數(shù)據(jù)、信息與知識答:數(shù)據(jù)是使用約定俗成的關(guān)鍵詞,對客觀事物的數(shù)量、屬性、位置及其相互關(guān)系進行抽象表示,以適合在這個領(lǐng)域中用人工或自然的方式進行保存、傳遞和處理。 信息是具有時效性的有一定含義的,有邏輯的、經(jīng)過加工處理的、對決策有價值的數(shù)據(jù)流。 知識就是沉淀并與已有人類知識庫進行結(jié)構(gòu)化的有價值信息。12、數(shù)據(jù)庫技術(shù)答:數(shù)據(jù)庫是數(shù)據(jù)管理的最新技術(shù),主要研究內(nèi)容是如何對數(shù)據(jù)進行科學的管理,以提供可共享、安全、可靠的數(shù)據(jù)。數(shù)據(jù)庫技術(shù)一般包

8、含數(shù)據(jù)管理和數(shù)據(jù)處理兩部分。13、視圖及其作用答: 視圖由基本表構(gòu)成的虛表(滿足用戶需求的表結(jié)構(gòu))。它的主要作用包括:簡化數(shù)據(jù)查詢語句,使用戶能從多角度看待同一數(shù)據(jù),提高了數(shù)據(jù)的安全性,提供了一定程度的邏輯獨立性。SQL命令執(zhí)行結(jié)果題在SQL SERVER查詢分析器中執(zhí)行如下SQL操作:以上命令正確執(zhí)行完成后,請寫出如下SQL語句的執(zhí)行結(jié)果。(如果沒有找到相應(yīng)記錄,則寫沒有找到記錄)數(shù)據(jù)庫設(shè)計題(共20分)假設(shè)有如下數(shù)據(jù)管理要求, 請你根據(jù)上述要求,按下步驟完成一個數(shù)據(jù)庫的設(shè)計。要求滿足第三范式。1、 畫出系統(tǒng)E-R圖2、 畫出系統(tǒng)數(shù)據(jù)庫的邏輯圖 (如下圖所示樣式)3、寫出各關(guān)系在SQL SE

9、RVER中的物理結(jié)構(gòu)定義。(結(jié)構(gòu)如下表所示)表1 student表(學生表)序號字體名稱數(shù)據(jù)類型約束說明1SNOINTPRIMARY KEY學號2SNAMEVARCHAR(50)NOT NULL學生姓名操作題。按下要求,完成相應(yīng)的SQL語句。(共20分)/*綜合實驗二*/*1新建一個數(shù)據(jù)庫名為SAMPLE,選擇其,在“新建查詢”窗口中,用CREATE TABLE語句創(chuàng)建如下表。(1)STUDENT(SNO VARCHAR(3) NOT NULL, SNAME VARCHAR(4) NOT NULL,SSEX VARCHAR(2) NOT NULL, SBIRTHDAY DATETIME,CLA

10、SS VARCHAR(5)*/create database sampleuse samplecreate table student (SNO VARCHAR(3) primary key, SNAME VARCHAR(4) NOT NULL, SSEX VARCHAR(2) NOT NULL, SBIRTHDAY DATETIME, CLASS VARCHAR(5)/*(2)COURSE(CNO VARCHAR(5) NOT NULL, CNAME VARCHAR(10) NOT NULL, TNO VARCHAR(10) NOT NULL)*/create table course (C

11、NO VARCHAR(5) primary key, CNAME VARCHAR(10) NOT NULL, TNO VARCHAR(10) NOT NULL)/*(3)SCORE (SNO VARCHAR(3) NOT NULL, CNO VARCHAR(5) NOT NULL, DEGREE NUMERIC(10, 1) NOT NULL)*/create table score (SNO VARCHAR(3) NOT NULL, CNO VARCHAR(5) NOT NULL, DEGREE NUMERIC(10, 1) NOT NULL, primary key(sno,cno)/*(

12、4)TEACHER (TNO VARCHAR(3) NOT NULL, TNAME VARCHAR(4) NOT NULL, TSEX VARCHAR(2) NOT NULL, TBIRTHDAY DATETIME NOT NULL, PROF VARCHAR(6), DEPART VARCHAR(10) NOT NULL)*/create table teacher(NO VARCHAR(3) primary key, TNAME VARCHAR(4) NOT NULL, TSEX VARCHAR(2) NOT NULL, TBIRTHDAY DATETIME NOT NULL, PROF

13、VARCHAR(6), DEPART VARCHAR(10) NOT NULL)/*2用INSERT語句,添加如下數(shù)據(jù)。(1)在STUDENT表中插入如下數(shù)據(jù):(108 ,'曾華' ,'男' ,1977-09-01,95033);(105 ,'匡明' ,'男' ,1975-10-02,95031);(107 ,'王麗' ,'女' ,1976-01-23,95033);(101 ,'李軍' ,'男' ,1976-02-20,95033);(109 ,'王芳

14、9; ,'女' ,1975-02-10,95031);(103 ,'陸君' ,'男' ,1974-06-03,95031);*/ insert into student values(108 ,'曾華' ,'男' ,'1977/09/01',95033)insert into student values(105 ,'匡明' ,'男' ,'1975/10/02',95031)insert into student values(107 ,'王麗

15、' ,'女' ,'1976/01/23',95033)insert into student values(101 ,'李軍' ,'男' ,'1976/02/20',95033)insert into student values(109 ,'王芳' ,'女' ,'1975/02/10',95031)insert into student values(103 ,'陸君' ,'男' ,'1974/06/03',9

16、5031)/*(2)在COURSE表添加如下數(shù)據(jù): ('3-105' ,'計算機導論',825) ('3-245' ,'操作系統(tǒng)' ,804); ('6-166' ,'數(shù)據(jù)電路' ,856); ('9-888' ,'高等數(shù)學' ,100);(3-109,數(shù)據(jù)庫技術(shù)及應(yīng)用,825);*/insert into course values ('3-105' ,'計算機導論','825')insert into course

17、values ('3-245' ,'操作系統(tǒng)' ,'804')insert into course values ('6-166' ,'數(shù)據(jù)電路' ,'856')insert into course values ('9-888' ,'高等數(shù)學' ,'100')alter table course alter column cname varchar(40)insert into course values ('3-109','

18、數(shù)據(jù)庫技術(shù)及應(yīng)用','825') /*(3)在表SCORE中添加如下數(shù)據(jù):(103,'3-245',86);(105,'3-245',75);(109,'3-245',68);(103,'3-105',92);(105,'3-105',88);(109,'3-105',76);(101,'3-105',64);(107,'3-105',91);(108,'3-105',78);(101,'6-166',85);(

19、107,'6-106',79);(108,'6-166',81);*/insert into score values (103,'3-245',86)insert into score values (105,'3-245',75)insert into score values (109,'3-245',68)insert into score values (103,'3-105',92)insert into score values (105,'3-105',88)inse

20、rt into score values (109,'3-105',76)insert into score values (101,'3-105',64)insert into score values (107,'3-105',91)insert into score values (108,'3-105',78)insert into score values (101,'6-166',85)insert into score values (107,'6-106',79)insert int

21、o score values (108,'6-166',81)/*(4)在表TEACHER中添加如下數(shù)據(jù):(804,'李誠','男','1958-12-02','副教授','計算機系');(856,'張旭','男','1969-03-12','講師','電子工程系');(825,'王萍','女','1972-05-05','助教','計算機系'

22、;);(831,'劉冰','女','1977-08-14','助教','電子工程系');*/insert into teacher values (804,'李誠','男','1958-12-02','副教授','計算機系')insert into teacher values (856,'張旭','男','1969-03-12','講師','電子工程系')

23、insert into teacher values (825,'王萍','女','1972-05-05','助教','計算機系')insert into teacher values (831,'劉冰','女','1977-08-14','助教','電子工程系')/*3完成下列SQL操作。1)查詢Student表中的所有記錄的Sname、Ssex和Class列。*/select sname,ssex,class from studen

24、t /*2)查詢教師所有的單位即不重復的Depart列。*/select distinct depart from teacher/*3) 查詢Student表的所有記錄。*/select * from student/*4) 查詢Score表中成績在60到80之間的所有記錄。*/select * from score where degree between 60 and 80/*5) 查詢Score表中成績?yōu)?5,86或88的記錄。*/select * from score where degree in(85,86,88)/*6) 查詢Student表中“95031”班或性別為“女”的同

25、學記錄。*/select * from student where class='95031' or ssex='女'/*7) 以Class降序查詢Student表的所有記錄。*/select * from student order by class desc/*8)以Cno升序、Degree降序查詢Score表的所有記錄。*/select * from score order by cno,degree desc/*9)查詢“95031”班的學生人數(shù)。*/select count(*) from student where class='95031&

26、#39;/*10)查詢Score表中的最高分的學生學號和課程號。*/select sno,cno from score where degree in(select max(degree) from score)SELECT A.SNO,B.CNO FROM SCORE A, SCORE B WHERE B.DEGREE IN(SELECT MAX(DEGREE) FROM SCORE GROUP BY CNO) AND A.SNO=B.SNO AND A.CNO=B.CNO/*11)查詢3-105號課程的平均分。*/select avg(degree) from score where cn

27、o='3-105'/*12)查詢Score表中至少有5名學生選修的并以3開頭的課程的平均分數(shù)。*/select cno,avg(degree) from score group by cno having count(*)>4 and cno like '3%'/*13)查詢最低分大于70,最高分小于90的Sno列。*/select sno from score group by sno having min(degree)>70 and max(degree)<90/*14)查詢所有學生的Sname、Cno和Degree列。*/select

28、sname,cno,degree from student s,score sc where s.sno=sc.sno/*15)查詢所有學生的Sno、Cname和Degree列。*/select sno,cname,degree from score sc,course c where o=o/*16)查詢所有學生的Sname、Cname和Degree列。*/select sname,cname,degree from student s,score sc,course c where s.sno=sc.sno and o=o/*17)查詢“95033”班所選課程的平均分。*/select a

29、vg(degree) from score where sno in (select sno from student where class='95033')/*18)假設(shè)使用如下命令建立了一個grade表:create table grade(low number(3,0),upp number(3),rank char(1);insert into grade values(90,100,A);insert into grade values(80,89,B);insert into grade values(70,79,C);insert into grade valu

30、es(60,69,D);insert into grade values(0,59,E);commit;現(xiàn)查詢所有同學的Sno、Cno和rank列。*/create table grade(low numeric(3,0),upp numeric(3,0),rank char(1)insert into grade values(90,100,'A')insert into grade values(80,89,'B')insert into grade values(70,79,'C')insert into grade values(60,6

31、9,'D')insert into grade values(0,59,'E')commit;select sno,cno,rank from score,grade where degree between low and upp/*19)查詢選修“3-105”課程的成績高于“109”號同學成績的所有同學的記錄。*/select s.sno,sname,ssex,sbirthday,class from student s,score sc where s.sno=sc.sno and sc.sno in (select sno from score wher

32、e cno='3-105' and degree >(select degree from score where sno='109'and cno='3-105')/*20)查詢score中選學一門以上課程的同學中分數(shù)為非最高分成績的記錄。*/select a.sno,o,a.degree from score a ,SCORE B where a.degree!= (select max(degree) from score b where o=o )AND A.SNO=B.SNO AND A.CNO=B.CNO/*21)查詢成績高于學

33、號為“109”、課程號為“3-105”的成績的所有記錄。*/select * from score where degree>(select degree from score where sno='109' and cno='3-105')/*22)查詢和學號為108的同學同年出生的所有學生的Sno、Sname和Sbirthday列。*/select sno,sname,sbirthday from student where sno!='108' and year(sbirthday) = (select year(sbirthday)

34、 from student where sno='108')/*23)查詢“張旭“教師任課的學生成績。*/select sno,o,degree from score sc,teacher t,course c where o=o and c.tno=t.NO and tname='張旭' /*24)查詢選修某課程的同學人數(shù)多于5人的教師姓名。*/select distinct tname from teacher t,course c,score sc where o=o and c.tno=t.NO and o in (select cno from sco

35、re group by cno having count(sno)>5)/*25)查詢95033班和95031班全體學生的記錄。*/select * from student where class in('95033','95031')/*26)查詢存在有85分以上成績的課程Cno.*/select distinct cno from score where degree>85/*27)查詢出“計算機系“教師所教課程的成績表。*/select o,sno,degree from score sc ,teacher t,course c where

36、o=o and c.tno=t.no and depart='計算機系'/*28)查詢“計算機系”與“電子工程系“的教師的Tname和Prof。*/select tname,prof from teacher where depart in('計算機系','電子工程系')/*29)查詢選修編號為“3-105“課程且成績至少高于選修編號為“3-245”的同學的Cno、Sno和Degree,并按Degree從高到低次序排序。*/select cno,sno,degree from score where cno='3-105' and

37、 degree >(select min(degree) from score where cno='3-245')/*30)查詢選修編號為“3-105”且成績高于選修編號為“3-245”課程的同學的Cno、Sno和Degree.*/select cno,sno,degree from score where cno='3-105' and degree >(select max(degree) from score where cno='3-245')/*31)查詢所有教師和同學的name、sex和birthday.*/select

38、 sname,ssex,sbirthday from studentunionselect tname,tsex,tbirthday from teacher/*32)查詢所有“女”教師和“女”同學的name、sex和birthday.*/select sname,ssex,sbirthday from student where ssex='女'unionselect tname,tsex,tbirthday from teacher where tsex='女'/*33)查詢成績比該課程平均成績低的同學的成績表。*/select * from score a

39、 where degree<(select avg(degree) from score where cno=o) order by cno,degree desc/*34)查詢所有任課教師的Tname和Depart.*/select tname,depart from teacher /*35)查詢所有未講課的教師的Tname和Depart. */select tname ,depart from teacher where no not in (select no from teacher t,course c,score sc where t.no=c.tno and o=o )/

40、*36)查詢至少有2名男生的班號。*/select distinct class from student group by class having count(*)>1/*37)查詢Student表中不姓“王”的同學記錄。*/select * from student where sname not like '王%'/*38)查詢Student表中每個學生的姓名和年齡。*/select sname as 姓名 ,year(getdate()-year(sbirthday) as 年齡 from student/*39)查詢Student表中最大和最小的Sbirthday日期值。*/select max(sbirthday),min(sbirthday) from student/*40)以班號和年齡從大到小的順序查詢Student表中的全部記錄。*/select * from student order by class,sbirthday /*41)查詢“男”教師及其所上的課程。*/select t.* ,cno,cname from teacher t,course c where

溫馨提示

  • 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)容負責。
  • 6. 下載文件中如有侵權(quán)或不適當內(nèi)容,請與我們聯(lián)系,我們立即糾正。
  • 7. 本站不保證下載資源的準確性、安全性和完整性, 同時也不承擔用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。

評論

0/150

提交評論