當前位置:首頁 » 數據倉庫 » mysql資料庫武洪萍版課後習題答案
擴展閱讀
webinf下怎麼引入js 2023-08-31 21:54:13
堡壘機怎麼打開web 2023-08-31 21:54:11

mysql資料庫武洪萍版課後習題答案

發布時間: 2023-01-21 21:38:27

資料庫原理與應用教程第4版課後習題答案(何玉潔)

第一題:

(1)mysql資料庫武洪萍版課後習題答案擴展閱讀

這部分內容主要考察的是資料庫系統的知識點:

資料庫系統為適應數據處理的需要而發展起來的一種較為理想的數據處理系統,也是一個為實際可運行的存儲、維護和應用系統提供數據的軟體系統,是存儲介質 、處理對象和管理系統的集合體。

資料庫系統通常由軟體、資料庫和數據管理員組成。其軟體主要包括操作系統、各種宿主語言、實用程序以及資料庫管理系統。資料庫由資料庫管理系統統一管理,數據的插入、修改和檢索均要通過資料庫管理系統進行。數據管理員負責創建、監控和維護整個資料庫,使數據能被任何有權使用的人有效使用。資料庫管理員一般是由業務水平較高、資歷較深的人員擔任。

資料庫系統的個體含義是指一個具體的資料庫管理系統軟體和用它建立起來的資料庫;它的學科含義是指研究、開發、建立、維護和應用資料庫系統所涉及的理論、方法、技術所構成的學科。在這一含義下,資料庫系統是軟體研究領域的一個重要分支,常稱為資料庫領域。

資料庫系統是為適應數據處理的需要而發展起來的一種較為理想的數據處理的核心機構。計算機的高速處理能力和大容量存儲器提供了實現數據管理自動化的條件。

⑵ 哪位大俠可以提供一些mysql資料庫的題庫,一定要帶答案的!將感激不盡!!

