实验七mysql语言结构_实验七 MySQL语言结构

实验七MySQL语言结构

一、实验内容:

1、 常量的使用

2、 变量的使用

3、 运算符的使用

4、 系统函数的使用

二、实验项目:员工管理数据库

用于企业管理的员工管理数据库,数据库名为YGGL中,YGGL数据库中包括三个表:Employees(员工信息表)、Departments(部门信息表)、Salary(员工薪水情况表)。

三、实验步骤:(要求用命令完成以下操作)

1、 常量的使用

(1)   计算85和32的和、差、积、商、余数;

2d256914a6595d6c7d85d3f9c24262fc.png

(2)   显示“I love Mysql”要求每个单词一行;

78b0aae6f6620b9bd09d0916ca5c87cf.png

(3)   查询十六进制书50所对应的字符,以及字符串“love”对应的十六进制数;

f2017a346a2f79715aae941fa258c1af.png

(4)   使用BIN函数查询数字250的二进制格式,使用OCT查询位值“1101010”

所对应的数值;

92323c3288d99c201fcdd7bfcfe8a6ff.png

2、 变量的使用

(1)   定义一个用户变量@female,并在Select语句中使用该变量,查询

Employees表中女员工的编号、姓名;

8fed5e8e627c563b8224350067718521.png

(2)   定义一个用户变量@phone,用于存储编号为102201的员工的电话号码,然

后查询该变量;

c75f827b55da7c9fe76543895c12fc3e.png

(3)   定义一个用户变量@name,@real_salary,其中@name赋值“王林”,并使

用该变量查询王林的实际收入赋值于@@real_salary;

ec35a0f4ad4ad88a66392457c2eb55e9.png

(4)   获取当前MySQL的版本;

7f9001ae054d4131a0b717198d4516e1.png

(5)   获取当前系统的日期时间和当前SQL用户;

39d2ef5a72d6036c890404b79e652eb8.png

(6)   使用show variables like ‘char%’查询当前系统的字符集设置,修改当前会话的 系统变量character_set_client字符集为gb2312,修改全局系统变量character_set_server为gb2312;重新启动一个会话,使用show variables like ‘char%’查询当前会话的字符集;

1bb11eeaa42c08567dcd37d7b09e04bf.png

4fcaa91b74aaff03ca77c6818ec1e9fa.png

(7)   将系统变量character_set_server恢复默认值;

c6793e684357e12592ff35512c585929.png

3、 运算符的使用

(1)   查询工作年限为2年和3年的女员工的编号、姓名;

ef2b8dc812ba182295a3f53a9faa5eb8.png

(2)   查询收入在2000-3000,工作年限不大于3的员工编号、姓名、收入;

9582702dcfdfbc5e1a33f8cb68771910.png

(3)   查询在日期‘2015-9-1’的基础上分别加上20天、20个月、20年的日期;

ee97f93bf730d38e1c5164ea47772253.png

4、 系统函数的使用

(1)   求(50,1,23,56)中的最大值和最小值;

22480a09ab34cc62f21f583a96dc3bdb.png

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

e137e4ca0e848a8d3071e1871240484a.png

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

bb6b4358d791175aaafdcebf15ee0035.png

(4)   求字符串“ Chinese dream, my dream ”的前5个字符删除首部空格以及后6个字符并删除两端空格;

0ebeaca05d52ebad76110dbaaa56e5ad.png

(5)   获取当前日期时间,并取出其年份。

a99ec518058f2cc9f2e3e7b394160691.png

附:函数目录

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、 实验报告提交要求

每次实验课结束之后,每个人需要提交实验报告,实验报告命名为:学号姓名

