实验七 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、 实验报告提交要求
每次实验课结束之后,每个人需要提交实验报告,实验报告命名为:学号姓名
五、 补充说明