一、不定項選擇題(共40題,每小題2.5分,總分100分)
1. 資料庫管理系統的發展歷經了如下那些模型階段( ACDE )
A. 層次模型 B. 結構模型 C. 關系模型
D. 網狀模型 E.對象模型
2. 關系型資料庫的核心單元是( B )
A. 對象 B. 表
C. 行 D. 列
3. 對於關系型資料庫來說,表之間存在下面那些關系( ABC )
A. 一對一關系 B. 一對多關系
C. 多對多關系 D. 繼承關系
4. 在SQL中,下面對於數據定義語言(DDL)描述正確的是( D )。
A. DDL關心的是資料庫中的數據 B. 完成數據的增、刪、改、查操作
C. 控制對資料庫的訪問 D. 定義資料庫的結構
5. MySQL是一種( C )資料庫管理系統。
A. 層次型 B. 網路型 C. 關系型 D. 對象型
6. SQL中,下列操作有語法錯誤的是( B )
A. AGE IS NOT NULL B. NOT(AGE IS NULL)
C. SNAME=『王五』 D. SNAME=『王%』
7. SQL中,下列關於創建、管理資料庫的操作語句不正確的是( CDE )
A. CREATE DATABASE Instant B. USE Instant C. NEW DATABASE Instant
D. Connection Instant E. Delete DATEBASE Instant
8. 在MySQL中,不存在的數據類型是( F )。
A. INT B. TEXT C. DECIMAL
D. VARCHAR E. DATETIME F. VARCHAR2
9. 在MySQL中,下列關於創建資料庫表的描述正確的是( C )。
A. 在創建表時必須設定列的約束
B. 在刪除表的時候通過外鍵約束連接在一起的表會被一同刪除
C. 在創建表時必須設置列類型
D. 通過CREATE TABLE new_t SELECT * FROM old_t復製表的同時,表的約束能夠一起被復制到新表中
10. 根據數據完整性實施的方法,可以將其分為( ACDF )
A. 實體完整性 B. 表完整性 C.域完整性
D. 引用完整性 E. 記錄完整性 F.用戶自定義完整性
11. 下面關於域完整性的方法,不正確的是( A )。
A. 主鍵約束 B. 外鍵約束 C.檢查約束
D. 非空約束 E. 默認值
12. 下面關於創建和管理索引正確的描述是( C )。
A. 創建索引是為了便於全表掃描
B. 索引會加快DELETE、UPDATE和INSERT語句的執行速度
C. 索引被用於快速找到想要的記錄
D. 大量使用索引可以提高資料庫的整體性能
13. SQL中,「AGE IN(20,22)」的語義是( D )。
A. AGE<=22 AND AGE >=20 B. AGE <22 AND AGE >20
C. AGE =20 AND AGE =22 D. AGE =20 OR AGE =22
14. 有一個關系:學生(學號,姓名,系別),規定學號的值域是8個數字組成的字元串,這一規則屬於( C )
A. 實體完整性約束 B. 參照完整性約束
C. 用戶自定義完整性約束 D. 關鍵字完整性約束
15. 下面SQL是來源於考試成績表t_exam:學號stuId、科目編號subId、成績score,考試日期:ex_date。有以下sql,它表示的意思是:( B )
Select stu_id,subId,count(*) as x
From t_exam
Where ex_date=』2008-08-08』
Group stu_id,subId
Having count(*)>1
Order by x desc
A. 找出』2008-08-08』這天某科考試2次及以上的學生記錄
B. 找出』2008-08-08』這天,某科考試2次及以上的學生記錄,考試次數多的放在前面
C. 找出』2008-08-08』這天,某科考試2次及以上的學生記錄,考試次數少的放在前面
D. 根據學號和學科分組,找出每個人考試科數,最後考試次數多的放在前面
16. EMP表如下所示,下面哪些SQL語句的返回值為3:( BD )
EMP
雇員號 雇員名 部門號 工資
001 張山 022000
010 王宏達01 1200
056 馬林生02 1000
101 趙敏 04
A. select count(*) from emp
B. select count(distinct 部門號) from emp
C. select count(*) from emp group by 雇員號
D. select count(工資) from emp
17. 下面那一項不是SELECT語句對數據的操作:( D )
A. 投影 B. 聯接 C. 並 D. 級聯
18. 下面關於SQL數據查詢操作描述正確的有:( ABD )
A. 投影操作是選擇對表中的哪些列進行查詢操作
B. 使用DISTINCT關鍵字可以過濾查詢中重復的記錄
C. 在模糊查詢中,通配符「%」表示匹配單個字元,而「_」表示匹配零個或多個字元
D. 在MySQL中使用LIMIT關鍵字限制從資料庫中返回記錄的行數
19. 在SQL語言中,條件「BETWEEN 20 AND 30」表示年齡在20到30之間,且( A )。
A. 包括20歲和30歲 B. 不包括20歲和30歲
C. 包括20歲,不包括30歲 D. 不包括20歲,包括30歲
20. SQL語言中,刪除EMP表中全部數據的命令正確的是( C )。
A. delete * from emp B. drop table emp
C. truncate table emp D. 沒有正確答案
21. 有關索引的說法錯誤的是( AD )
A. 索引的目的是為增加數據操作的速度
B. 索引是資料庫內部使用的對象
C. 索引建立得太多,會降低數據增加刪除修改速度
D. 只能為一個欄位建立索引
22. 下列哪個關鍵字在Select語句中表示所有列( A )
A. * B. ALL C. DESC D. DISTINCT
23. 在表中設置外鍵實現的是哪一類數據完整性( B )
A. 實體完整性 B. 引用完整性
C. 用戶定義的完整性 D. 實體完整性、引用完整性和用戶定義的完整性
24. 下面正確表示Employees表中有多少非NULL的Region列的SQL語句是( B )
A. SELECT count(* ) from Employees
B. SELECT count(ALL Region) from Employees
C. SELECT count(Distinct Region) from Employees
D. SELECT sum(ALL Region) from Employees
25. 下面可以通過聚合函數的結果來過濾查詢結果集的SQL子句是( C )
A. WHERE子句 B. GROUP BY子句
C. HAVING 子句 D. ORDER BY子句
26. t_score(stu_id,sub_id,score),即成績表(學號,科目編號,成績)。學生如果某科沒有考試,則該科成績錄入null。能夠獲取各位學生的平均成績的選項是( A )
A. select avg(nvl(socre,0)) from score group by stu_id
B. select stu_id,avg(sorce) from score
C. select stu_id,avg(score) from score
D. select stu_id,sum(score)/count(score) from score
27. 若要求查找S表中,姓名的第一個字為'王'的學生學號和姓名。下面列出的SQL語句中,哪個是正確的( B )
A. SELECT Sno,SNAME FROM S WHERE SNAME=′王%′
B. SELECT Sno,SNAME FROM S WHERE SNAME LIKE′王%′
C. SELECT Sno,SNAME FROM S WHERE SNAME LIKE′王_′
D. 全部
28. 若要求「查詢選修了3門以上課程的學生的學生號」,正確的SQL語句是( B )
A. SELECT Sno FROM SC GROUP BY Sno WHERE COUNT(*)> 3
B. SELECT Sno FROM SC GROUP BY Sno HAVING( COUNT(*)> 3)
C. SELECT Sno FROM SC ORDER BY Sno WHERE COUNT(*)> 3
D. SELECT Sno FROM SC ORDER BY Sno HAVING COUNT(*)>= 3
29. 對下面的查詢語句描述正確的是( D )
Select StudentID,Name,
(select count(*) from StudentExam
where StudentExam.StudentID = Student.StudentID) as ExamsTaken
from Student
order by ExamsTaken desc
A. 從Student表中查找StudentID和Name,並按照升序排列
B. 從Student表中查找StudentID和Name,並按照降序排列
C. 從Student表中查找StudentID、Name和考試次數
D. 從Student表中查找StudentID、Name,並從StudentExam表中查找與StudentID一致的學生考試次數,並按照降序排列

30. 下面題基於學生-課程資料庫中的三個基本表:
學生信息表:s(sno, sname, sex, age, dept) 主鍵為sno
課程信息表:c(cno, cname, teacher) 主鍵為cno
學生選課信息表:sc(sno, cno, grade) 主鍵為(sno, cno)
「從學生選課信息表中找出無成績的學生信息」的SQL語句是( C d )

A.

SELECT * FROM sc WHERE grade=NULL

B.

SELECT * FROM sc WHERE grade IS 『 』

C.

SELECT * FROM sc WHERE grade IS NULL

D.

SELECT * FROM sc WHERE grade =『 』

