《2018年電大-數(shù)據(jù)庫應(yīng)用技術(shù)-綜合應(yīng)用題.docx》由會員分享,可在線閱讀,更多相關(guān)《2018年電大-數(shù)據(jù)庫應(yīng)用技術(shù)-綜合應(yīng)用題.docx(8頁珍藏版)》請在裝配圖網(wǎng)上搜索。
1、綜合應(yīng)用題1 圖書銷售(本題10分)題目1題干寫出創(chuàng)建如下三張數(shù)據(jù)表的SQL語句。(本題4分)“圖書”表結(jié)構(gòu):書號:普通編碼定長字符類型,長度為10,主鍵。書名:普通編碼可變長字符類型,長度為20,非空。類別:統(tǒng)一字符編碼定長字符類型,長度為4,取值為:“高等數(shù)學(xué)”、“量子力學(xué)”、“國學(xué)基礎(chǔ)”。出版日期:日期類型。單價:整型。“書店”表結(jié)構(gòu):書店編號:普通編碼定長字符類型,長度為20,主鍵。書店名:普通編碼可變長字符類型,長度為30,非空。地址:統(tǒng)一字符編碼可變長字符類型,長度為30?!颁N售”表結(jié)構(gòu):書號:普通編碼定長字符類型,長度為10,引用圖書表的外鍵。書店編號:普通編碼定長字符類型,長度
2、為20,引用書店表的外鍵。銷售時間:日期時間類型。銷售數(shù)量:整型。主鍵:(書號,書店編號,銷售時間)。答:CREATE TABLE 圖書(書號 char(10) primary key,書名 varchar(20) not null,類別 nchar(4) CHECK (類別 IN(高等數(shù)學(xué),量子力學(xué), 國學(xué)基礎(chǔ)),出版日期 date,單價 int)CREATE TABLE 書店(書店編號 char(20) primary key,書店名 varchar(30) not null,地址 nvarchar(30)CREATE TABLE 銷售(書號 char(10),書店編號 char(20),
3、銷售時間 datetime,銷售數(shù)量 int,Primary key(書號,書店編號,銷售時間),Foreign key(書號) references 圖書(書號),Foreign key(書店編號) references 書店(書店編號)題目2題干依據(jù)第1題所創(chuàng)建的三張表,寫出完成下列操作的SQL語句。(本題4分)1) 查詢“量子力學(xué)”類圖書的書名和出版日期。2) 查詢單價大于等于60的圖書的銷售情況,列出書名、類別、銷售時間和銷售數(shù)量。3) 將“量子力學(xué)”類圖書的單價降低10。4) 在書店表中插入一行數(shù)據(jù),書店編號:SD100,書店名:新華書店,地址:西單。答:1)SELECT 書名,出版
4、日期 FROM 圖書 WHERE 類別 = 量子力學(xué)2)SELECT 書名, 類別, 銷售時間, 銷售數(shù)量 FROM 圖書 a JOIN 銷售 b ON a.書號 = b.書號 WHERE 單價 = 603)UPDATE 圖書SET 單價 = 單價 - 10 WHERE 類別 = 量子力學(xué)4)INSERT INTO 書店VALUES(SD100,新華書店,西單)題目3題干依據(jù)第1題所創(chuàng)建的三張表,寫出創(chuàng)建滿足如下要求的視圖的SQL語句:查詢銷售了“高等數(shù)學(xué)”類圖書的書店名和地址。(本題2分)答:CREATE VIEW V1 ASSELECT 書店名,地址 FROM 書店 aJOIN 銷售 b
5、ON a.書店編號 = b.書店編號 JOIN 圖書 c ON c.書號 = b.書號 WHERE 類別 = 高等數(shù)學(xué)綜合應(yīng)用題2 教師授課(本題10分)題目4題干寫出創(chuàng)建如下三張數(shù)據(jù)表的SQL語句。(本題4分)“教師”表結(jié)構(gòu):教師號:普通編碼定長字符類型,長度為10,主鍵。教師名:普通編碼可變長字符類型,長度為20,非空。所在部門:普通編碼可變長字符類型,長度為30。職稱:普通編碼定長字符類型,長度為6,取值為:“教授”、“副教授”、“其他”?!罢n程”表結(jié)構(gòu):課程號:普通編碼定長字符類型,長度為20,主鍵。課程名:普通編碼可變長字符類型,長度為40,非空。學(xué)時數(shù):微整型。開課學(xué)期:微整型。“
6、授課”表結(jié)構(gòu):教師號:普通編碼定長字符類型,長度為10,引用教師表的外鍵。課程號:普通編碼定長字符類型,長度為20,引用課程表的外鍵。授課時數(shù):整型。授課年份:整型。主鍵:(教師號,課程號,授課年份)。答:CREATE TABLE 教師(教師號 char(10) primary key,教師名 varchar(20) not null,所在部門 varchar(30),職稱 char(6) CHECK (職稱 IN(教授,副教授, 其他)CREATE TABLE 課程(課程號 char(20) primary key,課程名 varchar(40) not null,學(xué)時數(shù) tinyint,開
7、課學(xué)期 tinyint)評分要點:共1分。CREATE TABLE 授課(教師號 char(10),課程號 char(20),授課時數(shù) int,授課年份 int,Primary key(教師號,課程號,授課年份),Foreign key(教師號) references 教師(教師號),Foreign key(課程號) references 課程(課程號)題目5題干依據(jù)第1題所創(chuàng)建的三張表,寫出完成下列操作的SQL語句。(本題4分)1) 查詢“教授”職稱的教師姓名和所在部門。2) 查詢每學(xué)期開設(shè)的學(xué)時數(shù)大于40的課程門數(shù)。3) 查詢2016年全部課程的授課情況,列出課程名、學(xué)時數(shù)、教師名和授課時
8、數(shù)。刪除沒人講授的課程。答:1) SELECT 教師名, 所在部門FROM 教師 WHERE 職稱 = 教授2) SELECT 開課學(xué)期,COUNT(*) 課程門數(shù)FROM 課程WHERE 學(xué)時數(shù) 40GROUP BY 開課學(xué)期3) SELECT 課程名, 學(xué)時數(shù), 教師名, 授課時數(shù) FROM 課程 JOIN 授課 ON 課程.課程號 = 授課.課程號 JOIN 教師 ON 教師.教師號 = 授課.教師號 WHERE 授課年份 = 20164) DELETE FROM 課程 WHERE 課程號 NOT IN (SELECT 課程號 FROM 授課)題目6題干依據(jù)第1題所創(chuàng)建的三張表,寫出創(chuàng)建滿足如下要求的視圖的SQL語句:查詢2016授課年份全體授課教師的教師名、所授的課程名和授課時數(shù)。(本題2分)答:CREATE VIEW V1 ASSELECT 教師名,課程名,授課時數(shù)FROM 授課 JOIN 教師 ON 授課.教師號 = 教師.教師號JOIN 課程 ON 課程.課程號 = 授課.課程號WHERE 授課年份 = 2016