數據庫筆試題集合(一)


數據庫筆試題集合(一)

1.選擇1.1 Having 子句的作用是(C)。A.查詢結果的分組條件 B.組的篩選條件C.限定返回的行的判斷條件 D.對結果集進行排序

1.2 最常用的一種基本數據模型是關係數據模型,它的表示採用(D)A.樹 B.網絡 C.圖 D.二維表1.3 數據庫系統的核心是(B)A.數據模型 B.數據庫管理系統 C.數據庫 D.數據庫管理員

1.4 關係表中每一橫行稱為(B)A.元組 B.字段 C.屬性 D.碼1.5 數據庫管理系統維護中,最重要的是(數據維護) 程序維護 數據維護 編碼維護 硬件維護1.6 以下那些不是 NoSQLmssql memcached mongodb postgresql cassandra couchdb redis

1.7 PHP 和 MYSQL 的聯合使用解決了(C)

A 在 proxy 上處理數據庫訪問問題B 在 www 服務器上處理黑客的非法訪問問題C 在 www 服務器上處理數據庫的訪問問題D 在 sendmail 郵件系統上處理數據庫的訪問問題

1.8 以下哪個端口為遠程登陸默認端口(3306)1433 3389 3306

2 填空

2.1 如何通過 shell 登錄 mysql?(mysql -u -p -h -P)

2.2 數據庫觸發器能監控的觸發事件有————監視地點(table) 監視事件(insert/update/delete) 觸 發時間(after/before) 觸發事件(insert/update/delete)————

2.3 數據庫系統的組成部分有:硬件、軟件、數據庫、用戶(數據庫管理員)2.4 實現多臺交換機或集線器連接在一起只能通過級聯的方式(級聯複製)2.5 遠程連接 mysql 數據庫的命令是什麼___mysql -u -p -h -P___2.6 當刪除一個數據庫後,僅能用__binlog , 物理備份__數據重建以前的數據庫中的數據2.7 SQL 中定義別名的三種方法是___列 AS 別名___列 別名_____別名= 列________________1.2.8 mysql 服務器默認的監聽端口是:_3306____ ,mysql 的配置文件是:_/etc/my.cnf_______

3 簡答3.1 簡述 mysql 單機安裝過程

1.在官網下載二進制 包2. 解壓,並修改/etc/my.cnf 文件3.初始化數據4.啟動

3.2 mysql 登錄命令mysql -u -p -h -P

3.3 說明數據庫內存結構中 SGA 和 PGA 的組成,以及這兩個內存區存放信息的區別

SGA 區由數據緩衝區、共享池、重做日誌緩衝區、大型池、JAVA 池構成;PGA 區由排序區、私有SQL 區以及堆棧構成。SGA 區是由 Oracle 分配的共享內存結構,包含一個數據庫實例共享的數據和控制信息。當多個用戶 同時連接同一個實例時,SGA 區數據供多個用戶共享,所以 SGA 區又稱為共享全局區。用戶對數 據庫的各種操作主要在 SGA 區中進行。該內存區隨數據庫實例的創建而分配,隨實例的終止而釋 放。PGA 區是在用戶進程連接數據庫,創建一個會話時,由 Oracle 為用戶分配的內存區域,保存當 前用戶私有的數據和控制信息,因此該區又稱為私有全局區。每個服務器進程只能訪問自己的 PGA區,所有服務器進程 PGA 區總和即為實例的 PGA 區的大小。

3.4 說明數據庫表空間的種類,以及不同類型表空間的作用 共享表空間,獨立表空間

共享表空間是一個庫的數據都存放一個文件內,獨立表空間是一個表一個 ibd 與 frm 文件

3.5 mysql 表中的中文字體亂碼,原因可能是什麼?如何修改

字符集編碼問題ALTER TABLE 表名 DEFAULT CHARACTER SET utf8 COLLATE utf8_general_ci;

3.6 mysql 忘記密碼如何操作--skip-grant-tables ----> 跳過授權表(mysql.user)

--skip-networking ----> 跳過網絡用戶連接3.7 請寫出目前市場上最常見的 2-5 種關係型數據庫廠家,並註明他們產品的最新版和你熟悉的或者接觸過的版本:

廠家: 最新版本: 熟悉的版本: 接觸過的版本

mysql 5.6 5.7 Oracle、MsSQL(SQL Server)、PG

3.8 如何修改 mysql 的 root 密碼

set password for 用戶名@localhost = password('新密碼');

3.9 請舉出幾個你熟悉的關係型數據庫管理系統和非關係型數據庫管理系統,非關係型數據庫相比 之下有什麼不同之處(好處和不足)?

關係型:mysql,Oracle非關係型:redis,mongodb非關係型,操作簡單,有幾率丟數據

3.10 存儲過程與函數的區別

存儲過程是用戶定義的一系列 sql 語句的集合,涉及特定表或其它對象的任務,用戶可以調用存儲 過程,而函數通常是數據庫已定義的方法,它接收參數並返回某種類型的值並且不涉及特定用戶 表。

3.11 什麼是視圖,遊標是什麼?

視圖是一種虛擬的表,具有和物理表相同的功能。可以對視圖進行增,改,查,操作,視圖通常是 有一個表或者多個表的行或列的子集。對視圖的修改不影響基本表。它使得我們獲取數據更容易, 相比多表查詢。

遊標:是對查詢出來的結果集作為一個單元來有效的處理。遊標可以定在該單元中的特定行,從結 果集的當前行檢索一行或多行。可以對結果集當前行做修改。一般不使用遊標,但是需要逐條處理 數據的時候,遊標顯得十分重要。

3.12 你對數據庫瞭解嗎?你們公司的數據庫是什麼樣的? 我們公司是高可用 MySQL 及主從架構與讀寫分離,使用的 MySQL1.3.13 你們公司數據庫最大連接數是多少?目前瞭解併發不到 20003.14 MySQL 數據庫 storage engine 中的 myisam、innodb 有什麼差別

myisam 是表級鎖,不支持事務,支持溫備innodb 是行級鎖,支持事務,自動故障恢復,外鍵,熱備

3.15 請列舉幾個常見的 nosql db 你最熟悉那個?

redis memcached mongodb

3.16 簡述 where 和 having 的區別:

Where 子句是用來指定 "行" 的條件的,而 Having 子句是指定 “組” 的條件的所以 Where 子句 = 指定行所對應的條件所以 Having 子句 = 指定組所對應的條件當在 Where 子句和 Having 子句中都可以使用的條件,從語句的執行效率來看,最好寫在 Where 子 句中。

在使用 Count 函數等對錶中的數據進行聚合操作時,DBMS 內部會進行排序處理,而排序操作會增 加機器的負擔,減少排序的行數,可以增加處理速度。使用 Where 子句指定條件時,由於排序之前就對數據進行了過濾,所以能夠減少排序的數據量。但 是 Having 子句是在排序之後才對數據進行分組的,因此與前者相比,需要排序的數據量就要多得 多。

第三,使用 Where 子句更具速度優勢的另一個理由是,可以對 Where 子句指定條件所對應的列創建 索引,這樣可以大幅提高處理速度。第四,Where 子句中不能使用聚合函數,而 Having 子句中可以。


分享到:


相關文章: