学校作业,拿来记录一下。(老师出的习题貌似是从一本书上拿到的)
Q1:
使用RAND()函数来获得3个随机值。
A1:
解析:rand()函数,获得随机值,产生0-1的随机值。(random ,随机)
Q2:
求3和4的平方根。
A2:
解析:sqrt()用于求解平方根。
Q3:
求7.2和-7.2的绝对值。
A3:
解析:直接使用abs()就行了(哦对了,解析一下,mysql的值是一个表,一个列也是一个表,所以可以直接用select function())
Q4:
求小于或等于-3.5或6.8的最大整数,大于或等于-3.5或6.8的最小整数。
A4:
解析:小于或者等于某个数使用floor() (floor 下限),大于或者等于某个数使用ceiling()(ceiling 天花板)
Q5:
求8.546小数点后2位的值和四舍五入的整数值。
A5:
解析:我觉得不用解析了。
Q6:
求X的ASCII码值。
A6:
Q7:
将ASCII码值88、89、90组合成字符串。
A7:
Q8:
求joyful左侧和右侧开始的3个字符。
A8:
Q9:
查询字符串”计算机网络”的长度。
A9:
Q10:
将”数据库原理与应用”中的”原理与应用”替换为”技术”。
A10:
Q11:
返回字符串joyful的从第4个字符开始的3个字符。
A11:
Q12:
获取当前日期。
A12:
Q13:
获取当前时间。
A13:
Q14:
获取当前日期和时间。
A14:
Q15:
查询成绩表score,如果分数列的值大于或等于80分,则输出”良好”,否则输出”一般, 不及格或空值”。
A15:
Q16:
使用IFNULL()函数做条件判断。
A16:
解析:IFNULL() 函数用于判断第一个表达式是否为 NULL,如果为 NULL 则返回第二个参数的值,如果不为 NULL 则返回第一个参数的值。(ifnull,将这里的if看成mysql中的if语句就可以了)
Q17:
获取当前数据库的版本号。
A17:
Q18:
修改MySQL的结束符为“//”。
A18:
解析:delimiter,翻译过来是定界符。
Q19:
创建一个不带参数的存储过程P_str,输出“Hello MySQL!”。
A19:
解析:存储过程需要修改定界符,存储过程在之前的刷题中说过了。
Q20:
创建一个带参数的存储过程P_maxGrade,查询指定学号学生的最高分。
A20:
解析:看实践就懂了,很像类。
Q21:
创建存储过程P_math,如果”高等数学”课程的平均成绩大于80分,则显示”高等数学成绩良好”,否则显示”高等数学成绩一般”。
A21:
Q22:
创建存储过程P_title,将教师职称转变为职称类型。
A22:
解析:建议手打一遍。declare声明存储过程内部变量。into 关键词是用在select语句的赋值关键词。在存储过程中,case语句是如上图写的那样子。out 参数表示一定会输出。
Q23:
创建存储过程P_integerSum,计算1~100的整数和。:
A23:
解析:逻辑都很简单。需要注意的是while 在存储过程中的写法。(有点像dowhile欸)
Q24:
创建存储过程P_oddSum,计算1~100的奇数和。
A24:
解析:
然后就是,:= 和=都可以表示赋值,在set语句里面。然后在其他语句里面,=是表示比较的意思(目前来看是这样的)
1、while是满足条件才执行循环,repeat是满足条件退出循环;
2、while在首次循环执行之前就判断条件,最少执行0次,repeat是在首次执行循环之后才判断条件,循环至少执行一次。
Q25:
创建存储过程P_factorial,计算10的阶乘。
A25:
解析:• 标签label可以加在begin…end语句以及loop, repeat和while语句
• 语句中通过iterate和leave来控制流程,iterate表示返回指定标签位置,leave表示跳出标签
可以理解成一个想要变成谁就变成谁的变形怪。至于为什么要有标签这个东西我还没有搜到。
Q26:
创建一个存储过程,计算student表中行的数目。
A26:
解析:
1、解释:
在mysql的存储过程中经常会看到这句话:DECLARE CONTINUE HANDLER FOR NOT FOUND。
它的含义是:若没有数据返回,程序继续,并将变量IS_FOUND设为0 ,这种情况是出现在select XX into XXX from tablename的时候发生的。
2、每个游标必须使用不同的declare continue handler for not found set done=1来控制游标的结束。(参考自DECLARE CONTINUE HANDLER FOR NOT FOUND - 雨的印记o - 博客园 (cnblogs.com))
大致意思其实是有一个declare ……handler ,如果没有数据返回的话,那么就将found设置成false。参考自MYSQL-DECLARE CONTINUE HANDLER FOR NOT FOUND SET FOUND=FALSE_declare continue handler for not found set-CSDN博客
后面的语句也很简单,就是一个游标在读数据。
Q27:
创建向学生表插入一条记录的过程P_insertStudent,并调用该过程。
A27:
Q28:
创建修改学生专业和总学分的过程P_updateSpecGrade,并调用该过程。
A28:
Q29:
创建删除学生记录的过程P_deleteStudent,并调用该过程。
A29:
Q30:
删除存储过程P_insertStudent。
A30:
Q31:
创建一个存储函数F_courseName,由课程号查课程名。
调用存储函数F_courseName。
删除存储函数F_courseName。
A31:
解析:deterministic , 确定性。
标签:语句,存储,函数,创建,练习,mysql,解析,过程 From: https://www.cnblogs.com/clina/p/18175521