軟體測試員必備:面試時常問的15個MySQL資料庫查詢語句

博為峰網校發表於2019-03-27

一、什麼是資料庫?

資料庫是按照資料結構來組織、儲存和管理資料的倉庫,每個資料庫都有一個或多個不同的API用於建立,訪問,管理,搜尋和複製所儲存的資料。

我們也可以將資料儲存在檔案中,但是在檔案中讀寫資料速度相對較慢。

所以,現在我們使用關係型資料庫管理系統來儲存和管理的大資料量。所謂的關係型資料庫,是建立在關係模型基礎上的資料庫,藉助於集合代數等數學概念和方法來處理資料庫中的資料。

軟體測試員必備:面試時常問的15個MySQL資料庫查詢語句

關聯式資料庫管理系統(RDBMS)的特點:

1.資料以表格的形式出現

2.每行為各種記錄名稱

3.每列為記錄名稱所對應的資料域

4.許多的行和列組成一張表單

5.若干的表單組成database

如今已有許多商業關聯式資料庫管理系統,如Oracle,IBM DB2和Microsoft SQL Server等。

也有許多免費的開源關聯式資料庫,如MySQL,mSQL(mini-SQL)和嵌入式JavaDB(Apache Derby)等。

二、MySQL資料庫

軟體測試員必備:面試時常問的15個MySQL資料庫查詢語句

1、定位:

開源、多平臺、關係型資料庫

目前使用最廣泛、流行度最高的的開源資料庫。

2、特點:

功能: 支援事務,符合關係型資料庫原理,符合ACID,支援多數SQL規範,以二維表方式組織資料,有外掛式儲存引擎,支援多種儲存引擎格式

部署: 用編譯安裝的方式,或者二進位制包的方式,按照“安裝軟體-建立例項-庫表使用者初始化”,可以很快完成資料庫部署。

使用: 使用標準的SQL語句進行資料庫管理,簡單SQL語句的併發和效能較好,對檢視、儲存過程、函式、觸發器等支援的不是太好

監控: 在命令列介面有一些常用的命令顯示狀態和效能,在圖形介面方面,有比較多的開源監控工具來監控和記錄資料庫的狀態,比如zabbix,nagios,cacti,lepus等

備份: 邏輯備份 mysqldump/mysqldumper ,物理備份 用xtrabackup等工具進行備份;

高可用: MySQL高可用有多種方案,官方有基礎的master-slave主從複製,新版本的innodb cluster,第三方的有MHA等高可用方案;

擴充套件: MySQL水平拆分,可以透過水平拆分proxy中間進行邏輯對映和拆分,擴大MySQL資料庫的併發能力和吞吐量。

3、適用場景:

預設的innodb儲存引擎,支援高併發,簡單的絕大部分OLTP場景;

Tokudb儲存引擎,使用高併發insert的場景;

Inforbright儲存引擎,可以進行列壓縮和OLAP統計查詢場景;

4、選擇注意:

使用MySQL進行OLTP業務時,需要注意資料量級,如果資料量級過大,需要進行水平拆分;

如果有OLAP需求,可以結合其他架構綜合考慮。

三、測試人員面試:必問的 MySQL 查詢語句

1、檢視當前使用的是哪個資料庫

mysql> select database();

另外,在下面2個語句的輸出裡也能看出當前庫是哪一個

mysql> show tables;

mysql> status;

2、檢視MySQL版本和狀態

mysql> select VERSION();

mysql> status;

3、檢視MySQL例項的當前狀態(引數形式)

mysql> show status;

4、檢視MySQL例項的引數

mysql> show variables;

檢視最大連線數

mysql> show variables like '%max_connections%';

5、檢視MySQL例項當前的程式

mysql> show processlist;

6、查詢所有資料

select * from Info 查所有資料

select Code,Name from Info 查特定列

7、根據條件查

select * from Info where Code='p001' 一個條件查詢

select * from Info where Code='p001' and Natio n='n001' 多條件 並關係 查詢

select * from Info where Name='胡軍' or Nation='n001' 多條件 或關係 查詢

select * from Car where Price>=50 and Price<=60 範圍查詢

select * from Car where Price between 50 and 60 範圍查詢

8、模糊查詢

select * from Car where Name like '%型' %萬用字元代表任意多個字元

select * from Car where Name like '%奧迪%' _萬用字元代表任意一個字元

select * from Car where Name like '_馬%'

9、排序

select * from Car order by Price asc 按照價格升序排列

select * from Car order by Price desc 按照價格降序排列

select * from Car order by Price,Oil 按照兩列進行排序,前面的為主要的

10、統計函式(聚合函式)

select count(Code) from Car 查詢表中有多少條資料

select max(Price) from Car 取價格的最大值

select min(Price) from Car 取價格的最小值

select sum(Price) from Car 取價格的總和

select avg(Price) from Car 取價格的平均值

11、分組查詢

select Brand from Car group by Brand having count(*)>2 查詢所有系列中數量大於2的

12、分頁查詢

select * from Car limit 0,5 跳過幾條資料取幾條資料

13、去重查詢

select distinct Brand from Car

14、查詢建庫、建表語句

mysql> show create database dbname;

指定庫後才能查詢建表語句

mysql> show create table tablename;

15、查詢指定表的欄位屬性

mysql> show full columns from tablename;

或者

mysql> show full fields from tablename;

歡迎加入  51軟體測試大家庭,在這裡你將獲得【最新行業資訊】,【免費測試工具安裝包】,【軟體測試技術乾貨】,【面試求職技巧】... 51與你共同學習,一起成長!期待你的加入: QQ                     群:                    755431660

來自 “ ITPUB部落格 ” ,連結:http://blog.itpub.net/31407649/viewspace-2639500/,如需轉載,請註明出處,否則將追究法律責任。

相關文章