首页 > 数据库 >【数据库】期末必知必会-----第十章 数据库编程

【数据库】期末必知必会-----第十章 数据库编程

时间:2022-10-17 21:02:32浏览次数:51  
标签:存储 cur 必知 数据库 num ----- str avg SELECT


第十章 数据库编程

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 @@
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 @@​​

标签:存储,cur,必知,数据库,num,-----,str,avg,SELECT
From: https://blog.51cto.com/u_15754851/5764398

相关文章

  • 【数据库】期末必知必会-----第十一章 并发控制
    第十一章并发控制1、事务的概念和ACID性质概念:是用户定义的一个数据库操作序列,这些操作要么全做要么全不做,是一个不可分割的工作单位ACID的性质:A(Atomicity):原子性,要么全做......
  • 论文笔记 - MetaICL: Learning to Learn In Context
    MotivationFacebook的MetaICL,牛逼就对了;对LM针对ICL进行微调(而不是特定的任务);去除了自然语言的Template,使用更直接的方式,排除了Template设计对outputdistri......
  • JDBC连接数据库
    目录 ​​1、写在前面✏️​​​​2、遇到问题​​​​3、解决问题​​​​4、总结......
  • python | 算法-图的宽度优先遍历
    数据结构#参考:https://github.com/algorithmzuo/algorithmbasic2020/tree/master/src/class16#点结构的描述classNode:def__init__(self,value):s......
  • python爬虫从0到1 -Requests库的基本使用(get/post请求)
    文章目录​​前言​​​​(一)requests的get请求​​​​1.导入requests库​​​​2.定义url地址以及请求头​​​​3.返回响应数据​​​​4.将数据打印​​​​总结(对比......
  • Event-Based Vision Enhanced: A Joint Detection Framework in Autonomous Driving
    郑重声明:原文参见标题,如有侵权,请联系作者,将会撤销发布!2019IEEEINTERNATIONALCONFERENCEONMULTIMEDIAANDEXPO(ICME),pp.1396-1401,(2019) ABSTRACT由于......
  • atcoder ARC C 01-Game (博弈, Grundy数)
    https://atcoder.jp/contests/arc151/tasks/arc151_c题意:有1*n的的网格,有一些位置填有0和1,现在A和B进行游戏,往网格上填0/1,要保证相邻两个格子不能相同。A先手,问最后谁赢......
  • 08. Kubernetes - 资源清单
    资源清单在使用docker部署容器的时候,使用dockerrun进行容器的运行,但是对于复杂的需求,如果还是使用dockerrun,就会变得极其复杂和难以管理。于是便有了dockercompo......
  • 数据库工程师简介
    数据库工程师简介数据库开发工程师:1.负责公司业务数据库系统的模型设计,表结构设计2.负责数据处理中的语句实现,存储过程逻辑实现3.负责指导开发人员对语句的性能优化和......
  • 《Rust唠嗑室》第36期 - 分享使用Rust进行嵌入式开发创业的一些点滴
    题目:分享使用Rust进行嵌入式开发创业的一些点滴主讲人:cz内容: 一.创业项目为什么选择Rust进行嵌入式开发(ForSTM32)?二.根据项目选用哪些Rustcrates? 三.Rust在嵌入......