31. 當子查詢返回多行時,可以採用的解決辦法是( C )。
A. 使用聚合函數 B. Where條件判斷
C. 使用IN運算符 D. 使用Group by進行分組
32. 下面關於在子查詢中使用運算符描述不正確的是( D )。
A. 使用IN運算符用於查找欄位值屬於某一組值的行
B. 使用Exists運算符用於測試子查詢是否返回行,如果返回其值就為真
C. 使用ALL運算符用於測試子查詢結果集的所有行是否滿足指定的條件
D. 使用Any運算符用於測試子查詢結果集中的一行或多行不滿足指定的條件
33. 下面關於組合查詢描述不正確的是( D )。
A. 從一個表中獲取的數據必須和其它表中的數據具有相同的列數
B. 兩個表中相對應的列必須具有相同的數據類型
C. UNION的結果集列名與第一個SELECT語句的結果集中的列名相同
D. UNION的結果集列名與第二個SELECT語句的結果集中的列名相同
E. UNION ALL運算符返回每個數據集的所有成員
34. 下面關於聯接的描述正確的是( A )。
A. 內聯接使用比較運算符根據每個表共有的列值來匹配兩個表中的行
B. 左外聯接結果集包含從右邊的表返回的所有行
C. 右外聯接結果集包含從左邊的表返回的所有行
D. 全外聯接返回左表和右表中的所有匹配的行
35. 下面關於資料庫設計過程正確的順序描述是( C )。
A. 需求收集和分析、邏輯設計、物理設計、概念設計
B. 概念設計、需求收集和分析、邏輯設計、物理設計
C. 需求收集和分析、概念設計、邏輯設計、物理設計
D. 需求收集和分析、概念設計、物理設計、邏輯設計
36. ER圖屬於下面哪一種資料庫設計模型( B )。
A. 物理數據模型
B. 概念數據模型
C. 邏輯數據模型
D. 需求模型
37. 非主鍵必須完全依賴於主鍵列,這屬於下列範式的內容( BC )
A. 1NF B. 2NF C. 3NF D. 都沒有的
38. 如果一個欄位的數據必須來源另一個表的主鍵,那麼要在這個欄位上建立( B )。
A. PK(主鍵) B. FK(外鍵) C. UK(唯一鍵) D. 復合主鍵
39. 根據三個範式的定義,下面哪個選項的設計是正確的( C )
職工編號 姓名 工種 車間 車間主任
1001 李寧 車工 一車間 周傑
1002 王海 銑工 一車間 周傑
1003 趙亮 鉗工 二車間 吳明
1001 李寧 鉗工 二車間 吳明
A. 員工表、工種表、車間表
B. 員工表、工種表、車間表、車間主任表
C. 員工表、工種表、車間表、員工工種表、員工車間表
D. 以上設計均不正確

40. 下列說法中,哪些是正確的( BD )
A. RDBMS是資料庫管理系統的簡稱
B. 各行記錄都不能重復,是第二範式要求的
C. 在資料庫設計中一定要滿足第三範式
D. 索引越多,查詢越快,數據更新越慢

⑶ 麻煩請教各位高手一些MYSQL資料庫的問題

create table Student
(
sno varchar(10) not null primary key,
sname varchar(10),
ssex varchar(2),
sage int(5),
sdept varchar(10)
);

alter table Student add Scome Date();

insert into sc values('08111','203',80);

update Student set sdept='經濟系' where sno='李陽';//多寫了一個from

select Sno,Grade from SC where Cno='103' order by Grade desc;

select max(grade),arg(grade) from SC group by Cno having Cno = '103';

delete from SC where Sno='05019';
delete from Student where Sno='05019';

select * from SC where Grade between 60 and 80;

select * from Student where sdept='計算機系' or ssex='女';

select count(sno) from Student group by sdept having sdept='計算機';

⑷ 這兩種題型mysql資料庫結構應該怎麼設計,B形題和A3A4題

