天天看點

【牛客刷題】資料庫專項錯題記錄三

1.查詢顯示雇員的姓名和姓名中是否含有字母A的資訊,滿足如下條件

如果字元A在姓名的首位,則顯示’字元A在首位’

如果字元A在姓名的末位,則顯示’字元A在末位’

如果字元A在姓名中不存在,則顯示’沒有字元A’

其他情況顯示’字元A在中間’

下列操作語句正确的是

select ename, case charindex(‘A‘,ename)

when 1 then ‘字元A在首位‘

when len(ename) then

‘字元A在末位‘

when 0 then ‘沒有字元A‘

else ‘字元A在中間‘

end 名稱類别 from emp;

資料庫中字元串的索引 開始于1
           

2.避免活鎖采用的簡單政策是( )

A.順序封鎖法

B.依次封鎖法

C.按優先級确定服務順序

D.先來先服務

答案:D
活鎖産生的原因:當一系列封鎖不能按照其先後順序執行時,就可能導緻一些事務無限期等待某個封鎖,進而導緻活鎖
避免活鎖:先來先服務。  預防死鎖:一次封鎖,順序封鎖。
           

3.在 MySQL 中有這樣一個表,記錄使用者的訂單資訊:

複制代碼123456Create Table orders( id int primary key auto_increment, title varchar(100) not null, status int not null, context text) engine=innodb; 有一億行資料且嚴格按照 id 遞增,且訂單 90% 的 title 都是以 xiaomi 開頭的;我目前想查詢訂單以

xiaomi

開頭的最近 10 條訂單的狀态(status) 資訊,執行這樣一個查詢性能不佳的語句:

select * from orders where title like ‘%xiaomi%’ order by id;

僅有以下措施可選,現在隻能讓你做其中唯一一個,你認為最有效的是:()

A.修改查詢列的清單為 id, status

B.建立 title 列的索引

C.在 sql 末尾添加 limit 10

D.修改查詢條件 like ‘%xiaomi%’ 為 like ‘xiaomi%’

答案:C
like 屬于模糊查詢,查詢訂單以 `xiaomi` 開頭,表明不是以xiaomi開頭和結尾的訂單,多了兩個單引号,是以前後要加“%”
limit 10 就是指取前10條的資訊
對于like,在以通配符%或_開頭查詢時,不會使用索引
           

4.關系型資料庫的是Oracle/MySql/SQLServer

5.資料庫中事務隔離分為4個級别,其中允許“不可重複讀”的有?

A.SERIALIZABLE

B.READ COMMITTED

C.READ UNCOMMITTED

D.REPEATABLE READ

資料庫事務的隔離級别有4個,由低到高依次為Read uncommitted、Read committed、Repeatable read、Serializable
https://blog.csdn.net/fg2006/article/details/6937413
           
【牛客刷題】資料庫專項錯題記錄三

6.資料庫系統的核心是資料庫管理系統。資料庫系統一般由資料庫、資料庫管理系(DBMS)、應用系統、資料庫管理者和使用者構成。DBMS是資料庫系統的基礎和核心

7.資料庫的概念模型獨立于()

A.具體的機器和DBMS

B.E-R圖

C.資訊世界

D.現實世界

答案:A
           

8.資料庫實體設計完成後,進入資料庫實施階段,下列各項中不屬于實施階段的工作的是

A.建立庫結構

B.擴充功能

C.加載資料

D.系統調試

答案:B
資料庫實施階段即尚未正式運作的階段。    
任務大概有四:    
1.建立實際的資料庫(将邏輯和實體設計的結果用sql語言等真正建立起來)    
2.編寫和調試應用程式    
3.裝資料(為了測試)    
4.試運作    
至于擴充功能,那是真正運作之後(運作和維護階段)的工作,如果不滿意還可能從頭再來
           

9.SQL執行順序

SQL 不同于與其他程式設計語言的最明顯特征是處理代碼的順序。在大數程式設計語言中,代碼按編碼順序被處理

