sql復習
⑴ 來些資料庫的復習資料吧!~!~
一、選擇題
1.設有關系R(A,B,C)和S(C,D)。與sql語句• select A,B,D from R,S where R.C=S.C
等價的關系代數表達式是(B)
A. σR.C=S.C(πA,B,D(R×S)) • B. πA,B,D(σR,C= S.C (R×S))
C. σR.C=S.C((πA,B R)×(πDS)) • D. σR,C=S.C(πD((πA,BR)×S)
2、設關系R和關系S的元數分別是3和4,關系T是R與S的廣義笛卡爾積,即:T=R×S,則關系T的元數是(C)
A. 7 B. 9 C. 12 D. 16
3、資料庫設計階段分為(B)
A. 物理設計階段、邏輯設計階段、編程和調試階段
B. 概念設計階段、邏輯設計階段、物理設計階段、實施和調試階段
C. 方案設計階段、總體設計階段、個別設計和編程階段
D. 模型設計階段、程序設計階段和運行階段
4、設U是所有屬性的集合,X、Y、Z都是U的子集,且Z=U-X-Y。下面關於多值依賴的敘述中,不正確的是(C)
A. 若X→→Y,則X→→Z B. 若X→Y,則X→→Y
C. 若X→→Y,且Y′⊂Y,則X→→Y′ D. 若Z=Φ,則X→→Y
5、查詢優化策略中,正確的策略是(D)
A.盡可能早地執行笛卡爾積操作 B.盡可能早地執行並操作
C.盡可能早地執行差操作 D.盡可能早地執行選擇操作
6、語句delete from sc 表明(A)
A. 刪除sc中的全部記錄 B. 刪除基本表sc•
C. 刪除基本表sc中的列數據 D. 刪除基本表sc中的部分行
7、在DB應用中,一般一條SQL 語句可產生或處理一組記錄,而DB主語言語句一般一次只能處理一條記錄,其協調可通過哪種技術實現(B)
A. 指針 B. 游標 C. 數組 D. 棧
8、五種基本關系代數運算是( A )
A. ∪,-,×,π和σ B. ∪,-,⋈,π和σ
C. ∪,∩,×,π和σ D. ∪,∩,⋈,π和σ
9、下列聚合函數中不忽略空值(null) 的是 ( C )\
A. SUM (列名) B. MAX (列名)• C. COUNT ( * ) D. AVG (列名)
10、在資料庫設計中,將ER圖轉換成關系數據模型的過程屬於(B)
A. 需求分析階段 B. 邏輯設計階段• C. 概念設計階段D. 物理設計階段
11.在SQL語言的SELECT語句中,實現投影操作的是哪個子句?(A)
A. select B. from C. Where D. group by
12、設屬性A是關系R的主屬性,則屬性A不能取空值(NULL)。這是(A)
A. 實體完整性規則 B. 參照完整性規則
C. 用戶定義完整性規則 D. 域完整性規則
13. 當資料庫損壞時,資料庫管理員可通過何種方式恢復資料庫( A )。
A. 事務日誌文件B. 主數據文件
C. DELETE語句 D. 聯機幫助文件
14. 不屬於SQL Server系統全局變數的是( D )。
A. @@Error B. @@Connections
C. @@Fetch_Status D. @Records
還有六個 不知道了...
反正就是這個類型的
二、填空題
• 1、用樹型結構表示實體類型及實體間聯系的數據模型稱為 層次模型。
• 2、關系資料庫的關系演算語言是以謂詞演算為基礎的DML語言。
• 3、從資料庫管理系統角度看,資料庫系統通常採用三級模式結構,即資料庫系統由內模式、外模式和 模式 組成。
• 4、RDMBS查詢處理可分為查詢分析、查詢檢查、查詢優化和查詢執行 四個階段。
• 5、概念結構設計是對現實世界的一種抽象,一般有分析 、聚集、概括共三種抽象機制。
• 6、物理優化就是要選擇高效合理的操作演算法或 存取路徑 以求得優化的查詢計劃。
• 7、將需求分析得到的用戶需求抽象為信息結構即概念模型的過程就是概念結構設計,概念結構設計通常有四類方法:自頂向上、自底向下、逐步擴張和混合策略。
• 8、在關系模式R<U,F>中若不存在這樣的碼X,屬性組Y及非屬性組Z(Z不是Y的子集)使得X→Y,Y→Z成立,且YX,則稱R∈3NF。
9. 觸發器是一種特殊的存儲過程,它可以在對一個表上進行_插入(insert)、 _刪除(delete)__和___更新(update_____操作中的任一種或幾種操作時被自動調用執行。
(還有一個 .....)
三、簡答題
• 1、什麼叫數據與程序的物理獨立性?什麼叫數據與程序的邏輯獨立性?為什麼資料庫系統具有數據與程序的獨立性?
答:數據與程序的邏輯獨立性:當模式改變時(例如增加新的關系、新的屬性、改變屬性的數據
類型等),由資料庫管理員對各個外模式/模式的映像做相應改變,可以使外模式保持不
變。應用程序是依據數據的外模式編寫的,從而應用程序不必修改,保證了數據與程序的邏
輯獨立性,簡稱數據的邏輯獨立性。數據與程序的物理獨立性:當資料庫的存儲結構改變了,
由資料庫管理員對模式/內模式映像做相應改變,可以使模式保持不變,從而應用程序也
不必改變,保證了數據與程序的物理獨立性,簡稱數據的物理獨立性。資料庫管理系統在三
級模式之間提供的兩層映像保證了資料庫系統中的數據能夠具有較高的邏輯獨立性和物理
獨立性。
• 2、資料庫的完整性概念與資料庫的安全性概念有什麼區
別和聯系?
答:數據的完整性和安全性是兩個不同的概念,但是有一定的聯系。前者是為了防止資料庫中存
在不符合語義的數據,防止錯誤信息的輸入和輸出,即所謂垃圾進垃圾出( Garba : e In
Garba : e out )所造成的無效操作和錯誤結果。後者是保護資料庫防止惡意的破壞和非法的
存取。也就是說,安全性措施的防範對象是非法用戶和非法操作,完整性措施的防範對象是
不合語義的數據。
• 3、試給出多值依賴、和4NF的定義。
• 4、試給出函數依賴、BCNF的定義。
• 5、簡述嵌入式SQL語句與主語言之間的通信。
首先用SQL通信區(SQL Communication Area,簡稱SQLCA)向主語言傳遞SQL語句的執行狀態信息,使主語言能夠據此控製程序流程;在程序運行中,主語言向SQL語句提供參數,使用主變數(host variable)輸入數據;同時,程序把SQL語句查詢資料庫的結果交主語言進一步處理,其中使用主變數和游標(cursor)向主語言輸出數據,從而實現了SQL語言的過程化工作。
SQL語句執行後,系統要反饋給應用程序若干信息,主要包括描述系統當前工作狀態和運行環境的各種數據,這些信息將送到SQL通信區SQLCA中。應用程序從SQLCA中取出這些狀態信息,據此決定接下來執行的語句。
• 6、試述RDBMS查詢優化的一般步驟。
( l )把查詢轉換成
某種內部表示,通常用的內部表示是語法樹。 ( 2 )把語法樹轉換成標准(優化)形式。即
利用優化演算法,把原始的語法樹轉換成優化的形式。 ( 3 )選擇低層的存取路徑。 ( 4 )生
成查詢計劃,選擇代價最小的。
• 7、試述RDBMS查詢優化的一般准則。
答:下面的優化策略一般能提高查詢效率: ( l )選擇運算應盡可能先做; ( 2 )把投影運
算和選擇運算同時進行; ( 3 )把投影同其前或其後的雙目運算結合起來執行; ( 4 )把
某些選擇同在它前面要執行的笛卡兒積結合起來成為一個連接運算; ( 5 )找出公共子表
達式; ( 6 )選取合適的連接演算法。
• 8、什麼是資料庫的邏輯結構設計?試述其設計步驟。
答:資料庫的邏輯結構設計就是把概念結構設計階段設計好的基本 E 一 R 圖轉換為與選
用的 DBMS 產品所支持的數據模型相符合的邏輯結構。設計步驟為 : ( l )將概念結構轉換
為一般的關系、網狀、層次模型; ( 2 )將轉換來的關系、網狀、層次模型向特定 DBMS 支持
下的數據模型轉換; ( 3 )對數據模型進行優化。
• 9、數據字典的內容和作用是什麼?
答:數據字典是系統中各類數據描述的集合。數據字典的內容通常包括: ( l )數據項;
( 2 )數據結構; ( 3 )數據流; ( 4 )數據存儲; ( 5 )處理過程五個部分。其中數據項是
數據的最小組成單位,若干個數據項可以組成一個數據結構。數據字典通過對數據項和數據
結構的定義來描述數據流和數據存儲的邏輯內容。數據字典的作用:數據字典是關於資料庫
中數據的描述,在需求分析階段建立,是下一步進行概念設計的基礎,並在資料庫設計過
程中不斷修改、充實、完蓋。
四、設計題
1、今有兩個關系模式:
職工(職工號,姓名,年齡,職務,工資,部門號)Person(pno, pname, page, ptitle, psal, dno)部門 (部門號,名稱,經理名,地址,電話號)Depart(dno, dname, dmanager, daddress, dtel)請用SQL的GRANT和REVOKE語句(加上視圖機制)完成以下授權定義或存取控制功能:
(1)用戶yong對兩個表有INSERT 和DELETE權力。
GRANT INSERT,DELETE ON Person,Depart
TO yong
(2)用戶liu對職工表有SELECT權力,對工資欄位具有更新權力。
GRANT SELECT,UPDATE(psal) ON Person
TO liu
(3)用戶zhang具有修改這兩個表的結構的權力。
GRANT ALTER TABLE ON Person,Depart
TO zhang;
(4)用戶yang具有從每個部門職工中SELECT最高工資、最低工資、平均工資的權力,他不能查看每個人的工資,並具有給其他用戶授權的權力。
視圖:
CREATE VIEW psal AS
SELECT Depart.dname,MAX(psal),MIN(psal),AVG(psal)
FROM Person,Depart
WHERE Person.dno=Depart.dno
GROUP BY Person.dno
GRANT SELECT ON psal
TO yang with grant option ;
(5)撤銷各用戶yang所授予的權力 授權:
REVOKE ALL PRIVILIGES ON Person,Depart FROM YANG;
• 2、假設有下面兩個關系模式:職工(職工號,姓名,年齡,職務,工資,部門
號),其中職工號為主碼;部門(部門號,名稱,經理名,電話),其中部門號
為主碼。用SQL語言定義這兩個關系模式,要求在模式中完成以下完整性約束條
件的定義:定義每個模式的主碼;定義參照完整性;定義職工年齡不得超過60歲。
答
CREATE TABLE DEPT
(Deptno NUMBER(2),
Deptname VARCHAR(10),
Manager VARCHAR(10),
PhoneNumber Char(12)
CONSTRAINT PK_SC RIMARY KEY(Deptno));
CREATE TABLE EMP
(Empno NUMBER(4),
Ename VARCHAR(10),
Age NUMBER(2),
CONSTRAINT C1 CHECK ( Aage<=60),
Job VARCHAR(9),
Sal NUMBER(7,2),
Deptno NUMBER(2),
CONSTRAINT FK_DEPTNO
FOREIGN KEY(Deptno)
REFFERENCES DEPT(Deptno));
• 3、設某商業集團關於商店銷售商品的資料庫中有三個基本表:
• 商店SHOP(S#,SNAME,AREA,MGR_NAME)其屬性是商店編號,商店名稱,區域名,經理姓名。
銷售SALE(S#,G#, QUANTITY)其屬性是商店編號,商品編號,銷售數量。
商品GOODS(G#,GNAME,PRICE)
• 其屬性是商品編號,商品名稱,單價。
• (1)試寫出下列查詢的關系代數表達式、元組表達式和關系邏輯規則:檢索銷售「冰箱」的商店的編號和商店名稱。
解:關系代數表達式:πS#,SNAME(σGNAME='冰箱'(SHOP⋈SALE⋈GOODS))
元組表達式:{ t | (u) (v) (w) (SHOP (u)∧SALE (v)∧GOODS (w)
∧u[1]=v[1]∧v[2]=w[1]∧w[2]= '冰箱'∧t[1]=u[1]∧t[2]=u[2])}
關系邏輯規則:W(u1,u2)SHOP(u1,u2,u3,u4)∧SALE(u1,v2,v3)∧GOODS(v2, '冰箱',w3)
• (2)試寫出上面第(1)問的SELECT語句表達形式。
解:SELECT語句如下:
SELECT A.S#,SNAME
FROM SHOP A,SALE B,GOODS C
WHERE A.S#=B.S# AND B.G#=C.G# AND GNAME='冰箱';
• (3)試寫出下列操作的SQL語句:從SALE表中,把「開開商店」中銷售單價高於1000元的商品的銷售元組全部刪除。
解:DELETE FROM SALE
WHERE S# IN(SELECT S#
FROM SHOP
WHERE SNAME='開開商店')
AND G# IN(SELECT G#
FROM GOODS
WHERE PRICE>1000);
• (4)寫一個斷言,要求區域名為「EAST」的商店裡銷售商品的單價不能低於100元。
解:CREATE ASSERTION ASSE8 CHECK
(100<=ALL(SELECT PRICE
FROM SHOP A,SALE B,GOODS C
WHERE A.S#=B.S# AND B.G#=C.G# AND AREA='EAST'));
或 CREATE ASSERTION ASSE8 CHECK
(NOT EXISTS(SELECT *
FROM SHOP A,SALE B,GOODS C
WHERE A.S#=B.S# AND B.G#=C.G#
AND AREA='EAST' AND PRICE<100));
• (5)試寫出下列操作的SQL語句:
• 統計區域名為「EAST」的所有商店銷售的每一種商品的總數量和總價值。
• 要求顯示(G#,GNAME,SUM_QUANTITY,SUM_VALUE),其屬性為商品編號、商品名稱、銷售數量、銷售價值。
解:SELECT C.G#,GNAME,SUM(QUANTITY)AS SUM_QUANTITY,
PRICE*SUM(QUANTITY)AS SUM_VALUE
FROM SHOP A,SALE B,GOODS C
WHERE A.S#=B.S# AND B.G#=C.G# AND AREA='EAST'
GROUP BY C.G#,GNAME;
(註:SELECT子句中的屬性C.G#,GNAME應在分組子句中出現)
• 4、請設計一個圖書館資料庫,此資料庫中對每個借閱者保存讀者記錄,包括:讀者
號,姓名,地址,性別,年齡,單位。對每本書存有:書號,書名,作者,出版社。對
每本被借出的書存有讀者號、借出日期和應還日期。要求:給出E 一R 圖,再將其轉換為關系模型。
答:
關系模型為:讀者(讀者號,姓名,地址,性別書(書號,書名,作者,出版社)借書
(讀者號,書號,借出日期,年齡,單位)應還日期)
• 6、設有一個SPJ資料庫,包括S,P,J,SPJ四個關系模式:供應商(供應商代碼,供應商姓名,供應商狀態,供應商所在城市)
S(SNO,SNAME,STATUS,CITY)
•零件(零件代碼,零件名,顏色,重量)
•P(PNO,PNAME,COLOR。WEIGHT)
• 工程項目(工程項目代碼,工程項目名,工程項目所在城市)
• J(JNO,JNAME,CITY)
• 供應情況(供應商代碼,零件代碼,工程項目代碼,供應數量)
• SPJ(SNO,PNO,JNO,QTY)
• 試用關系代數和SQL語言完成下列查詢。
• (1)求供應工程J1零件的供應商號碼SNO:
SELECT DIST SNO FROM SPJ WHERE JNO='J1'
• (2)求供應工程J1零件P1的供應商號碼SNO:
SELECT DIST SNO FROM SPJ WHERE JNO='J1' AND PNO='P1';
• (3)求供應工程J1零件為紅色的供應商號碼SNO:
SELECT SNO FROM SPJ,P WHERE JNO='J1' AND SPJ PNO=P PNO AND COLOR='紅';
• (4)求沒有使用天津供應商生產的紅色零件的工程號JNO:
SELECT DIST JNO FROM SPJ WHERE JNO NOT IN (SELE JNO FROM
SPJ,P,S WHERE S.CITY=' 天津 ' AND COLOR=' 紅 ' AND S.SNO=SPJ.SNO AND
P.PNO=SPJ.PNO);
• (5)求至少用了供應商S1所供應的全部零件的工程號JNO:
由於 VFP 不允許子查詢嵌套太深,將查詢分為兩步
A、查詢S1 供應商供應的零件號
SELECT DIST PNO FROM SPJ WHERE SNO='S1'結果是(P1,P2);
B、查詢哪一個工程既使用 P1 零件又使用 P2 零件。
SELECT JNO FROM SPJ WHERE PNO='P1'
AND JNO IN (SELECT JNO FROM SPJ WHERE PNO='P2');
是否具有損連接的分解
⑵ sql語句復習題 求助啊~~
怎麼也不給個表結構或庫結構看,如果不沒給,我就假設了
1. 為學生表增加一個欄位:出生日期 D
alter table 學生表
add
出生日期 datetime null;
2、將學生表中的「出生日期」欄位刪除
alter table 學生表
drop
column 出生日期 cascade
3、將學生表中所有團員的年齡置為18
update 學生表 set 年齡=18
(因為你沒給表結構,所以有些地方不一定像我這樣寫,別的方法也能實現,我這假設一個政治面貌的欄位)
where 政治面貌='團員'
4. 查詢所有女學生的姓名,性別,年齡
select 姓名,性別,年齡
from 表名
(我不知道你的這個性別這列是什麼類型,假高一個CHAR類)
where 性別='女'
5、查詢有考試成績的學生的學號,姓名和性別
select 學號,姓名,性別
from 表名
(假設考試成績欄位有的為NOT NULL,無為NULL)
where 考試成績 is not null
6、查詢選修了C1課程的學生的學號,姓名和專業
select 學號,姓名,專業
from 表名
where 課程=c1
7、查詢所有王華選修的課程的課程名和學分
select 課程,學分
from 表名
where 姓名='王華'
8、查詢和李明專業相同的學生的學號和姓名
法1:select 學號,姓名 from 表名 where 年齡 = (select 姓名 from 表名 where 姓名='李明');
(這種方法要用到內連)
法2:select 學號,姓名 from 表名 where 姓名 in (select 姓名 from 表名 where 姓名='李明');
當然我寫的全是命令方式,如果使用圖形方式更簡單.希望我寫的對你有所幫助
⑶ 全國計算機二級考試(資料庫)應該復習什麼內容(詳細一些)
1、需要學習的內容有:資料庫系統與VFP基礎知識、資料庫基本操作、結構化查詢語言SQL、VFP程序設計、設計器和項目管理器使用等。
2、資料庫系統、資料庫和表、資料庫查詢窗體、報表、數據訪問頁、宏、模塊等。
3、DOS命令,計算機組成原理,多媒體、資料庫操作、計算機網路、C語言程序設計、上機考試。
4、C++語言概述、C++語言數據類型、運算符和表達式、基本控制語句、數組、指針與引用、函數、類和對象繼承、模板等內容。
⑷ 請推薦一本基礎的SQL資料庫的書
《資料庫技術與應用——sql server》我上大學的教課書,感覺挺好的,通俗易懂的。