一、不定項選擇題(共40題,每小題2.5分,總分100分)1.資料庫管理系統的發展歷經了如下那些模型階段(ACDE)A.層次模型B.結構模型C.關系模型D.網狀模型E.對象模型2.關系型資料庫的核心單元是(B)A.對象B.表C.行D.列3.對於關系型資料庫來說,表之間存在下面那些關系(ABC)A.一對一關系B.一對多關系C.多對多關系D.繼承關系4.在SQL中,下面對於數據定義語言(DDL)描述正確的是(D)。A.DDL關心的是資料庫中的數據B.完成數據的增、刪、改、查操作C.控制對資料庫的訪問D.定義資料庫的結構5.MySQL是一種(C)資料庫管理系統。A.層次型B.網路型C.關系型D.對象型6.SQL中,下列操作有語法錯誤的是(B)A.AGEISNOTNULLB.NOT(AGEISNULL)C.SNAME=『王五』D.SNAME=『王%』7.SQL中,下列關於創建、管理資料庫的操作語句不正確的是(CDE)A.CREATEDATABASEInstantB.USEInstantC.NEWDATABASEInstantD.ConnectionInstantE.DeleteDATEBASEInstant8.在MySQL中,不存在的數據類型是(F)。A.INTB.TEXTC.DECIMALD.VARCHARE.DATETIMEF.VARCHAR29.在MySQL中,下列關於創建資料庫表的描述正確的是(C)。A.在創建表時必須設定列的約束B.在刪除表的時候通過外鍵約束連接在一起的表會被一同刪除C.在創建表時必須設置列類型D.通過CREATETABLEnew_tSELECT*FROMold_t復製表的同時,表的約束能夠一起被復制到新表中10.根據數據完整性實施的方法,可以將其分為(ACDF)A.實體完整性B.表完整性C.域完整性D.引用完整性E.記錄完整性F.用戶自定義完整性11.下面關於域完整性的方法,不正確的是(A)。A.主鍵約束B.外鍵約束C.檢查約束D.非空約束E.默認值12.下面關於創建和管理索引正確的描述是(C)。A.創建索引是為了便於全表掃描B.索引會加快DELETE、UPDATE和INSERT語句的執行速度C.索引被用於快速找到想要的記錄D.大量使用索引可以提高資料庫的整體性能13.SQL中,「AGEIN(20,22)」的語義是(D)。A.AGE=20B.AGE20C.AGE=20ANDAGE=22D.AGE=20ORAGE=2214.有一個關系:學生(學號,姓名,系別),規定學號的值域是8個數字組成的字元串,這一規則屬於(C)A.實體完整性約束B.參照完整性約束C.用戶自定義完整性約束D.關鍵字完整性約束15.下面SQL是來源於考試成績表t_exam:學號stuId、科目編號subId、成績score,考試日期:ex_date。有以下sql,它表示的意思是:(B)Selectstu_id,subId,count(*)asxFromt_examWhereex_date=』2008-08-08』Groupstu_id,subIdHavingcount(*)>1OrderbyxdescA.找出』2008-08-08』這天某科考試2次及以上的學生記錄B.找出』2008-08-08』這天,某科考試2次及以上的學生記錄,考試次數多的放在前面C.找出』2008-08-08』這天,某科考試2次及以上的學生記錄,考試次數少的放在前面D.根據學號和學科分組,找出每個人考試科數,最後考試次數多的放在前面16.EMP表如下所示,下面哪些SQL語句的返回值為3:(BD)EMP雇員號雇員名部門號工資001張山022000010王宏達011200056馬林生021000101趙敏04A.selectcount(*)fromempB.selectcount(distinct部門號)fromempC.selectcount(*)fromempgroupby雇員號D.selectcount(工資)fromemp17.下面那一項不是SELECT語句對數據的操作:(D)A.投影B.聯接C.並D.級聯18.下面關於SQL數據查詢操作描述正確的有:(ABD)A.投影操作是選擇對表中的哪些列進行查詢操作B.使用DISTINCT關鍵字可以過濾查詢中重復的記錄C.在模糊查詢中,通配符「%」表示匹配單個字元,而「_」表示匹配零個或多個字元D.在MySQL中使用LIMIT關鍵字限制從資料庫中返回記錄的行數19.在SQL語言中,條件「BETWEEN20AND30」表示年齡在20到30之間,且(A)。A.包括20歲和30歲B.不包括20歲和30歲C.包括20歲,不包括30歲D.不包括20歲,包括30歲20.SQL語言中,刪除EMP表中全部數據的命令正確的是(C)。A.delete*fromempB.droptableempC.truncatetableempD.沒有正確答案21.有關索引的說法錯誤的是(AD)A.索引的目的是為增加數據操作的速度B.索引是資料庫內部使用的對象C.索引建立得太多,會降低數據增加刪除修改速度D.只能為一個欄位建立索引22.下列哪個關鍵字在Select語句中表示所有列(A)A.*B.ALLC.DESCD.DISTINCT23.在表中設置外鍵實現的是哪一類數據完整性(B)A.實體完整性B.引用完整性C.用戶定義的完整性D.實體完整性、引用完整性和用戶定義的完整性24.下面正確表示Employees表中有多少非NULL的Region列的SQL語句是(B)A.SELECTcount(*)fromEmployeesB.SELECTcount(ALLRegion)fromEmployeesC.SELECTcount(DistinctRegion)fromEmployeesD.SELECTsum(ALLRegion)fromEmployees25.下面可以通過聚合函數的結果來過濾查詢結果集的SQL子句是(C)A.WHERE子句B.GROUPBY子句C.HAVING子句D.ORDERBY子句26.t_score(stu_id,sub_id,score),即成績表(學號,科目編號,成績)。學生如果某科沒有考試,則該科成績錄入null。能夠獲取各位學生的平均成績的選項是(A)A.selectavg(nvl(socre,0))fromscoregroupbystu_idB.selectstu_id,avg(sorce)fromscoreC.selectstu_id,avg(score)fromscoreD.selectstu_id,sum(score)/count(score)fromscore27.若要求查找S表中,姓名的第一個字為'王'的學生學號和姓名。下面列出的SQL語句中,哪個是正確的(B)A.SELECTSno,SNAMEFROMSWHERESNAME=′王%′B.SELECTSno,SNAMEFROMSWHERESNAMELIKE′王%′C.SELECTSno,SNAMEFROMSWHERESNAMELIKE′王_′D.全部28.若要求「查詢選修了3門以上課程的學生的學生號」,正確的SQL語句是(B)A.(*)>3B.(COUNT(*)>3)C.(*)>3D.(*)>=329.對下面的查詢語句描述正確的是(D)SelectStudentID,Name,(selectcount(*).StudentID=Student.StudentID).從Student表中查找StudentID和Name,並按照升序排列B.從Student表中查找StudentID和Name,並按照降序排列C.從Student表中查找StudentID、Name和考試次數D.從Student表中查找StudentID、Name,並從StudentExam表中查找與StudentID一致的學生考試次數,並按照降序排列30.下面題基於學生-課程資料庫中的三個基本表:學生信息表:s(sno,sname,sex,age,dept)主鍵為sno課程信息表:c(cno,cname,teacher)主鍵為cno學生選課信息表:sc(sno,cno,grade)主鍵為(sno,cno)「從學生選課信息表中找出無成績的學生信息」的SQL語句是(Cd)A.SELECT*FROMscWHEREgrade=NULLB.SELECT*FROMscWHEREgradeIS『』C.SELECT*FROMscWHEREgradeISNULLD.SELECT*FROMscWHEREgrade=『』31.當子查詢返回多行時,可以採用的解決法是(C)。A.使用聚合函數B.Where條件判斷C.使用IN運算符D.使用Groupby進行分組32.下面關於在子查詢中使用運算符描述不正確的是(D)。A.使用IN運算符用於查找欄位值屬於某一組值的行B.使用Exists運算符用於測試子查詢是否返回行,如果返回其值就為真C.使用ALL運算符用於測試子查詢結果集的所有行是否滿足指定的條件D.使用Any運算符用於測試子查詢結果集中的一行或多行不滿足指定的條件33.下面關於組合查詢描述不正確的是(D)。A.從一個表中獲取的數據必須和其它表中的數據具有相同的列數B.兩個表中相對應的列必須具有相同的數據類型C.UNION的結果集列名與第一個SELECT語句的結果集中的列名相同D.UNION的結果集列名與第二個SELECT語句的結果集中的列名相同E.UNIONALL運算符返回每個數據集的所有成員34.下面關於聯接的描述正確的是(A)。A.內聯接使用比較運算符根據每個表共有的列值來匹配兩個表中的行B.左外聯接結果集包含從右邊的表返回的所有行C.右外聯接結果集包含從左邊的表返回的所有行D.全外聯接返回左表和右表中的所有匹配的行35.下面關於資料庫設計過程正確的順序描述是(C)。A.需求收集和分析、邏輯設計、物理設計、概念設計B.概念設計、需求收集和分析、邏輯設計、物理設計C.需求收集和分析、概念設計、邏輯設計、物理設計D.需求收集和分析、概念設計、物理設計、邏輯設計36.ER圖屬於下面哪一種資料庫設計模型(B)。A.物理數據模型B.概念數據模型C.邏輯數據模型D.需求模型37.非主鍵必須完全依賴於主鍵列,這屬於下列範式的內容(BC)A.1NFB.2NFC.3NFD.都沒有的38.如果一個欄位的數據必須來源另一個表的主鍵,那麼要在這個欄位上建立(B)。A.PK(主鍵)B.FK(外鍵)C.UK(唯一鍵)D.復合主鍵39.根據三個範式的定義,下面哪個選項的設計是正確的(C)職工編號姓名工種車間車間主任1001李寧車工一車間周傑1002王海銑工一車間周傑1003趙亮鉗工二車間吳明1001李寧鉗工二車間吳明A.員工表、工種表、車間表B.員工表、工種表、車間表、車間主任表C.員工表、工種表、車間表、員工工種表、員工車間表D.以上設計均不正確40.下列說法中,哪些是正確的(BD)A.RDBMS是資料庫管理系統的簡稱B.各行記錄都不能重復,是第二範式要求的C.在資料庫設計中一定要滿足第三範式D.索引越多,查詢越快,數據更新越慢