【牛客刷題】資料庫專項錯題記錄三
邏輯查詢處理階段簡介
1.FROM:對FROM子句中的前兩個表執行笛卡爾積(Cartesian product)(交叉聯接),生成虛拟表VT1 
2.ON:對VT1應用ON篩選器。隻有那些使<join_condition>為真的行才被插入VT2。
3.OUTER(JOIN):如 果指定了OUTER JOIN(相對于CROSS JOIN 或(INNER JOIN),保留表(preserved table:左外部聯接把左表标記為保留表,右外部聯接把右表标記為保留表,完全外部聯接把兩個表都标記為保留表)中未找到比對的行将作為外部行添加到 VT2,生成VT3.如果FROM子句包含兩個以上的表,則對上一個聯接生成的結果表和下一個表重複執行步驟1到步驟3,直到處理完所有的表為止。4.
4.WHERE:對VT3應用WHERE篩選器。隻有使<where_condition>為true的行才被插入VT
5.GROUP BY:按GROUP BY子句中的列清單對VT4中的行分組,生成VT5.
6.CUBE|ROLLUP:把超組(Suppergroups)插入VT5,生成VT6.
7.HAVING:對VT6應用HAVING篩選器。隻有使<having_condition>為true的組才會被插入VT7.
8.SELECT:處理SELECT清單,産生VT8.
9.DISTINCT:将重複的行從VT8中移除,産生VT9.
10.ORDER BY:将VT9中的行按ORDER BY 子句中的列清單排序,生成遊标(VC10)
11.TOP:從VC10的開始處選擇指定數量或比例的行,生成表VT11,并傳回調用者。
注:步驟10,按ORDER
BY子句中的列清單排序上步傳回的行,傳回遊标VC10.這一步是第一步也是唯一一步可以使用SELECT清單中的列别名的步驟。這一步不同于其它步驟的
是,它不傳回有效的表,而是傳回一個遊标。SQL是基于集合理論的。集合不會預先對它的行排序,它隻是成員的邏輯集合,成員的順序無關緊要。對表進行排序
的查詢可以傳回一個對象,包含按特定實體順序組織的行。ANSI把這種對象稱為遊标。了解這一步是正确了解SQL的基礎。 
           

10.SQL特點

1.綜合統一
 2.高度非過程化
 3.面向集合的操作方式
 4.以同一種文法結構提供多種使用方式
 5.語言簡潔,易學易用
           

11.在Visual FoxPro 中,關系資料庫管理系統所管理的關系是若幹個二維表

12.為使程式員程式設計時既可使用資料庫語言又可使用正常的程式設計語言,資料庫系統需要把資料庫語言嵌入到

A.編譯程式

B.作業系統

C.中間語言

D.宿主語言

答案:D
           

13.五種基本關系代數運算是∪,-,×,π和σ(并、差、笛卡爾積、投影和選擇,組成了關系代數完備的操作集)

14.符合資料庫設計第三範式(3NF)的資料表設計是( )

A.學生{id, name, age},學科{course’s name, course’s id},分數{id, course’s id, score}

B.學生{id, name, age},分數{id, course’s name, score}

C.分數{student’s name,score, course’s name}

D.學科{id, name},分數{student’s name, id, score}

答案:A
           

15.在關系資料庫設計中,設計關系模式是資料庫設計中( )階段的任務

A.邏輯設計

B.實體設計

C.需求分析

D.概念設計

答案:A
資料庫設計包括六個主要步驟:
1、需求分析:了解使用者的資料需求、處理需求、安全性及完整性要求;
2、概念設計:通過資料抽象,設計系統概念模型,一般為E-R模型;
3、邏輯結構設計:設計系統的模式和外模式,對于關系模型主要是基本表和視圖;
4、實體結構設計:設計資料的存儲結構和存取方法,如索引的設計;
5、系統實施:組織資料入庫、編制應用程式、試運作;
6、運作維護:系統投入運作,長期的維護工作。
           

16.以下()不是Access的資料庫對象

A.表

B.查詢

C.窗體

D.宏操作

答案:D
宏和表,查詢,窗體,報表一樣都是Access資料庫對象    宏是一系列操作的集合,每個操作都自動完成特定功能,D錯在應該是宏,而不是宏操作 
Access的資料庫對象:
 1、表:主要用于存儲資料。  2、查詢 主要用于提取資料。
 3、窗體 使用者與程式的互動。
 4、報表, 主要用于展示資料。
 5、頁, 主要用于資料共享。
 6、宏, 用于自動化完成
           

17.要删除表A中資料,使用TRUNCATE TABLE A。運作結果是?

A.表A中的限制依然存在

B.表A被删除了

C.表A中的資料被删除了一半,再次執行時,将删除剩下的一半資料行

D.表A中不符合檢查限制要求的資料被删除,而符合檢查限制要求的資料依然保留

答案:A
1. TRUNCATE TABLE 在功能上與不帶 Where子句的 Delete 語句相同:二者均删除表中的全部行。但 TRUNCATE TABLE 比 Delete 速度快,且使用的系統和事務日志資源少。
2. Delete語句每次删除一行,并在事務日志中為所删除的每行記錄一項。TRUNCATE TABLE 通過釋放存儲表資料所用的資料頁來删除資料,并且隻在事務日志中記錄頁的釋放。 
3. TRUNCATE TABLE删除表中的所有行,但表結構及其列、限制、索引等保持不變。新行辨別所用的計數值重置為該列的種子。如果想保留辨別計數值,請改用 Delete。
4. 速度,一般來說: drop> truncate > delete
5. 想保留表而将所有資料删除. 如果和事務無關,用truncate即可. 如果和事務有關,或者想觸發trigger,還是用delete.
           

18.下列SQL語句中,如果要搜尋第1~5筆資料,其A與B應該分别是( )

SELECT * FROM TEXT LIMIT A,B;

A.1,6

B.0,6

C.1,5

D.0,5

答案:D
limit A,B 中A表示記錄的index,B表示取B條資料,limitA,B表示從A+1條資料開始,選B條
           

19.增加主鍵/删除主鍵

表中删除主鍵為: 
alter table table_test drop primary key; 
表中增加主鍵為: 
alter table table_test add primary key(id);
           

20.關系系統

【牛客刷題】資料庫專項錯題記錄三
一、表式系統    僅支援關系(即表)資料結構,不支援關系(即集合)操作。    
二、最小關系系統    僅支援關系資料結構和三種關系搡作。即4.1.l中定義的關系系統。許多微機關系資料庫系統如FoxBASE、FoxPro等就屬于這一類。     
三、關系完備的系統    這類系統支援關系資料結構和所有的關系代數操作(功能上與關系代數等價)。    
四、全關系系統    這類系統支援關系模型的所有特征。即不僅是關系上完備的而且支援資料結構中域的概念,支援實體完整性和參照完整性。目前,大多數關系系統已不同程度上接近或達到了這個目标。 
           

21.如果在建立表中建立字段“履歷”,其資料類型應當是

A.文本

B.數字

C.日期

D.備注

答案:D
在早期版本的 Access 中,我們用于備注資料類型存儲大量的文本,并且要存儲短字元串 (最多 255 個字元) 的文本資料類型。在 Access 2013 和 Access 2016 中,以下兩種資料類型重命名為"長文本"和"短文本"分别,它們具有不同的屬性,具體取決于您使用的桌面資料庫或 Access web 應用程式的大小限制
           

22.下面關于資料庫範式的說法哪些是正确的(多選)

A.關系型資料庫設計必須符合第一範式,在這種範式下一個資料列隻能有一個值

B.資料庫設計範式的引入,提高了資料庫通路的效率

C.資料庫表設計[學号,學生姓名、年齡、性别、課程号、課程名稱 課程學分]滿足第二範式,但不滿足第三範式

D.滿足第四範式必然滿足第三範式,滿足第三範式必然滿足第二範式

E.通過資料範式的引入,可以減少資料備援,消除資料操作異常

F.資料庫設計時,符合的範式的等級越高越好

答案:ADE

B:資料庫設計範式的引入是為了是為了解決插入、删除異常等問題,并不能提高通路效率;    
C:主碼是(學号,課程号),不滿足第二範式;    
F:不是越高越好,看具體需求
           

23.Access 中,日期型資料用通常用 # # 括起來

24.Union 與 Union All 差別

Union:對兩個結果集進行并集操作,不包括重複行,同時進行預設規則的排序; 
Union All:對兩個結果集進行并集操作,包括重複行,不進行排序;
           

25.下面名詞解釋錯誤的是

A.SQL結構化查詢語言,是一種資料庫查詢和程式設計語言,用于存取資料以及查詢、更新和管理關系資料庫系統

B.TCP 傳輸控制協定TCP是一種面向連接配接(連接配接導向)的、可靠的、基于位元組流的運輸層(Transport layer)通信協定

C.QoS 服務品質,是網絡的一種安全機制。QoS是區域網路的一個重要的需求。

D.STL 标準模闆庫

答案:C
QoS應用于廣域網,不是區域網路
           

26.候選碼(Candidatekey)

若關系中的某一屬性組的值能唯一地辨別一個元組,則稱該屬性組為候選碼。簡單的情況:候選碼隻包含一個屬性
           

27.在mysql中,以下哪種方式可以開啟一個事務(多選)

A.START TRANSACTION

B.START

C.BEGIN

D.BEIGN TRANSACTION

答案:AC

BEGIN或START TRANSACTION;顯示地開啟一個事務;
COMMIT;也可以使用COMMIT WORK,不過二者是等價的。COMMIT會送出事務,并使已對資料庫進行的所有修改稱為永久性的;
ROLLBACK;有可以使用ROLLBACK WORK,不過二者是等價的。復原會結束使用者的事務,并撤銷正在進行的所有未送出的修改;
SAVEPOINT identifier;SAVEPOINT允許在事務中建立一個儲存點,一個事務中可以有多個SAVEPOINT;
RELEASE SAVEPOINT identifier;删除一個事務的儲存點,當沒有指定的儲存點時,執行該語句會抛出一個異常;
ROLLBACK TO identifier;把事務復原到标記點;
SET TRANSACTION;用來設定事務的隔離級别。InnoDB存儲引擎提供事務的隔離級别有READ UNCOMMITTED、READ COMMITTED、REPEATABLE READ和SERIALIZABLE。
           

By Mary Super @ 2020.09.20

繼續閱讀