SQL数据库笔试选择题(知识点总结)
1、一個關系數據庫文件中的各條記錄 ()B
A 前后順序不能任意顛倒,一定要按照輸入的順序排列
B 前后順序可以任意顛倒,不影響庫中的數據關系
C 前后順序可以任意顛倒,但排列順序不同,統計處理的結果就可能不同
D 前后順序不能任意顛倒,一定要按照關鍵字字段值的順序排列
關系數據庫的邏輯性強而物理性弱,因此關系數據庫中的各條記錄前后順序可以任意顛倒,不影響庫中的數據關系
2、一名員工可以使用多臺計算機,每臺計算機只能由一名員工使用,則實體員工和計算機間的聯系是( )?A
A 一對多 B 多對多 C 多對一 D 一對一?
因為一名員工可以使用多臺計算機(1:m),而一臺計算機只能被一名員工使用(1:1),所以員工和計算機兩個實體之間是一對多的關系。故本題答案為 A 選項。?
3、下列關于視圖的說法錯誤的是:?B
A 視圖是從一個或多個基本表導出的表,它是虛表
B 視圖一經定義就可以和基本表一樣被查詢、刪除和更新
C 某一用戶可以定義若干個視圖
D 視圖可以用來定義新的視圖?
視圖是指計算機數據庫的視圖,是一個虛擬表,其內容由查詢定義。同真實的表一樣,視圖包含一系列帶有名稱的列和行數據,但是,視圖并不在數據庫中以存儲的數據值集形式存在。行和列數據來自定義視圖的查詢所引用的表,并且在引用視圖時動態生成。視圖一經定義就無法修改?
4、在Mysql中,訂單表 ( 訂單號,雇員代號,地區代號,訂購日期 ) 中訂單號為主鍵,要刪除訂單中前三年以前的信息, SQL 為:?D
A?delete?from?訂單表?where?訂購日期<getdate()+3
B?delete?from?訂單表?where?訂購日期<DATEADD(yy,3,getdate())
C?delete?from?訂單表?where?訂購日期<getdate()-3
D?delete?from?訂單表?where?訂購日期<DATEADD(yy,-3,getdate())
DATEADD() 函數在日期中添加或減去指定的時間間隔。
語法 :DATEADD(datepart,number,date)
datapart參數的取值范圍{yy/yyyy,qq/q,mm/m,dy/y,dd/d,wk/ww,dw/w,hh,mi/n,ss/s,ms,mcs,ns}
number 是你希望添加的間隔數
date 參數是合法的日期表達式
5、負責數據庫中查詢操作的數據庫語言是( )。?C
A 數據定義語言 B 數據管理語言 C 數據操縱語言 D 數據控制語言?
數據定義語言:負責數據的模式定義與數據的物理存取構建;數據操縱語言:負責數據的操縱,包括查詢及增、刪、改等操作;數據控制語言:負責數據完整性、安全性的定義與檢查以及并發控制、故障恢復等功能。
6、數據庫管理系統是( )。?B
A 操作系統的一部分 B 在操作系統支持下的系統軟件 C 一種編譯系統 D 一種操作系統?
數據庫管理系統是數據庫的機構,它是一種系統軟件,負責數據庫中數據組織、數據操縱、數據維護、控制及保護和數據服務等。是一種在操作系統之上的系統軟件。?
7、SQL 語句中修改表結構的命令是()?C
A MODIFY TABLE
B MODIFY STRUCTURE
C ALTER TABLE
D ALTER STRUCTURE?
修改表結構的關鍵字都是alter table 表名,再跟具體修改的語句,如
添加表字段
alter table table_name add 字段名稱 字段類型
刪除表字段
alter table table_name drop 字段名稱
修改表字段
alter table table_name change 舊字段名稱 新字段名稱 字段類型
alter table table_name modify 字符名稱 字符類型
8、在sql數據庫中,哪個語句能校驗整數列 i 的值不小于 1 不大于 10 ??A
A i BETWEEN 1 AND 10
B i BETWEEN 0 AND 11
C i IN INTERVAL(0,11)
D i IN INTERVAL(1,10)?
當interval作為函數時,它被當作一個比較函數,即interval(),如interval(4,0,1,2,3,4,5,6) ,則在函數中,第一個數4作為被比較數,后面的0,1,2,3,4,5,6為比較數,然后將后面的數字依次與4進行比較,返回小于等于4的個數,所以上述結果為5,注意只有將4后面的數字從大到小進行排序,interval函數才能正常使用,若排序混亂,也可以使用但會影響最終結果。
當interval作為關鍵字時,表示為時間間隔,常用在date_add()、date_sub()函數中,常用于時間的加減法,查詢當前時間之前兩個小時的日期:select now()—interval 2?hours;
?9、SQL 查詢語句中 WHERE 、 GROUP BY 、 HAVING 這些關鍵字區別和用法總結錯誤的是()D
A HAVING在查詢語句中必須依賴于GROUP BY
B WHERE子句用來限制SELECT語句從表中指定選取的行
C GROUP BY子句用來分組WHERE子句的輸出結果集
D HAVING子句用來從分組的結果中篩選列?
having是分組查詢時,在分組后條件過濾,這里的過濾是針對行來過濾,不是篩選列
where是分組前的過濾,group by 是分組?
10、?定義學生、教師和課程的關系模式 S (S#,Sn,Sd,Dc,SA )(其屬性分別為學號、姓名、所在系、所在系的系主 任、年齡); C ( C#,Cn,P# )(其屬性分別為課程號、課程名、先修課); SC ( S#,C#,G) (其屬性分別為學號、課程號和成績),則該關系為( )A
A 第二范式 B 第一范式 C 第三范式 D BCNF范式?
范式是符合某一種級別的關系模式的集合。關系數據庫中的關系必須滿足一定的要求,滿足不同程度要求的為不同范式。目前關系數據庫有六種范式:第一范式 ( 1NF )、第二范式( 2NF )、第三范式( 3NF )、 Boyce-Codd 范式( BCNF )、第四范式( 4NF )和第五范式( 5NF )。滿足最低要求的范式是第一 范式( 1NF )。在第一范式的基礎上進一步滿足更多要求的稱為第二范式( 2NF ),其余范式以次類推。一般說來,數據庫只需滿足第三范式( 3NF )就行了。
第一范式:主屬性(主鍵)不為空且不重復,字段不可再分(存在非主屬性對主屬性的部分依賴)。
第二范式:如果關系模式是第一范式,每個非主屬性都 沒有對主鍵的部分依賴。
第三范式:如果關系模式是第二范式,沒有非主屬性對主鍵的傳遞依賴和部分依賴。
BCNF 范式:所有屬性都不傳遞依賴于關系的任何 候選鍵。
題目中關系模式滿足第二范式,但在關系模式 S 中,學生所在系依賴于學號( S# → Sd ),但系本身確定了系主任( Sd → Dc ),存在傳遞依賴,不 滿足第三范式。故本題答案為 A 選項。?
11、?下面不屬于數據庫系統特點的是( )A
A 數據冗余度高 B 數據具有完整性 C 數據共享性好 D 數據獨立性高?
數據庫系統的特點:數據共享性高,冗余度小;具有高度的物理獨立性和邏輯獨立性;整體結構化,用數據模型描述;由數據庫系統提供數據安全性、完整性、 并發控制和恢復能力。簡單說即數據庫系統的特點為高共享、低冗余、獨立性高、具有完整性等。故本題答案為 A 選項。
12、將實體-聯系模型轉換為關系模型時,實體之間多對多聯系在關系模型中的實現方式是( )A?
A 建立新的關系 B 建立新的屬性 C 增加新的關鍵字 D 建立新的實體?
將實體-聯系模型轉換為關系模型時,一個m:n的聯系可以轉換為一個獨立的關系模式,與該聯系相連的各實體的碼及聯系本身的屬性均轉換為關系的屬性,而關系的碼為各實體碼的組合。故本題答案為A選項。?
13、關于求和函數,以下說法正確的是()?A
A sum返回表達式中所有數的總和,因此只能用于數字類型的列
B Avg返回表達式中所有數的平均值,可以用于數字型和日期型的列
C Max和Min可以用于字符型的列
D Count可以用于字符型的列?
avg不能使用日期型的列,max和min只能用于數值型的列,count可以使用任意類型的字段,但都不屬于求和函數?
14、有三個關系 R 、 S 和 T 如下: 則由關系 R 和 S 得到關系 T 的操作是( )。C
?
?A 自然連接 B 交 C 除 D 并
如果 S = T/R ,則 S 稱為 T 除以 R 的商。在除運算中 S 的域由 T 中那些不出現在 R 中的域所組成,對于 S 中的任一有序組,由它與關系 R 中每個有序組所構成 的有序組均出現在關系 T 中。所以本題選擇 C 。
1.連接:
從兩個關系的笛卡爾積中選擇屬性間滿足一定條件的元組,形成一個新的關系。連接運算將兩個或多個關系連接在一起,是笛卡爾積、選擇和投影的組合。連接運算的操作步驟是:首先得到R和S的笛卡爾積,然后根據連接條件,從中選擇滿足條件的元組,然后對選擇出來的元組進行投影,消除多余的屬性列。連接條件中的屬性成為連接屬性,兩個關系中的連接屬性必須類型相同,而且是可比的。
(1)等值連接:
從R和S的笛卡爾積中選取A、B屬性值相等的元組(即屬性A和屬性B的取值相等),并將其連接起來。
(2)自然連接:
是一種特殊的等值連接,它要求兩個關系中進行比較的分量必須是相同的屬性組(即R和S中都有屬性A)。
(3)除:
關系R(X,Y),S(Y,Z),X,Y,Z均為屬性組,R除S為P(X),找出S中屬性組所有Y的取值y1,y2,y3,...yn,對應在R中找出所有Y的取值為y1,y2,y3,...,yn對應的X的取值x1,x2,x3...,xn,則x1,x2,x3,..,xn組成P(X),它共有n個元組,只有一個屬性X
2.并、交、差要求關系R和S具有相同的關系模式,即R、S中的屬性相同,例如;R的屬性名為A,B,C,S的屬性名也為A,B,C。
15、設有表示學生選課的三張表,學生S(學號,姓名,性別,年齡,身份證號),課程C(課號,課名),選課SC(學號,課號,成績),則表SC的關鍵字(鍵或碼) 為( )。?C
A 課號,成績 B 學號,成績 C 學號,課號 D 學號,姓名,成績?
學號是學生表S的主鍵,課號是課程表C的主鍵,所以選課表SC的關鍵字就應該是與前兩個表能夠直接聯系且能唯一定義的學號和課號,所以選擇C。?
16、關系數據庫所采用的數據存放形式是()?A
A 二維表 B 鏈表 C 網狀 D 二叉樹?
關系數據庫是以“二維表”的形式組織和存放數據的。. 關系數據庫的表采用二維表格來存儲數據,是一種按行與列排列的具有相關信息的邏輯組,它類似于Excel工作表;一個數據庫可以包含任意多個數據表。?
17、某關系表有:員工(部門編號,部門名稱,員工編號,姓名,性別,年齡),則其主碼為()。A
A 部門編號、員工編號 B 員工編號 C 姓名 D 部門編號
由于一個員工可能屬于多個部門(如CEO等),所以主碼應該選A?
18、?在使用 limit 子句時,如果沒有足夠的行,則:B
A MySQL會報錯 B MySQL將只返回它能返回的那么多行 C MySQL將不會返回任何行?
19、?給出數據表 score(stu-id,name,math,english,Chinese), 下列語句正確的是( )A
A Select sum(math),avg(chinese) from score
B Select *,sum(english) from score
C Select stu-id, sum(math) from score
D Delete * from score?
B和C:*多行,sum一行,stu_id多行,sum一行,D:正確的刪除為delete from score?
19、設有一個數據庫mydb中有一個表tb1,表中有六個字段,主鍵為ID,有十條記錄,ID從0到9, 以下代碼輸出結果是()?C
A 6 B 4 C 3 D 5?
<?php$link = mysql_connect('localhost', 'user', 'password')or die('Could not connect '.mysql_error());$result = mysql_query("SELECT id, name, age FROM mydb.tb1 WHERE id <'5'")or die('Could not query: '.mysql_error());echo mysql_num_fields($result);mysql_close($link); ?>mysql_num_fields() 函數返回結果集中字段的數。?
20、在一個mysql查詢中,使用哪一個關鍵字能去除重復列值()?C
A group by B order by C distinct D limit?
21、在一個含有group by的查詢sql中,同時存在having和where,sql在解析執行的時候,先執行的是哪一個??B
A having B where?
22、數據庫做join操作時,至少要涉及到幾張表??B
A 3 B 1 C 2 D 4?
自連接即涉及一張表?
23、在下面的兩個關系中,職工號和部門號分別為職工關系和部門關系的主鍵(或稱主碼)職工(職工號、職工名、部門號、職務、工資) 部門(部門號、部門名、部 門人數、工資總額) 在這兩個關系的屬性中,只有一個屬性是外鍵(或稱外來鍵、外碼、外來碼),它是 ______?B
A 職工關系的“職工號” B 職工關系的“部門號” C 部門關系的“職工號” D 部門關系的“部門號”?
職工與部門是一對多的關系,職工號為職工關系的主鍵,部門號為部門關系的主鍵,職工關系的部門號為外鍵
24、下列哪一個命令為刪除 sample 數據庫的 tb_ame 表()?D
A delete from tb_ame
B delete from sample.tb_ame
C drop table tb_ame
D drop table sample.tb_ame?
刪除表用的是drop table 刪除表中的數據是delete from,C選項中必須在已經使用sample數據庫之后才能使用,D選項不論在哪一個數據庫都能使用
25、語句 SELECT IF(-1,5,2) 的返回值是:?D
A 2 B 6 C -1 D 5?
if()函數的具體用法:IF(expr1,expr2,expr3),如果expr1值為真(Boolean值為true,或不為0的值),則返回expr2的值,否則返回expr3的值?
26、 數據庫中存在學生表S、課程表C和學生選課表SC三個表,它們的結構如下:S(S#,SN,SEX,AGE,DEPT)C(C#,CN)SC(S#,C#,GRADE)其中:S#為學號,SN 為姓名,SEX為性別,AGE為年齡,DEPT為系別,C#為課程號,CN為課程名,GRADE為成績。請檢索選修課程號為C2的學生中成績最高的學號。( )D
A SELECT S#,SUM(GRADE)FROM SC WHERE GRADE>=60 GROUP BY S# ORDER BY 2 DESC HAVING COUNT(*)>=4 WHERE C#=“C2” AND GRADE??>=(SELECT GRADE FORM SC WHERE C#=“C2”)
B SELECT S# FORM SC WHERE C#=“C2” AND GRADE IN (SELECT GRADE FORM SC WHERE C#=“C2”)
C SELECT S# FORM SC WHERE C#=“C2” AND GRADE NOT IN (SELECT GRADE FORM SC WHERE C#=“C2”)
D SELECT S# FORM SC WHERE C#=“C2” AND GRADE>=ALL (SELECT GRADE FORM SC WHERE C#=“C2”)?
只要學號直接排除A
成績最高使用ALL,>=就是大于等于ALL后面的最大值;
如果是小于就是小于ALL后面的最小值;
27、在關系型是數據庫中,有兩個不同的事務同時操作數據庫中同一表的同一行,不會引起沖突的是:?F
A 其中一個DELETE操作,一個是SELECT操作
B 其中兩個都是UPDATE
C 其中一個是SELECT,一個是UPDATE
D 其中一個SELECT E 其中一個是DELETE,另一個是UPDATE
F 兩個都是DELETE?
當要刪除的記錄在數據庫中不存在的時候,是不會報錯的。?
28、以下哪個不是與Mysql服務器相互作用的通訊協議()?B
A TCP/IP B UDP C 共享內存 D Socket?
MySQL實現了四種通信協議
TCP/IP協議,通常我們通過來連接MySQL,各種主要編程語言都是根據這個協議實現了連接模塊
Unix Socket協議,這個通常我們登入MySQL服務器中使用這個協議,因為要使用這個協議連接MySQL需要一個物理文件,文件的存放位置在配置文件中有定義,值得一提的是,這是所有協議中最高效的一個。
Share Memory協議,這個協議一般人不知道,肯定也沒用過,因為這個只有windows可以使用,使用這個協議需要在配置文件中在啟動的時候使用–shared-memory參數,注意的是,使用此協議,一個host上只能有一個server,所以這個東西一般沒啥用的,除非你懷疑其他協議不能正常工作,實際上微軟的SQL Sever也支持這個協議
Named Pipes協議,這個協議也是只有windows才可以用,同shared memory一樣,使用此協議,一個host上依然只能有一個server,即使是使用不同的端口也不行,Named Pipes 是為局域網而開發的協議。內存的一部分被某個進程用來向另一個進程傳遞信息,因此一個進程的輸出就是另一個進程的輸入。第二個進程可以是本地的(與第一個進程位于同一臺計算機上),也可以是遠程的(位于聯網的計算機上)。正因為如此,假如你的環境中沒有或者禁用TCP/IP環境,而且是windows服務器,那么好歹你的數據庫還能工作。使用這個協議需要在啟動的時候添加–enable-named-pipe選項
29、設有兩個事務T1,T2,其并發操作如下所示,下面評價正確的是()D
步驟 ????????T1 ????????T2
1 ???????讀A=100
2 ????????????????????????讀A=100
3??????A=A+10寫回
4????????????????????????A=A-10寫回?
A 該操作不能重復讀 B 該操作不存在問題 C 該操作讀"臟"數據 D 該操作丟失修改?
丟失修改:T1讀完,T2讀完,T1修改寫入,T2修改寫入,覆蓋了T1修改的
不能重復讀:T1讀完,T2改,T1再確認,T1發現不對
讀“臟”數據:T1讀完,T1修改寫入,T2讀,T1撤銷,修改作廢,T2讀的是錯誤?
30、如果事務T獲得了數據項Q上的排它鎖,則T對Q______。?C
A 只能讀不能寫 B 只能寫不能讀 C 既可讀又可寫 D 不能讀不能寫?
共享(S)鎖:多個事務可封鎖一個共享頁;任何事務都不能修改該頁; 通常是該頁被讀取完畢,S鎖立即被釋放。
排它(X)鎖:僅允許一個事務封鎖此頁;其他任何事務必須等到X鎖被釋放才能對該頁進行訪問;X鎖一直到事務結束才能被釋放。
更新(U)鎖:用來預定要對此頁施加X鎖,它允許其他事務讀,但不允許再施加U鎖或X鎖;當被讀取的頁將要被更新時,則升級為X鎖;U鎖一直到事務結束時才 能被釋放。?
31、下列選項中,不屬于SQL約束的是:?D
A UNIQUE B PRIMARY KEY C FOREIGN KEY D BETWEEN?
SQL共有六種約束:
1、not null? 非空約束;
2、unique 唯一性約束;
3、primary key約束? :約束唯一標識數據庫表中的每條記錄(主鍵),主鍵必須包含唯一的值,且不為空;
4、foreign key約束:用于預防破壞表之間連接的動作;
5、check 約束 :用于限制列中的值的范圍;
6、default約束 :用于向列中插入默認值?。
32、下列sql語句中哪條語句可為用戶zhangsan分配數據庫userdb表userinfo的查詢和插入數據權限()。?A
?A grant select,insert on userdb.userinfo to'zhangsan'@'localhost'
B grant'zhangsan'@'localhost'to select,insert for userdb.userinfo
C grant select,insert on userdb.userinfo for'zhangsan'@'localhost'
D grant'zhangsan'@'localhost'to userdb.userinfo on select,insert
權限授予格式:grant [權限] on [table] to 'username'@'localhost';
33、下列對于數據庫索引的說法一定是錯誤的()?B
A 索引可以提升查詢,分組和排序的性能
B 索引不會影響表的更新、插入和刪除操作的效率
C 全表掃描不一定比使用索引的執行效率低
D 對于只有很少數據值的列,不應該創建索引?
當對表中的數據進行增加、刪除和修改的時候,索引也要動態的維護,這樣就降低了數據的維護速度。?
34、下面哪個SQL命令用來向表中添加列()?D
A MODIFY TABLE TableName ADD COLUMN ColumnName
B MODIFY TABLE TableName ADD ColumnName
C ALTER TABLE TableName ADD COLUMN ColumnName
D ALTER TABLE TableName ADD ColumnName Type?
MODIFY 是用來改變表列性質;ADD是增加列;
用法:ALTER TABLE 表名 MODIFY(列名,列的性質(新));
MODIFY和ADD使用時都要用到修改命令ALTER.
增加列:alter table?tableName?add?columnName?varchar?(30)
刪除列:alter table?tableName?drop column?columnName
35、有訂單表orders,包含字段用戶信息userid,字段產品信息productid,以下語句能夠返回至少被訂購過兩次的productid??D
A select productid from orders where count(productid)>1
B select productid from orders where max(productid)>1
C select productid from orders where having count(productid)>1 group by productid
D select productid from orders group by productid having count(productid)>1?
group by 通常和集合函數SUM(),AVG().MAX(),MIN(),COUNT()等結合在一起,后接限制條件語句 having,不可用where語句?
36、在手機開發中常用的數據庫是 ___A
A sqlLite B Oracle C Sql Server D Db23?
37、下列哪個特性與此事相關:已落實的事務會保證所有操作均已完成,并且在事務回滾中,所有操作產生的影響均已得到恢復??B
A 隔離性 B 原子性 C 一致性 D 持久性?
數據庫事務的 4 個特性是:原子性、一致性、持續性、隔離性。?
38、執行以下 SQL ,下面哪個名字會被查詢出來()?C
SELECT FirstName FROM StaffList WHERE FirstName LIKE’_A%’A Allen B CLARK C JACKSON D David
這是模糊查詢的通配符
_:代表的是任意單個字符
%:任意長度的字符串
所以_A%代表返回第二個單詞為A的任意字符串?
39、如下SQL語句中,____可能返回null值。?D
(1) select count(*) from t1;
(2) select max(col1) from t1;
(3) select concat('max=',max(col1)) from t1;
A (1)可能,(2)和(3)不可能
B (2)可能,(1)和(3)不可能
C (3)可能,(1)和(2)不可能
D (1)不可能,(2)和(3)可能
E 都不可能
F 都可能?
(1)返回的是表的行數,如果沒有記錄,應該返回0,不會出現NULL,
(2) 和(3) 正常情況下不會出現NULL,但是如果表里面沒有記錄,則會出現NULL
MySQL concat函數使用方法:
CONCAT(str1,str2,…)?
返回結果為連接參數產生的字符串。如有任何一個參數為NULL ,則返回值為 NULL。
(1). 若表t1中有記錄,會返回記錄數;若無記錄,則返回0;
(2). 若表t1中存在列col為null, 則結果返回null;
(3). 若表t1中存在列col為null, 則結果返回null;
40、使用 % 作為通配符時,匹配的是:C
A 0個或1個字符 B 1個以上的字符(包含1) C 0個以上的字符(包含0)?
% 替代0個或多個字符,_ 僅替代一個字符
41、以下不是RDBMS的是() D
A mysql B postgreSql? C oracle D hadoop?
RDBMS指的是關系型數據庫管理系統,RDBMS是SQL以及所有現代數據庫系統的基礎,例如MS SQL Server、IBM DB2、Oracle、MySQL和Microsoft Access等。postgreSql是對象關系型數據庫管理系統。
Hadoop是分布式系統基礎架構。?
?
?
總結
以上是生活随笔為你收集整理的SQL数据库笔试选择题(知识点总结)的全部內容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: android 4.2修改设置菜单的背景
- 下一篇: pythontuple([1、2、3)_