⑸ 求MYSQL資料庫答案

1、先用NavicatforMySQL創建名字為shopping的資料庫,如下圖所示:2、創建的shopping資料庫上運行已有的.sql文件,要注意上面創建的資料庫名字shopping最好和原先.sql文件中的名字一樣,也可以不一樣,如果不一樣的話會自動生成原來.sql文件中SQL語句中所命名的資料庫。此時,可以把上面創建的shopping資料庫刪除了就可以,直接用自動生成的就行。運行.sql步驟如下:右鍵你剛才創建的shopping資料庫——>運行sql文件——>選擇.sql文件位置——執行即可。創建好的資料庫如下所示:

⑹ mysql資料庫原理及應用第三版答案在哪裡找

mysql資料庫原理及應用 資料庫原理與應用(第3版)答案《資料庫原理與應用》(第三版)習題參考答案 第 1 章 資料庫概述 1. 試說明數據、資料庫、資料庫管理系統和資料庫系統的概念。答:數據是描述事物的符號記錄。資料庫是長期存儲在計算機中的有組織的、可共享的大量數據的集合。資料庫管理系統是一個專門用於實現對數據進行管理和維護的系統軟體。資料庫系統是指在計算機中引入資料庫後的系統,一般由資料庫、資料庫管理系統(及相關的實用工具)、應用程序、資料庫管理員組成。2. 數據管理技術的發展主要經歷了哪幾個階段?答:文件管理和資料庫管理。3. 與文件管理相比,資料庫管理有哪些優點? 答:與文件系統管理數據相比,資料庫系統管理數據帶來了如下好處:將相互關聯的數據集成在一起,較少的數據冗餘,程序與數據相互獨立,保證數據的安全可靠,最大限度地保證數據的正確性,數據可以共享並能保證數據的一致性。4. 在資料庫管理方式中,應用程序是否需要關心數據的存儲位置和存儲結構?為什麼? 答:不需要。因為資料庫管理系統提供了邏輯獨立性和物理獨立性。5. 在資料庫系統中,資料庫的作用是什麼? 答:資料庫是數據的匯集,它以一定的組織形式保存在存儲介質上。6. 在資料庫系統中,應用程序可以不通過資料庫管理系統而直接訪問數據文件嗎? 答:不能7. 數據獨立性指的是什麼?它能帶來哪些好處? 答:數據獨立性是指應用程序不會因數據的物理表示方式和訪問技術的改變而改變,即應用程序不依賴於任何特定的物理表示方式和訪問技術,它包含兩個方面:邏輯獨立性和物理獨立性。物理獨立性是指當數據的存儲位置或存儲結構發生變化時,不影響應用程序的特性;邏輯獨立性是指當表達現實世界的信息內容發生變化時,不影響應用程序的特性。8. 資料庫系統由哪幾部分組成,每一部分在資料庫系統中的作用大致是什麼? 答:資料庫系統一般包括資料庫、資料庫管理系統(及相應的實用工具)、應用程序和資料庫管理員四個部分。資料庫是數據的匯集,它以一定的組織形式保存在存儲介質上;資料庫管理系統是管理資料庫的系統軟體,它可以實現資料庫系統的各種功能;應用程序專指以資料庫數據為基礎的程序,資料庫管理員負責整個資料庫系統的正常運行。
第2章 數據模型與資料庫結構 1. 解釋數據模型的概念,為什麼要將數據模型分成兩個層次? 答:答:數據模型是對現實世界數據特徵的抽象。數據模型一般要滿足三個條件:第一是數據模型要能夠比較真實地模擬現實世界;第二是數據模型要容易被人們理解;第三是數據模型要能夠很方便地在計算機上實現。由於用一種模型來同時很好地滿足這三方面的要求在目前是比較困難的,因此在資料庫系統中就可以針對不同的使用對象和應用目的,採用不同的數據模型。根據模型應用的不同目的,將這些模型分為兩大類:概念層數據模型和組織層數據模型,以方便對信息的描述。2. 概念層數據模型和組織層數據模型分別是針對什麼進行的抽象? 答:概念層數據模型是對現實世界的抽象,形成信息世界模型,組織層數據模型是對信息世界進行抽象和轉換,形成具體的DBMS支持的數據組織模型。3. 實體之間的聯系有哪幾種?請為每一種聯系舉出一個例子。答:實體之間的聯系有一對一、一對多和多對多三種。例如:系和正系主任是一對一聯系(假設一個系只有一個正系主任),系和教師是一對多聯系(假設一個教師只在一個系工作),教師和課程是多對多聯系(假設一個教師可以講授多門課程,一門課程可由多個教師講授)。4. 說明實體-聯系模型中的實體、屬性和聯系的概念。5.指明下列實體間聯系的種類:(1)教研室和教師(設一個教師只屬於一個教研室,一個教研室可有多名教師)。(2)商品和顧客。(3)國家和首都(假設一個國家的首都可以變化)。(4)飛機和乘客。(5)銀行和賬戶。(6)圖書和借閱者。(設一個借閱者可同時借閱多本書,可在不同時間對同一本書借閱多次) 6.資料庫系統包含哪三級模式?試分別說明每一級模式的作用? 答:資料庫系統包含的三級模式為:內模式、模式和外模式。外模式是對現實系統中用戶感興趣的整體數據結構的局部描述,用於滿足不同資料庫用戶需求的數據視圖,是資料庫用戶能夠看見和使用的局部數據的邏輯結構和特徵的描述,是對資料庫整體數據結構的子集或局部重構。模式是資料庫中全體數據的邏輯結構和特徵的描述,是所有用戶的公共數據視圖。內模式是對整個資料庫的底層表示,它描述了數據的存儲結構。
7. 資料庫管理系統提供的兩級映像的作用是什麼?它帶來了哪些功能? 答:資料庫系統的兩級映象是模式與內描述間的映象和外模式與模式間的映象。模式/內模式的映象帶來了物理獨立性,即如果資料庫的存儲結構改變了,可通過調整模式/內模式的映象,使模式能夠保持不變。外模式/概念模式間的映象帶來了邏輯獨立性,當概念模式的結構可發生改變時,也可通過調整外模式/模式間的映象關系,使外模式可以保持不變。8.資料庫三級模式劃分的優點是什麼?它能帶來哪些數據獨立性? 答:資料庫的三級模式的劃分實際上將用戶、邏輯資料庫與物理資料庫進行了劃分,使彼此之間的相互干擾減到最少。這三個模式的劃分實際上帶來了兩個數據獨立性:物理獨立性和邏輯獨立性。這使得底層的修改和變化盡量不影響到上層。第3章 關系資料庫 1. 試述關系模型的三個組成部分。答:關系數據結構、關系操作集合和關系完整性約束。2. 解釋下列術語的含義:(1) 笛卡爾積:設D1,D2,…,Dn為任意集合,定義笛卡爾積D1,D2,…,Dn為:D1×D2× …×Dn ={(d1,d2,…,dn) | di ∈Di,i=1,2,…,n }(2) 主鍵:也稱主碼為或主關鍵字,是表中的屬性或屬性組,用於惟一地確定一個元組。(3) 候選鍵:如果一個屬性或屬性集的值能夠惟一標識一個關系的元組而又不包含多餘的屬性,則稱該屬性或屬性集為候選鍵。(4) 外鍵:設F是關系R的一個或一組屬性,如果F與關系S的主鍵相對應,則稱F是關系R的外鍵。(5) 關系:關系就是簡單二維表。(6) 關系模式:二維表的結構稱為關系模式。(7) 關系資料庫:對應於一個關系模型的所有關系的集合稱為關系資料庫。3. 關系資料庫的三個完整性約束是什麼?各是什麼含義? 答:實體完整性、參照完整性和用戶定義的完整性。實體完整性是保證關系中的每個元組都是可識別的和惟一的。參照完整性也稱為引用完整性,用於表達現實世界中的實體之間的關聯關系。
用戶定義的完整性也稱為域完整性或語義完整性,用於保證資料庫中存儲的值與現實世界相符。4. 連接運算有哪些?等值連接和自然連接的區別是什麼? 答:連接運算中最重要也是最常用的連接有兩個,一個是等值連接,一個是自然連接。自然連接與等值連接的差別為:l 自然連接要求相等的分量必須有共同的屬性名,等值連接則不要求;l 自然連接要求把重復的屬性名去掉,等值連接卻不這樣做。5. 對參與並、交、差運算的兩個關系R、S有什麼要求? 答:必須結構相同,且相應的屬性值取自同一個值域。6. 對參與除運算的兩個關系(R÷S)有什麼要求?除運算的結果關系中包含哪些屬性? 答:R中必須包含S的全部或部分屬性,除運算的結果包含的屬性是只屬於R不屬於S的屬性。7. 對參與自然連接和等值連接操作的兩個關系R、S有什麼要求?答:有語義相同的屬性。8. 投影操作的結果關系中是否有可能存在重復的記錄?為什麼? 答:不可能,因為投影運算會自動去掉投影後重復的記錄。9.利用表3-10至3-12所示的三個關系,寫出實現如下查詢要求的關系代數表達式。(1)查詢「信息系」學生的選課情況,列出學號、姓名、課程號和成績。∏Sno, Sname, Cno, Grade(σSdept=『信息系』(SCStudent)) 或:∏Sno, Sname, Cno, Grade(SC σSdept=『信息系』(Student))(2) 查詢「VB」課程的考試情況,列出學生姓名、所在系和考試成績。∏Sname, Sdept, Grade(σCname=『VB』(CoureSCStudent)) 或:∏Sname, Sdept, Grade(σCname=『VB』(Coure) SCStudent)(3) 查詢考試成績高於90分的學生的姓名、課程名和成績。∏Sname, Cname, Grade(σGrade>90(CoureSCStudent)) 或:∏Sname, Cname, Grade(Coure
σGrade>90(SC)Student)(4) 查詢至少選修了0512號學生所選的全部課程的學生的姓名和所在系。∏Sname, Sdept(Student (SC ÷ ∏Cno(σsno=』0512』(SC))))(5) 查詢至少選了「C01」和「C02」兩門課程的學生的姓名、所在系和所選的課程號。∏Sname, Sdept, Cno(Student (SC ÷ ∏Sno(σcno=』C01』 V Cno=』C02』(SC))))(6) 查詢沒有選修第1學期開設的全部課程的學生的學號、姓名和所選的課程號。∏Sno, Sname, Cno(Student SC (∏sno(SC) - ∏sno(σsemester=1(Course)SC)))(7) 查詢計算機系和信息系選了VB課程的學生姓名。∏Sname(σsdept=』計算機系』V sdept=』信息系』)∧ cname=』vb』(StudentSC Course)) 或:∏Sname(σsdept=』計算機系』V sdept=』信息系』(Student)SC σcname=』vb』(Course)) 第4章 SQL Server 20__基礎 1. 安裝SQL Server 20__對硬碟及內存的要求分別是什麼? 答:SQL Server 20__實際硬碟空間需求取決於系統配置和您決定安裝的功能,一般應確保系統驅動器中是否有至少 6.0 GB 的可用磁碟空間。內存:E_press 版本:最少512 MB;其他版本:最少1 GB。2. SQL Server實例的含義是什麼?實例名的作用是什麼? 答:一個實例代表一個獨立的資料庫管理系統。實例名是實例的標識,用戶通過「計算機名/實例名」的方式可訪問指定的命令實例。3. SQL Server 20__的核心引擎是什麼? 答:SQL Server(MSSQLSERVER)4. SQL Server 20__提供的設置服務啟動方式的工具是哪個? 答:配置管理器
5. 在SQL Server 20__中,每個資料庫至少包含幾個文件? 答:2個文件,一個數據文件,一個日誌文件 6. SQL Server 20__資料庫文件分為幾類?每個文件有哪些屬性? 答:主要數據文件和次要數據文件,屬性有:物理文件名及其位置、邏輯文件名、初始大小、增長方式、最大大小。第 5 章 數據類型及關系表創建 1. Tinyint數據類型定義的數據的取值范圍是多少? 答:0-2552. SmallDatatime類型精確到哪個時間單位? 答:分鍾3. 定點小數類型numeric中的p和q的含義分別是什麼? 答:p代表整數位數+小數位數的和值,q代表小數位數。4. Char(n)、nchar(n)的區別是什麼?它們各能存放多少個字元? 答:Char(n)中的n代表能存放n個位元組的字元,如果是字母可以存放n個,如果是漢字可存放n/2個。Nchar(n)中的n代表能存放的字元個數。5. Char(n)和varchar(n)的區別是什麼?答:Char(n)是定長存儲,一定佔n個位元組的空間。Varchar(n)代表最多佔n個位元組的空間。6. 數據完整性約束的作用對象有哪些? 答:表和列7. CHECK約束的作用是什麼? 答:限制列的取值范圍。8. UNIQUE約束的作用是什麼? 答:限制列取值不重。9. DEFAULT約束的作用是什麼? 答:提供列的默認值。上機練習 1. 在第4章創建的Students資料庫中,寫出創建如下三張表的SQL語句,要求在定義表的同時定義數據的完整性約束:(1)「圖書」表結構如下:書號:統一字元

