第十章 数据库编程
1、MySQL编程基础(语法、系统函数等)要求了解,出现在单选、判断、多选中
语法:
1)字符串常量用单引号
2)日期用单引号
3)布尔值只有true和false
4)null适用于各类字段,null参与任何值运算都为null
系统函数:
1)CHAR_LENGTH(str):返回str中字符的个数
2)LENGTH(str):返回str的字节长度(数字or字母1字节,汉字3字节)
3)LOWER(str)转小写,UPPER(str)转大写
4)MOD取余
5)CURDATE(),NOW(),LOCALTIME()获取当前日期
2、存储函数、存储过程的概念,写法要掌握
概念:存储函数和存储过程都是事先编译并存储在数据库中的一段SQL语句的集合,直接调用即可
写法:
//存储过程的创建、调用、删除
(1)
DELIMITER @@
CREATE PROCEDURE stu_g_r(IN cno CHAR(4),OUT num INT)
BEGIN
SELECT count(*) INTO num FROM grade WHERE grade.学号=cno;
END@@
(2)
DELIMITER ;
CALL stu_g_r('0002',@num);
SELECT @num;
(3)
DROP PROCEDURE stu_g_r;
//存储函数的创建、调用、删除
SET GLOBAL log_bin_trust_function_creators = 1;
(1)
DELIMITER @@
CREATE FUNCTION num_func(cname VARCHAR(50))
RETURNS INT
BEGIN
DECLARE num INT;
SELECT COUNT(*) INTO num FROM grade g,curriculum c
WHERE g.课程编号=c.课程编号 and 课程名称=cname;
RETURN num;
END @@
(2)
SELECT num_func('C 语言程序设计');
(3)
DROP FUNCTION num_func;
3、游标的概念,语法格式,基本的用法
概念:是一个数据缓冲区,存放SQL的执行结果,可以对我们用SELECT查询出来的结果进行再查询
用法:
1)声明:DECLARE <游标名> CURSOR FOR SELECT 语句;
2)打开:OPEN <游标>
3)提取数据: FETCH <游标名> INTO 变量1;
4)关闭游标:CLOSE 游标名;
例子:
DELIMITER @@标签:存储,cur,必知,数据库,num,-----,str,avg,SELECT From: https://blog.51cto.com/u_15754851/5764398
CREATE FUNCTION avg_func(cname VARCHAR(50))
RETURNS DECIMAL
BEGIN
DECLARE v_avg DECIMAL;
DECLARE avg_cur CURSOR FOR SELECT avg(分数) FROM grade g,curriculum c
WHERE g.课程编号=c.课程编号 and 课程名称=cname;
OPEN avg_cur;
FETCH avg_cur INTO v_avg;
CLOSE avg_cur;
RETURN v_avg;
END @@