五、补充说明

  • 0
    点赞
  • 2
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
此为吉林大学数据库实验报告,实验内容为: 实验一 熟悉MySQL环境及SQL定义语言 一、实验目的: 1. 了解MySQL程序构成、安装、管理方法。 2. 了解MySQL数据库结构。 3. 熟练掌握SQL语言进行基本结构的创建。 4. 熟练应用SQL语言进行结构的修改。 5. 掌握SQL语言进行基本的删除。 6. 掌握SQL语言进行索引的建立和删除。 二、实验内容和主要步骤: 1. 参考“MYSQL简体文参考文档.chm”,熟悉MySQL构成和功能特性。 2. 打开Windows服务管理器,实验启动、停止MySQL服务,了解MySQL的服务管理方法; 3. 打开“MySQL管理控制台.bat”,熟悉控制台操作数据库; 4. 利用控制台创建“Student数据库”。 5. 打开“Student”数据库,创建如下三个,按下面的列的字段名(英文)、类型和宽度建立: 7. 用SQL语言CREATE TABLE语句创建学生student、课程course和选课SC;(字段类型及长度参照实验一) 8. 用SQL语言ALTER语句修改结构; a) STUDENTSNO设为非空和唯一; b) STUDENT增加一个字段SBIRTH,类型设置为日期时间类型,增加一个ADDRESS字段,类型为文本(字符); c) 删除STUDENTADDRESS字段; d) COURSECNO字段设为非空和唯一; 9. 重新定义一个简单,然后用SQL语言DROP语句删除该结构; 10. 用SQL语言CREATE INDEX语句定义STUDENT的SNAME字段的降序索引; 11. 用SQL语言CREATE INDEX语句定义SC的GRADE字段的升序索引; 12. 用SQL语言DROP语句删除索引; 13. 输入部分数据,并试着修改其的错误; 注: 实验二 SQL语言进行简单查询 一、实验目的: 1. 掌握SQL查询语句的一般格式 2. 掌握简单数据查询操作。 3. 熟练掌握各种查询条件的示。 4. 掌握排序和分组操作在SQL语句的实现。 5. 掌握集函数的使用。 二、实验内容和主要步骤: 1. 创建学生student、课程course和选课SC,并输入数据(注意数据的完整性。);(可以使用实验已经建立的和数据) 2. 对各的数据进行不同条件的查询; 1) 查询全体学生的学号和姓名 2) 查询全体学生的详细记录 3) 查询所有选修过课程的学生学号 4) 查询考试有不及格的学生学号 5) 查询不是信息系(IS)、计算机系(CS)的学生性别、年龄、系别 6) 查询选修了4号课的学生学号和成绩,结果按成绩降序排列 7) 查询每个课程号和相应的选课人数 8) 查询计算机系(CS)的学生姓名、年龄、系别 9) 查询年龄18-20岁的学生学号、姓名、系别、年龄; 10) 查询姓刘的学生情况 11) 查询既选修1号课程,又选修2号课程的学生学号 12) 查询学生的姓名和出生年份(今年2003年) 13) 查询没有成绩的学生学号和课程号 14) 查询总成绩大于200分的学生学号 15) 查询每门课程不及格学生人数 16) 查询不及格课程超过3门的学生学号 17) 查询年龄在10到19岁之间的学生信息 18) 查询全体学生情况,按所在系升序排列,同一个系的学生按年龄降序排列 19) 查询选了1号课程的学生平均成绩 20) 查询选了3号课程的学生的最高分 21) 查询每个同学的总成绩 实验三 SQL进行复杂查询 一、实验目的: 1. 熟练掌握各种连接查询及其连接条件。 2. 掌握各种嵌套查询的使用。 3. 掌握复杂的集合查询。 二、内容和主要步骤: 1.实验的数据为基础 2.对各的数据进行不同条件的连接查询和嵌套查询; 1) 查询每个学生及其选课情况; 2) 查询每门课的间接先修课 3) 将STUDENT,SC进行右连接 4) 查询有不及格的学生姓名和所在系 5) 查询所有成绩为优秀(大于90分)的学生姓名 6) 查询既选修了2号课程又选修了3号课程的学生姓名、学号; 7) 查询和刘晨同一年龄的学生 8) 选修了课程名为“数据库”的学生姓名和年龄 9) 查询其他系比IS系任一学生年龄小的学生名单 10) 查询其他系比IS系所有学生年龄都小的学生名单 11) 查询选修了全部课程的学生姓名 12) 查询计算机系学生及其性别是男的学生 13) 查询选修课程1的学生集合和选修2号课程学生集合的差集 14) 查询李丽同学不学的课程的课程号 15) 查询选修了3号课程的学生平均年龄 16) 求每门课程学生的平均成绩 17) 统计每门课程的学生选修人数(超过3人的才统计)。要求输出课程号和选修人数,结果按人数降序排列,若人数相同,按课程号升序排列 18) 查询学号比刘晨大,而年龄比他小的学生姓名。 19) 求年龄大于女同学平均年龄的男同学姓名和年龄 20) 求年龄大于所有女同学年龄的男同学姓名和年龄 21) 查询至少选修了95002选修的全部课程的学生号码 22) 查询95001和95002两个学生都选修的课程的信息 实验四 SQL的常用数据更新操作 一、实验目的: 1. 熟练掌握SQL的常用数据更新操作。 2. 熟练应用INSERT,UPDATE,DELETE语句。 3. 掌握更新操作的各种格式。 二、实验内容和主要步骤 1. 应用INSERT,UPDATE,DELETE语句进行更新操作; 1) 插入如下学生记录(学号:95030,姓名:李莉,年龄:18) 2) 插入如下选课记录(95030,1) 3) 计算机系学生年龄改成20 4) 数学系所有学生成绩改成0 5) 把低于总平均成绩的女同学成绩提高5分 6) 修改2号课程的成绩,若成绩小于75分提高5%,成绩大于75时提高 7) 4%(两个语句实现,注意顺序) 8) 删除95030学生信息 9) 删除SC无成绩的记录 10) 删除张娜的选课记录 11) 删除数学系所有学生选课记录 12) 删除不及格的学生选课记录 13) 查询每一门课程成绩都大于等于80分的学生学号、姓名和性别,把值送往另一个已经存在的基本STU(SNO,SNAME,SSEX) 14) 把所有学生学号和课程号连接追加到新 15) 所有学生年龄增1 16) 统计3门以上课程不及格的学生把相应的学生姓名、系别追加到另外一个 2.熟练掌握INSERT,UPDATE,DELETE语句并能综合应用;

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值