⑺ 資料庫原理答案及應用(SQL Server版)課後習題答案 主編武洪萍 馬桂婷

把題目發出來吧,這里高手很多。

⑻ mysql資料庫技術答案在哪看

直接網路搜索。資料庫技術經歷了人工管理階段、文件系統階段和資料庫系統三個階段。

1)人工管理階段

這個時期數據管理的特點是:

數據由計算或處理它的程序自行攜帶,數據和應用程序一一對應,應用程序依賴於

數據的物理組織,因此數據的獨立性差,數據不能被長期保存,數據的冗餘度大等給數

據的維護帶來許多問題。

2)文件系統階段

在此階段,數據以文件的形式進行組織,並能長期保留在外存儲器上,用戶能對

數據文件進行查詢、修改、插入和刪除等操作。程序與數據有了一定的獨立性,程序和

數據分開存儲,然而依舊存在數據的冗餘度大及數據的不一致性等缺點。

3)資料庫系統階段

資料庫系統的特點如下:

(1)數據結構化

(2)較高的數據共享性

(3)較高的數據獨立性



(4)數據由DBMS 統一管理和控制

2.簡述數據、資料庫、資料庫管理系統、資料庫應用系統的概念。

答:數據是描述事物的符號記錄,是信息的載體,是信息的具體表現形式。

