1、存儲過程和函數的差別
存儲過程是使用者定義的一系列sql語句的集合,涉及特定表或其它對象的任務,使用者可以調用存儲過程,而函數通常是資料庫已定義的方法,它接收參數并傳回某種類型的值并且不涉及特定使用者表。
2、Mysql的技術特點是什麼?
Mysql資料庫軟體是一個用戶端或伺服器系統,其中包括:支援各種用戶端程式和庫的多線程SQL伺服器、不同的後端、廣泛的應用程式程式設計接口和管理工具。
3、檢視系統資訊的SQL語句有哪些?
檢視系統資訊
show status;
show variables;
show global variables;
show global variables like '%version%';
show variables like '%storage_engine%'; 預設的存儲引擎
4、Mysql伺服器預設端口是什麼?
Mysql伺服器的預設端口是3306。
5、與Oracle相比,Mysql有什麼優勢?
- Mysql是開源軟體,随時可用,無需付費。
- Mysql是便攜式的
- 帶有指令提示符的GUI。
- 使用Mysql查詢浏覽器支援管理
6.導入資料庫的SQL語句是什麼?
- 導入方法一:
mysql -uroot -p123456 ceshi(資料庫名)< ceshi.sql
- 導入方法二:
use ceshi;
source /root/ceshi.sql
7、導出資料庫的SQL語句是什麼?
mysqldump -u 使用者名 -p 資料庫名 > 導出的檔案名
8、如何檢視mysql的警告資訊:
mysql> show warnings; 檢視最近一個 sql 語句産生的錯誤警告
9、如何擷取目前的Mysql版本?
SELECT VERSION();
用于擷取目前Mysql的版本。
10、如何在linux伺服器中配置mysql的慢查詢?
# vim /etc/my.cnf
[mysqld]
slow_query_log = 1 #開啟慢查詢日志
slow-query-log-file=/var/lib/mysql/slow.log #這個路徑對 mysql 使用者具有可寫權限
long_query_time=5 #查詢超過 5 秒鐘的語句記錄下來
11、主鍵和候選鍵有什麼差別?
表格的每一行都由主鍵唯一辨別,一個表隻有一個主鍵。 主鍵也是候選鍵。 按照慣例,候選鍵可以被指定為主鍵,并且可以用于任何外鍵引用。
12、如何使用Unix shell登入Mysql?
我們可以通過以下指令登入:
# [mysql dir]/bin/mysql -h hostname -u -p
13、MYSQL資料庫伺服器性能分析的方法指令有哪些?
14、LIKE聲明中的%和_是什麼意思?
%對應于0個或更多字元,_隻是LIKE語句中的一個字元。
15、常用的索引有哪些種類?
16、Mysql查詢是否區分大小寫?
不區分
SELECT VERSION(), CURRENT_DATE;
SeLect version(),
current_date;
seleCt vErSiOn(), current_DATE;
所有這些例子都是一樣的,Mysql不區分大小寫。
17、LIKE和REGEXP操作有什麼差別?
LIKE和REGEXP運算符用于表示^和%。
SELECT
FROM employee WHERE emp_name REGEXP "^b";SELECT FROM employee WHERE emp_name LIKE "%b";
18、InnoDB是什麼?
InnoDB,是MySQL的資料庫引擎之一,它的特性是支援事務,并且采用多版本并發控制的方式來提高并發度,當一個事務全部完成,才會執行update.如果一段代碼沒有完成(及一個事務操作沒有完成)它是不會update的,例如: 銀行轉帳,一 筆業務沒有完成的時候,突然的斷電,或是,網絡,系統的原因使你無法完成此交易的話,這個事務是要復原的此交易之前的狀态的,沒有完成交易,你銀行的 money是不會減少的! 缺點是,innoDB的表執行起來速度較慢,但是安全!
19、Mysql如何優化DISTINCT?
DISTINCT在所有列上轉換為GROUP BY,并與ORDER BY子句結合使用。
SELECT DISTINCT t1.a FROM t1,t2 where t1.a=t2.a;
20、如何輸入字元為十六進制數字?
如果想輸入字元為十六進制數字,可以輸入帶有單引号的十六進制數字和字首(X),或者隻用(Ox)字首輸入十六進制數字。 如果表達式上下文是字元串,則十六進制數字串将自動轉換為字元串。
21、如何顯示前50行?
在Mysql中,使用以下代碼查詢顯示前50行:
SELECT FROM LIMIT 0,50;
22、mysql 中 varchar 與 char 的差別以及 varchar(50)中的 50 代表的涵義?
- varchar 與 char 的差別: char 是一種固定長度的類型,varchar 則是一種可變長度的類型.
- varchar(50)中 50 的涵義 : 最多存放 50 個位元組
- int(20)中 20 的涵義: int(M)中的 M indicates the maximum display width (最大顯示寬度)for integer types. The maximum legal display width is 255.
23、什麼是通用SQL函數?
- CONCAT(A, B) - 連接配接兩個字元串值以建立單個字元串輸出。通常用于将兩個或多個字段合并為一個字段。
- FORMAT(X, D)- 格式化數字X到D有效數字。
- CURRDATE(), CURRTIME()- 傳回目前日期或時間。
- NOW() - 将目前日期和時間作為一個值傳回。
- MONTH(),DAY(),YEAR(),WEEK(),WEEKDAY() - 從日期值中提取給定資料。
- HOUR(),MINUTE(),SECOND() - 從時間值中提取給定資料。
- DATEDIFF(A,B) - 确定兩個日期之間的差異,通常用于計算年齡
- SUBTIMES(A,B) - 确定兩次之間的差異。
- FROMDAYS(INT) - 将整數天數轉換為日期值。
24、1000w條資料,使用limit offset 分頁時,為什麼越往後翻越慢?如何解決?
先查主鍵,再分頁。
select * from tb where id in(select id from tb where limit 10 offset 20)
25、Mysql中有哪幾種鎖?
MyISAM支援表鎖,InnoDB支援表鎖和行鎖,預設為行鎖
- 表級鎖:開銷小,加鎖快,不會出現死鎖。鎖定粒度大,發生鎖沖突的機率最高,并發量最低
- 行級鎖:開銷大,加鎖慢,會出現死鎖。鎖力度小,發生鎖沖突的機率小,并發度最高