資料庫面試測驗題(一)
簡述當前主流RDBMS軟體有哪些?開源且跨平臺的資料庫軟體有哪些?
參考答案
當前主流的資料庫服務器軟體有: Oracle 、 DB2 、 SQL SERVER 、MySQL 等 ,其中只有MySQL是既開源又跨平臺的資料庫服務軟體,
簡述MySQL資料庫的服務行程名、默認埠、默認資料庫目錄?
參考答案
服務行程名:mysqld
默認監聽埠號:3306
默認資料庫目錄:/var/lib/mysql
簡述MySQL默認的4個庫叫什么名字?哪個庫里的資料不占用物理磁盤空間?
參考答案
MySQL默認的4個庫分別是 information_schema 、performance_schema 、mysql 、sys 其中information_schema庫不占用物理磁盤空間,
簡述MySQL資料庫中插入、更新、查詢、洗掉表記錄的指令格式,
參考答案
1)插入記錄指令格式
//一次插入一條記錄 給記錄的所有欄位賦值insert into 庫.表 values(值串列);//一次插入多條記錄 給記錄的所有欄位賦值insert into 庫.表 values(值串列),(值串列); insert into 庫.表(欄位名串列) values(值串列); //一次插入1條記錄 給記錄的指定欄位賦值insert into 庫.表(欄位名串列) values(值串列),(值串列); //一次插入多條記錄 給記錄的指定欄位賦值
2)更新記錄指令格式
//批量修改update 表名 set 欄位名=值,欄位名="值"; //修改符合條件的記錄欄位的值update 表名 set 欄位名=值,欄位名="值" where 條件;
3)查詢記錄指令格式:
//查詢所有記錄指定欄位的值,select 欄位串列 from 表名; //查詢與條件匹配記錄指定欄位的值,select 欄位串列 from 表名 where 條件運算式串列;
4)洗掉表記錄指令格式:
//洗掉表的所有記錄,delete from 表名;//只洗掉符合條件的記錄 delete from 表名 where 條件;
查詢綜合練習題,按要求寫出對應查詢陳述句,
1、添加記錄編號欄位id 在所有欄位上方,欄位值可以自動增長,
2、顯示uid 是四位數的用戶的用戶名和uid號,
3、顯示名字是以字母r 開頭 且是以字母d結尾的用戶名和uid號,
4、查看gid 小于10的用戶使用shell的種類,
5、查看shell不是/bin/bash用戶中uid號最大用戶名及uid號,
6、統計uid是3位數的用戶的個數,
參考答案
1、添加記錄編號欄位id 在所有欄位上方,欄位值可以自動增長,
alter table userdb.userlist add id int(2) primary key auto_increment first;
2、顯示uid 是四位數的用戶的用戶名和uid號,
select name,uid from userdb.userlist where uid >=1000 and uid<=9999; 或 select name,uid from userdb.userlist where uid between 1000 and 9999; 或 select name,uid from userdb.userlist where uid regexp ‘^....$’;
3、顯示名字是以字母r 開頭 且是以字母d結尾的用戶名和uid號,
select name,uid from userdb.userlist where name regexp ‘^r.*d$’;或select user from mysql.user where user regexp '^r' and user regexp 'd$';
4、查看uid 小于10的用戶使用shell的種類,
select shell from userdb.userlist where uid<10 group by shell;或Select distinct shell from userdb.userlist where uid<10;
5、查看shell不是/bin/bash用戶中uid號最大用戶名及uid號,
select name,uid from userdb.userlist where shell!=”/bin/bash” order by uid desc limit 1;
6、統計uid是3位數的用戶的個數,
select count(name) from userdb.userlist where uid >=100 and uid<=999;
請列出MySQL常用的資料型別,并寫出定義這些資料型別所使用的命令,
參考答案
MySQL常用的資料型別有:字符型別、數值型別、日期時間型別、列舉型別
字符型別: char 、 varchar 、 blob、 text
數值型別: tinyint 、smallint 、int 、bigint 、float 、 double
日期時間型別: year 、 date 、 time 、 datetime 、 timestamp
列舉型別: enum 、set
定義資料型別命令:create 庫名.表名(欄位名 數值型別,欄位名 數值型別 ,,,); 或 alter 庫名.表名 modify 欄位名 數值型別
簡述資料匯入命令格式,
參考答案
mysql> LOAD DATA INFILE "/目錄名/檔案名" INTO TABLE 庫名.表名 FIELDS TERMINATED BY "符號" LINES TERMINATED BY "\n";
簡述主鍵的使用規則,
參考答案
1)欄位值不允許重復,且不允許賦NULL值
2)一個表中只能有一個primary key欄位
3)多個表頭做主鍵,稱為復合主鍵,必須一起創建
4)主鍵的標志是PRI
5)主鍵通常與auto_increment 連用6)通常把行號表頭設定為主鍵
簡述創建外鍵語法格式及使用規則,
參考答案
語法格式
CREATE TABLE 庫名.表名 (表頭名串列, FOREIGN KEY(表頭名) REFERENCES 庫名.表名(表頭名) ON UPDATE CASCADE ON DELETE CASCADE )ENGINE=innodb;
使用規則:
1)表存盤引擎必須是innodb
2)欄位型別要一致
3)被參照欄位必須要是索引型別的一種(primary key)
簡述讀取binlog日志內容恢復資料格式
參考答案
mysqlbinlog /目錄名/binlog日志檔案名 | mysql -uroot -p密碼
簡述什么是binlog日志
參考答案
binlog日志也稱做二進制日志,記錄除查詢之外的所有SQL命令,可用于資料的備份和恢復,是配置mysql主從同步的必要條件
簡述備份策略
參考答案
完全備份:備份所有資料
增量備份:備份上次備份后,新產生的資料
差異備份:備份完全備份后,新產生的資料
簡述innobackupex的特點及增量恢復資料的步驟
參考答案
特點:在線備份不鎖表,備份執行程序中同時允許對表做讀寫訪問
增量恢復資料步驟如下:
1)準備恢復資料
2)合并資料
3)停止資料庫服務并清空資料庫目錄
4)拷貝資料
5)修改資料庫目錄所有者/組用戶為mysql
6)啟動mysqld服務
寫出用戶授權命令語法格式,
參考答案
GRANT 權限串列 ON 庫名.表名 TO 用戶名@'客戶端地址' IDENTIFIED BY '密碼' ;
資料庫授權綜合練習,按題目要求寫出對應的授權命令,
1、查看當前資料庫服務器有哪些授權用戶?
2、授權管理員用戶可以在網路中的任意主機登錄,對所有庫和表有完全權限登陸密碼123456
3、授權webadmin用戶可以從網路中的所有主機登錄,對bbsdb庫擁有完全權限,登錄密碼為 123456
4、不允許資料庫管理員在資料庫服務器本機登錄,
參考答案
1.select user from mysql.user;
2.grant all on *.* to root@“%” identified by “123456”;
3.grant all on bbsdb.* to webadmin@“%” identified by “123456” ;
4.delete from mysql.user where host=”localhost” and user=”root”;
flush privileges;
寫出撤銷用戶授權命令語法格式,
參考答案
revoke 權限串列 on 資料庫名 from 用戶名@”客戶端地址”;
簡述什么是索引及索引的優/缺點
參考答案
1)什么是索引
類似書的目錄
為快速查找資料而排好序的一種資料結構,
所有的資料型別都可以被索引,
Mysql索引主要有三種結構:Btree、B+Tree 、Hash ,
2)索引優點
可以提高MySQL的檢索速度
索引減小了服務需要掃描的資料量
索引可以幫助服務器避免排序和臨時表
索引可以將隨機IO變成順序IO
3)索引缺點
雖然索引大大提高了查詢速度,同時卻會降低更新表的速度,如對表進行INSERT、UPDATE和DELETE,因為更新表時,MySQL不僅要保存資料,還要保存索引檔案,
建立索引會占用磁盤空間的索引檔案,一般情況這個問題不太嚴重,但如果你在一個大表上創建了多種組合索引,索引檔案的會膨脹很快,
如果某個資料列包含許多重復的內容,為它建立索引就沒有太大的實際效果,
對于非常小的表,大部分情況下簡單的全表掃描更高效,
簡述什么是視圖及視圖的優點,
參考答案
1)什么是視圖
只有表結構的虛擬表,
資料庫服務只存放了視圖的定義,視圖中的資料存放在原表中,
使用視圖查詢資料時,會從原表中取出對應的資料,
原表中的資料發生改變,視圖中的資料也會發生改變,反之亦然,
視圖中的資料由創建視圖時的SELECT陳述句決定,
2)視圖的優點
1. 簡單
用戶無需關心視圖中的資料如何查詢獲得的
視圖中的資料已經是過濾好的符合條件的結果集
安全:用戶只能看到視圖中的資料
2. 資料獨立
一旦視圖結構確定,可以屏蔽表結構對用戶的影響
寫出創建存盤程序的命令格式
參考答案
delimiter //
create procedure 庫名.名稱()
begin 代碼塊
end//
delimiter ;
轉載請註明出處,本文鏈接:https://www.uj5u.com/shujuku/536925.html
標籤:其他
上一篇:Debezium的增量快照
下一篇:Debezium的增量快照