資料庫就是存放數據的倉庫,是將數據按一定的數據模型組織、描述和存儲,能夠自動

進行查詢和修改的數據集合。

資料庫管理系統是資料庫系統的核心,是為資料庫的建立、使用和維護而配置的軟體。

它建立在操作系統的基礎上,位於用戶與操作系統之間的一層數據管理軟體,它為用戶

或應用程序提供訪問資料庫的方法,包括資料庫的創建、查詢、更新及各種數據控制等。

資料庫應用系統:凡使用資料庫技術管理其數據的系統都稱為資料庫應用系統。

3.簡述資料庫管理系統的功能。

⑼ 資料庫系統原理及應用教程(第3版)課後習題答案!

習題5第5題p148

create database 職工_社團

use 職工_社團

create table 職工(

職工號 char(10) primary key,

姓名 char(8),

年齡 smallint default 20,

性別 char(20),

constraint C1 check (性別 in ('男','女')));

create table 社會團體(

編號 char(10) primary key,

名稱 char(8),

負責人 char(10),

活動地點 char(20),

constraint C2 foreign key (負責人) references 職工 (職工號));

create table 參加(

職工號 char(10),

編號 char(10),

參加日期 smalldatetime,

constraint C3 primary key (職工號,編號),

constraint C4 foreign key (職工號) references 職工 (職工號),

constraint C5 foreign key (編號) references 社會團體 (編號));

