實驗七 MySQL語言結構
一、 實驗內容:
1、 常量的使用
2、 變量的使用
3、 運算符的使用
4、 系統函數的使用
二、 實驗項目:員工管理數據庫
用於企業管理的員工管理數據庫,數據庫名為YGGL中,YGGL數據庫中包括三個表:Employees(員工信息表)、Departments(部門信息表)、Salary(員工薪水情況表)。
三、 實驗步驟:(要求用命令完成以下操作)
1、 常量的使用
(1) 計算85和32的和、差、積、商、余數;

(2) 顯示“I love Mysql”要求每個單詞一行;

(3) 查詢十六進制書50所對應的字符,以及字符串“love”對應的十六進制數;

(4) 使用BIN函數查詢數字250的二進制格式,使用OCT查詢位值“1101010”
所對應的數值;

2、 變量的使用
(1) 定義一個用戶變量@female,並在Select語句中使用該變量,查詢
Employees表中女員工的編號、姓名;

(2) 定義一個用戶變量@phone,用於存儲編號為102201的員工的電話號碼,然
后查詢該變量;

(3) 定義一個用戶變量@name,@real_salary,其中@name賦值“王林”,並使
用該變量查詢王林的實際收入賦值於@@real_salary;

(4) 獲取當前MySQL的版本;

(5) 獲取當前系統的日期時間和當前SQL用戶;

(6) 使用show variables like ‘char%’查詢當前系統的字符集設置,修改當前會話的 系統變量character_set_client字符集為gb2312,修改全局系統變量character_set_server為gb2312;重新啟動一個會話,使用show variables like ‘char%’查詢當前會話的字符集;


(7) 將系統變量character_set_server恢復默認值;

3、 運算符的使用
(1) 查詢工作年限為2年和3年的女員工的編號、姓名;

(2) 查詢收入在2000-3000,工作年限不大於3的員工編號、姓名、收入;

(3) 查詢在日期‘2015-9-1’的基礎上分別加上20天、20個月、20年的日期;

4、 系統函數的使用
(1) 求(50,1,23,56)中的最大值和最小值;

(2) 求比5.7小的最大整數、比7.8大的最小整數和8.8四舍五入的值;

(3) 求8的平方根和6的平方;

(4) 求字符串“ Chinese dream, my dream ”的前5個字符刪除首部空格以及后6個字符並刪除兩端空格;

(5) 獲取當前日期時間,並取出其年份。

附:函數目錄
1、數學函數
(1) greatest(),least():求最大、最小值
(2) floor(),ceiling():取整數
(3) round():四舍五入 truncate():數字截取
(4) abs():取絕對值
(5) sign():返回數值的符號
(6) sqrt():返回一個數的平方根
2、字符串函數
(1) ascii(char):返回字符的ASCII值
(2) char(x1,x2,……):將ASCII值轉換為字符並組成一個字符串
(3) left|right(str,X):返回字符串的左邊或右邊X個字符
(4) trim|Ltrim|Rtrim(str):刪除字符串兩端空格
(5) replace(str1,str2,str3):用str3替換str1中所有出現str2的地方
(6) substring(str,Start,length):返回字符串str中從Start開始長度為Length的字符串
3、日期和時間函數
(1) now():返回當前的日期時間
(2) curtime(),curdate():分別返回當前的時間和日期
(3) year(dstr):返回日期值dstr中年的部分
(4) month(),monthname():返回日期值中月份的數字或英文
(5) day(),dayname():返回日期值中的天的數字或者星期名
4、加密函數
(1) AES_encrypt|AES_decrypt(str,key):返回字符串str用密鑰key進行高級加密AES算法加密或解密的結果
(2) encode|decode(str,key):返回對字符串str進行加密和解密的結果
(3) password(str):返回字符串str加密后的密碼字符串,主要用於mysql認證系統。
5、控制流函數
(1) if(exp1,exp2,exp3):
該函數有3個參數,第1個為要被判斷的表達式,當表達式為真返回第2個參數,當表達式為假時返回第3個參數。
(2)IFNULL和NULLIF函數
IFNULL函數的語法格式為:IFNULL(expr1,expr2)此函數的作用是:判斷參數expr1是否為NULL
6、格式化函數
(1)FORMAT()函數
語法格式:
FORMAT(x, y)
FORMAT()函數把數值格式化為以逗號間隔的數字序列。FORMAT()的第一個參數x是被格式化的數據,第二個參數y是結果的小數位數。
(2)DATE_FORMAT()和TIME_FORMAT()函數
DATE_FORMAT()和TIME_FORMAT()函數可以用來格式化日期和時間值。
語法格式:
DATE_FORMAT/ TIME_FORMAT(date | time, fmt)
其中,date和time是需要格式化的日期和時間值,fmt是日期和時間值格式化的形式
(3) INET_NTOA()和INET_ATON()函數
MySQL中的INET_NTOA()和INET_ATON()函數可以分別把IP地址轉換為數字或者進行相反的操作
7、類型轉換函數
MySQL提供CAST()函數進行數據類型轉換,它可以把一個值轉換為指定的數據類型。
語法格式:
CAST(expr, AS type)
expr是CAST函數要轉換的值,type是轉換后的數據類型。
8、系統信息函數
(1)DATABASE()、USER()和VERSION()函數可以分別返回當前所選數據庫、當前用戶和MySQL版本信息:
select DATABASE(),USER(), VERSION();
(2)BENCHMARK() 函數用於重復執行n次表達式expr。它可以被用於計算MySQL處理表達式的速度,結果值通常為零。
(3)FOUND_ROWS()函數用於返回最后一個SELECT語句返回的記錄行的數目
四、 實驗報告要求
1、 實驗報告格式要求
包括內容:標題、實驗內容、實驗步驟、實驗中遇到的問題及解決方案
2、 實驗報告內容要求
(1) 標題參看實驗指導標題+“實驗報告”,如“實驗一 MySQL的安裝與命令初步實驗報告”;
(2) 實驗內容與實驗指導中相同;
(3) 實驗步驟中將自己實驗中的每個步驟的命令和操作結果顯示界面進行截圖完善。
(4) 實驗中遇到的問題及解決方案中如實地將自己的問題的解決過程記錄出來。
3、 實驗報告提交要求
每次實驗課結束之后,每個人需要提交實驗報告,實驗報告命名為:學號姓名
五、 補充說明