(2)

create view 社團負責人(編號,名稱,負責人職工號,負責人姓名,負責人性別)

as select 社會團體.編號,社會團體.名稱,社會團體.負責人, 職工.職工號,職工.性別

from 職工,社會團體,參加

where 社會團體.編號=參加.編號 and 職工.職工號=參加.職工號

create view 參加人情況(職工號,姓名,社團編號,社團名稱,參加日期)

as select 參加.職工號,姓名,社會團體.編號,名稱,參加日期

from 職工,社會團體,參加

where 職工.職工號=參加.職工號 and 參加.編號=社會團體.編號

(3)

select distinct 職工.職工號,姓名

from 職工,社會團體,參加

where 職工.職工號=參加.職工號 and 參加.編號=社會團體.編號

and 社會團體.名稱 in('歌唱隊','籃球隊');

(4)

select *

from 職工

where not exists (select *

from 參加

where 參加.職工號=職工.職工號);

(5)

select * from 職工

where not exists

(select *

from 社會團體

where not exists

(select *

from 參加

where 參加.職工號=職工.職工號 and 參加.編號=社會團體.編號));

(6)

select 職工號

from 職工

where not exists (select *

from 參加 參加1

where 參加1.職工號='001'and not exists

(select *

from 參加 參加2

where 參加2.編號=參加1.編號 and 參加2.職工號=職工.職工號))

(7)

select 編號,count(職工號) as 參加人數

from 參加

group by 編號;

(8)

select TOP 1 名稱,count(*) 參加人數

from 參加,社會團體

where 參加.編號=社會團體.編號

group by 名稱

order by 參加人數 desc

(9)

select distinct 社會團體.名稱,職工.姓名 as 負責人

from 職工,社會團體,參加

where 社會團體.編號=參加.編號

and 社會團體.負責人=職工.職工號

and 參加.編號 in(select 參加.編號

from 參加

group by 參加.編號 having count(參加.編號)>100)

(10)

grant select,insert,delete on 社會團體 to 李平

with grant option;

grant select,insert,delete on 參加 to 李平

with grant option;

習題6第9題p212

create database 學生選課

use 學生選課

create table 學生(

學號 char(10) primary key,

姓名 char(10),

性別 char(10),

constraint C1 check (性別 in ('男','女')),

年齡 smallint default 20,

所在系 char(20));

create table 課程(

課程號 char(10) primary key,

課程名 char(20),

先行課 char(20));

create table 選課(

學號 char(10),

課程號 char(10),

成績 smallint,

constraint D1 primary key (學號,課程號),

constraint D2 foreign key (學號) references 學生(學號),

constraint D3 foreign key (課程號) references 課程(課程號))

create index student_ind on 學生(學號)

create index class_ind on 課程(課程號)

create index select_ind on 選課(學號,課程號)

create rule value_rule as @value in ('男','女')

go

exec sp_bindrule 'value_rule','學生.性別'

go

create default 性別預設 as '男'

go

exec sp_bindefault '性別預設','學生.性別'

go

create trigger 選課插入更新 on 選課

for insert,update

as if (select count(*)

from 學生,inserted,課程

where 學生.學號=inserted.學號 and 課程.課程號=inserted.課程號)=0

rollback transaction

go

create trigger delete_all on 學生

for delete

as delete 選課

from 選課,deleted

where 選課.學號=deleted.學號

go

select 所在系,count(學號)as 學生人數

from 學生

group by 所在系

order by 所在系

compute count(所在系),sum(count(學號))

select *

from 學生 inner join 選課 on 學生.學號=選課.學號

go

select *

from 學生 left outer join 選課 on 學生.學號=選課.學號

go

select *

from 學生 right outer join 選課 on 學生.學號=選課.學號

go

select 選課.學號,學生.姓名,

學習情況=case

when avg(成績)>=85 then '好'

when avg(成績)>=75 and avg(成績)<85 then '較好'

when avg(成績)>=60 and avg(成績)<75 then '一般'

when avg(成績)<60 then '較差'

end

from 學生,選課

where 學生.學號=選課.學號

group by 選課.學號,姓名

go

只有這些,不知道用得到嗎