MySQL数据库编程(1)

MySQL数据库编程 MySQL数据库编程主要涉及SQL语言的使用,以及如何通过编程接口(如JDBC、Python的MySQL Connector等)与数据库进行交互。本文将详细介绍MySQL数据库编程的各个方面,帮助读者掌握MySQL数据库编程的基本知识和技巧。本文详细介绍了MySQL数据库编程的各个方面,包括MySQL数据库基础、编程基础知识、高级特性等。通过本文的学习,读者可以掌握MySQL数据库编程的基本知识和技巧,并能够在实际项目中进行应用。同时,还需要注意不断学习和实践,以提高自己的编程能力和数据库管理水平。 阅读详情
在 MySQL 数据库中,变量有两种,分别为:系统变量和自定义变量。
系统变量,顾名思义,是系统设置好的变量(皆为全局级别变量),也是用来控制服务器表 现的,如autocommit、wait_timeout等。
查看系统变量,语法为:
基本语法:show variables;
查看具体的系统变量的值,语法为:
基本语法:select + @@变量名 + [, @@变量名, ... , @@变量名];
一、用户自定义变量
概念:用户自定义变量用于存储 MySQL 存储程序运行期间所产生的临时变量,它分为用户
会话变量和局部变量。(what)
1.用户会话变量
(1)概念:是在每次 MySQL 客户与 MySQL 服务器建立一个新的连接后,由MySQL 客户
进行定义的一种变量,该变量与“当前会话”有密切关系。只要是当前用户当次连接,
都会受到影响,不区分数据库。
(2)定义用户自定义变量
--set命令
MySQL 用户会话变量以一个“@”开头,并且大小写不敏感。
基本语法:set @变量名 = 值;
值可以是可以是常量、变量和表达式
然后使用 select 语句查看变量的值:
select @user_name, @age;
--select
第 1 种:边赋值,边查看结果。语法为
基本语法:select @变量名 := 字段名 from 表名;
赋值的同时展示结果集,变量的值是结果集中最后一行的值。
第 2 种:只赋值,不查看结果。语法为
基本语法:
select + 字段列表 + from + 表名 + into + 变量列表;
或者“select expression1 into @user_variable1, expression2 into
@user_variable2, ...”
只定义变量并赋值,不展示结果集,如果结果集返回多行,运行该语句报错,但会取第 一条赋值给变量。
2.用户会话变量赋值
给定义的变量赋值时,通常需要对查询语句做限定,使得结果集中有单 个值时可以赋值给变量。
3.重置命令结束标记
(1)begin-end语句块
通常begin-end用于定义一组语句块,在各大数据库中的客户端工具中可直接调
用,但在mysql中不可。
begin-end、流程控制语句、局部变量只能用于函数、存储过程内部、游标、触
发器的定义内部。
(2)结束标记
在MySQL中默认的结束符DELIMITER是; , begin-end 语句块中通常存在多 条 MySQL 表达式,每条 MySQL 表达式都使用“;”作为结束标记。 由于 begin-end 语句块中的多条 MySQL 表达式密不可分,为了避免这些 MySQL 表达式被拆开,需要重置 MySQL 客户机的命令结束标记,亦称命令分隔符 (delimiter)。(why)
在使用习惯中,我们经常将结束符更改为 ;; 、// 、 $$ 等。
语法:DELIMITER 符号
1 mysql> DELIMITER // # 更改结束符为 //
2 mysql> CREATE FUNCTION delUser(userid INT UNSIGNED)
3 ‐> RETURNS VARCHAR(30) # 设定返回类型
4 ‐> BEGIN
5 ‐> DELETE FROM user_info WHERE id = userid; # 删除指定id用户
6 ‐> RETURN NOW(); # 返回操作时间
7 ‐> END
8 ‐> //
9 Query OK, 0 rows affected (0.00 sec)
10 mysql> DELIMITER ;
二、存储过程
1.局部变量
(1)概念:局部变量(local variable)必须定义在存储程序中,如函数、存储过程、触发器
以及事件中,而且局部变量的作用范围仅局限于存储程序中。(what)
(2)用法局部变量定义语法形式:declare 局部变量 数据类型 ;
使用:declare price decimal(8,2); declare address varchar(20);
局部变量赋值语法:
set var_name=expr [,
var_name=expr]...;
set语句既可以用于局部变量的赋值,也可以用于用户变量的申明并 赋值。
1 declare c int default 0;
2 set c=a+b;
3 select c as C;
select …. into…形式赋值
1 declare v_employee_name varchar(100);
2 declare v_employee_salary decimal(8,4);
3
4 select employee_name, employee_salary
5 into v_employee_name, v_employee_salary
6 from employees
7 where employee_id=1;
(3)使用场合
场合 1:局部变量定义在存储程序的 begin-end 语句块之间时,局部变量必须 先进行 declare 命令定义,并且必须指定其数据类型。只有定义局部变量后,才可以 使用 set 命令或 select 语句为其赋值。
场合 2:局部变量作为存储过程或函数的参数使用时,虽然不需要使用 declare 命令定义,但需要指定参数的数据类型。
场合 3:局部变量也可以用于存储程序的 SQL 语句中。数据检索时,如果 select 语句的结果集是单个值,则可以将 select 语句的返回结果赋予局部变量。局 部变量也可以直接嵌入到 select 句、insert 语句、update语句以及 delete 语句 的表达式中。
2.存储过程介绍
(1)概念:
存储过程是一组为了完成特定功能的 SQL 语句集,经编译后存储在数据库中。 用户通过指定存储过程的名字并给定参数(如果该存储过程带有参数)来调用执 行它。一个存储过程其实就是一个可编程的函数(函数有返回值,存储过程没有返回 值)。(what)
(2)存储过程优点:
增强了 SQL 语言的功能性和灵活性 存储过程被创建后,可以在程序中被多次调用,而不必重新编写该存储过程的 SQL 语句 能实现较快的执行速度 能减少网络流量 还可被作为一种安全机制来充分利用
3.创建和执行存储过程的语法
(1)定义存储过程的语法结构:
1 create procedure 存储过程名字 (
2 [in|out|inout] 参数 1 数据类型 1,
3 [in|out|inout] 参数 2 数据类型 2, ……
4 )
5 [no sql | reads sql data | modifies sql data]
6 begin
7 存储过程语句块 ;
8 end;
9 ‐‐ 语法说明:
10 in 代表输入参数(默认为 in 参数),表示该参数的值必须由调用程序指定。
11 out 代表输出参数,表示经过存储过程的计算后,将 out 参数的计算结果返回给调用程
序。
12 inout 代表既是输入参数又是输出参数,表示该参数的值既可以由调用程序指定,
13 又可以将该参数的计算结果返回给调用程序。
mysql创建存储过程的四个数据存取限制的参数:
CONTAINS SQL表示子程序包含SQL语句,但不包含读或写数据的语句;
NO SQL表示子程序不包含SQL语句。
READS SQL DATA表示子程序包含读数据的语句,但不包含写数据的语句。
MODIFIES SQL DATA表示子程序包含写数据的语句。
如果这些特征没有明确给定,默认的是CONTAINS SQL。
这些特征值目前只提供给服务器,并没有根据这些特征值来约束过程实际的使用数据情况.
(2)调用存储过程的语法结构:
1 call 存储过程名 ( 参数列表 )
4.不带参数存储过程
(1)如何操作创建存储过程:在 Navicat For MySQL 单击“工具” “命令行界面”,出现 MySQL 命令行界面,在 该界面输入存储过程的创建代码,按回车键即成功创建了存储过程。也可以将如下编写的代 码拷贝到查询窗口运行。
(2)编辑存储过程:
在 Navicat For MySQL 的“函数”处可见 存储过程名,表明 已创建成功。单击需要 操作的存储过程,点击“设计函数”即可对该存储过程的代码进行编辑。
(3)运行存储过程两种方式:
在存储过程的编辑窗口,点击“运行”;
或在 MySQL 命令行输入“call 存储过程名”;
5.带输入参数存储过程
(1)执行带参数的存储过程时,传入值的类型、个数和顺序都需要与存储过程中定义的参
数逐一对应。
在创建存储过程的时候,设计中文的参数的数据类型需为Nvarchar
(2)用例:
1 ‐‐ 定义存储过程,查某人(如张三)下过的所有订单的金额
2 delimiter $$
3
4 mysql> create procedure sel_orders_byName(in _userName nvarchar(50))
5 ‐> begin
6 ‐> select MONEY from t_order o where o.cashier_id in
7 (select worker_id from t_worker w where w.name=_userName);
8 ‐> end
9 ‐> $$
10 Query OK, 0 rows affected
11 mysql> delimiter ;
12 ‐‐ 命令行下调用
13 mysql> call sel_orders_byName('张三');
14 ‐‐ 查询窗口下调用存储过程15 set @userName='李四';
16 call sel_orders_byName(@userName);
17
6.带输出参数存储过程
(1)如果需要存储过程返回一个或多个值,则可通过使用输出参数来实现。输出参数必须 在创建存储过程时,使用out 关键字进行声明。
(2)带输入和输出参数的例子:
1 ‐‐ 查某人(如李四)下的订单中的最大金额
2 mysql> delimiter $$
3 mysql> create procedure sel_maxMoney_byName
4 (in _userName nvarchar(20),out _money decimal(8,2))
5 ‐> begin
6 ‐> select max(MONEY) into _money from t_order o where o.cashier_id
7 in (select worker_id from t_worker w where w.name=_userName);
8 ‐> end
9 ‐> $$
10 Query OK, 0 rows affected
11 mysql> delimiter;
12
13 ‐‐ 查询窗口调用执行
14 set @userName='李四';
15 set @maxMoney=0;
16 call sel_maxMoney_byName(@userName,@maxMoney);
17 SELECT @maxMoney;
三、条件控制语句
MySQL 提供了简单的流程控制语句,其中包括条件控制语句以及循 环语句。
这些流程控制语句通常放在 begin-end 语句块中使用。
1.if 语句
(1)语法:
1 if 条件表达式 1 then 语句块 1;
2 [elseif 条件表达式 2 then 语句块 2]…
3 [else 语句块 n]
4 end if;5 ‐‐ 如果在select 语句里用可以用if函数,如下:
6 ‐‐ 可以用该语句替换select *,if(sex=1,”男”,”女”) as sex from user
(2)存储过程的begin-end中使用:
1 ‐‐ 定义存储过程:查询工资最高的员工是什么层次的员工
2 mysql> delimiter $$
3 mysql> create procedure sel_salary(out _msg nvarchar(50))
4 ‐> begin
5 ‐> declare _salary decimal(8,2);
6 ‐> select max(w.salary) into _salary from t_worker w;
7 ‐> if _salary>3000 then set _msg='管理层';
8 ‐> elseif _salary>2500 then set _msg='中层管理';
9 ‐> else set _msg='普通员工';
10 ‐> end if;
11 ‐> end
12 ‐> $$
13 Query OK, 0 rows affected
14 ‐‐ 调用存储过程
15 set @msg='';
16 call sel_salary(@msg);
17 select @msg;
2.case 语句
(1)语法:
1 case
2 when 表达式 1 then 语句块 1
3 when 表达式 2 then 语句块 2
4 …
5 else 语句块 n
6 end;
(2)select中使用:
1 ‐‐ 查询所有员工的薪资情况(姓名,工资,等级),要求:
2 ‐‐ 如果工资>3000,显示等级为“高级员工”;
3 ‐‐ 如果3000>工资>2000,显示等级为“中级员工”;
4 ‐‐ 如果工资<2000,显示等级为“初级员工”;
5 SELECT NAME as '姓名',SALARY as '工资',
6 CASE
7 WHEN SALARY>3000 THEN '高级员工'
8 WHEN SALARY<=3000 AND SALARY>2000 THEN '中级员工'
9 ELSE '初级员工'10 END
11 as '等级'
12 FROM t_worker
3.while 语句
(1)语法:
1 [ 循环标签 :]while 条件表达式 do
2 循环体 ;
3 end while[ 循环标签 ];
(2)使用:
1 ‐‐ 实现1‐50的累加
2 declare total int default 0;
3 declare num int default 0;
4 while num<=50 do
5 set total=total +num;
6 set num=num+1;
7 end while;
8 select total;
4.leave 语句
(1)概念:nleave 语句用于跳出当前的循环语句,如 while 语句,它的作用等同于高级编程 语言中的 break 语句。
(2)语法:
1 leave 循环标签 ;
(3)用法:
1 declare total int default 0;
2 declare num int default 0;
3 add_num: while true do
4 if(num>50) then
5 leave add_num;
6 end if;
7 set total=total+num; set num=num+1;
8 end while add_num;
5.iterate 语句
(1)概念:niterate 语句用于跳出本次循环,进而进行下次循环,它的作用等同于高级编 程语言中的 continue 语句
(2)语法:
1 iterate 循环标签 ;(3)用法:
1 declare sum int default 0;
2 declare num int default 0;
3 add_num: while true do
4 if(num%2=0) then
5 set sum=sum+num;
6 else
7 set num=num+1;
8 iterate add_num;
9 end if;
四、游标
1、游标介绍
(1)概念:游标本质上是一种能从 select 结果集中每次提取一条记录的机制,因此游标与 select 语句息息相关。
(2)使用场景:数据库开发人员在编写存储过程等存储程序时,有时需要使用存储程序中 的 SQL 代码扫描 select 结果集中的数据,并要求对该结果集中的每条记录进行一些简单的 处理。此类问题完全可以通过数据库的游标机制加以解决。
(3)类似生活案例:
现实生活中,在电话簿中寻找某个人的电话号码时,可能会用“手”每条逐行扫过,以帮助 我们找到所需的号码。此情形与游标的模型非常类似,即“电话簿”如同查询结果 集,“手”类似于游标。
2、游标使用步骤
  • 声明游标、
  • 打开游标
  • 从游标中提取数据
  • 关闭游标
(1)声明游标
声明游标需要使用 declare 语句。
(2)打开游标
1 语法:
2 open 游标名 ;
使用 open 语句打开游标后,与游标对应的 select 语句将被执行,MySQL 服
务器内存中将存放与 select 语句对应的结果集。
(3)从游标中提取数据需要使用 fetch 语句
1 语法:
2 fetch 游标名 into 变量名 1, 变量名 2 , … ;
注意:
变量名的个数和类型,必须与声明游标时使用的 select 语句结果集中的字段个 数和类型保持一致。
第一次执行 fetch 语句时,将从结果集中提取第 1 条记录,再次执行 fetch 语 句时,将从结果集中提取第 2条记录……以此类推,fetch 语句每次从结果集中仅仅 提取一条记录,因此 fetch 语句需要循环语句的配合才能实现整个结果集的遍历。
当使用 fetch 语句从游标中提取最后一条记录后,再次执行 fetch 语句时,将产生“error 1329(0200):no data to fetch”的错误信息。数据库开发人员可以针对 MySQL 错误代码 1329 自定义错误处理程序,以便结束结果集的遍历。
(4)关闭游标
1 语法结构:
2 close 游标名 ;
说明:
关闭游标的作用在于释放游标打开时产生的结果集,从而节省 MySQL 服务
器的内存空间。游标如果没有被显式关闭,那么它将在被打开的 begin-end 语
句块的末尾处关闭。
3、游标的使用
1 ‐‐ 查所有员工的工资总和
2 delimiter $$
3 create procedure sel_al()
4 begin;
5 declare allSalary decimal(8,2);
6 declare sal decimal(8,2);
7 ‐‐ 1、声明游标
8 declare cur cursor for select salary from t_worker;
9 declare continue handler for 1329 set state='error';
10 set allSalary =0;
11 ‐‐2、打开游标
12 open cur ;
13 upt:while true do
14 ‐‐ 3、从游标中提取数据
15 fetch cur into sal;
16 if(state='error') then
17 leave upt;
18 end if;19 allSalary = allSalary +sal ;
20 end while upt;
21 ‐‐ 4、关闭游标
22 close cur ;
23 select allSalary ;
24 end;
25 $$ 
MySQL字符集及编程指南 本文介绍了MySQL中字符集的概念和常见的字符集类型,以及如何在MySQL中设置字符集和在编程中使用它们。在MySQL中,你可以通过设置数据库和表的字符集来指定所使用的字符编码和排序规则。utf8mb4字符集是MySQL特有的,支持四个字节的字符编码,包括了Emoji表情等特殊字符。字符编码决定了如何将字符映射到二进制数据,最常用的字符编码是UTF-8,它能够表示世界上几乎所有的字符。通过本文,你了解了MySQL中字符集的概念和常见的字符集类型,以及如何在MySQL中设置字符集。上述代码将创建一个名为。 阅读详情

相关推荐

A Mathematical Framework for Transformer Circuits—(二)

transformer数学理论框架

qq_42208244的博客 758

Mysql编程(日常笔记,仅供参考)

MySQL编程的学习日常总结

weixin_62951529的博客 3297

逆向工程实战:从零解析微信PC版协议,并用开源代码构建你的私有化接口

本文详细解析了微信PC版的通信协议架构,从逆向工程基础到网络流量捕获、关键函数定位与HOOK技术实践,最终通过开源代码构建私有化接口。文章重点介绍了协议特征分析、HOOK技术应用以及安全实践,帮助开发者深入理解企业级通信协议的设计逻辑和安全机制。

weixin_30496999的博客 392

MySQL数据库 编程入门

MySQL数据库入门 基本数据类型,命令执行,创建用户,创建删除库,创建删除表

qq_61553520的博客 2069

【上海大学计算机组成原理实验报告】一、数据传送实验

将58H写入A寄存器//将6BH写入W寄存器//将C3H写入R1寄存器//将C3H写入R1寄存器//了解实验仪器数据总线的控制方式//掌握数据传送的基本原理//掌握各寄存器的结构、工作原理及其控制方法//数据传送实验

HackerKevon的博客 3509

飞书多维表格省钱攻略:1个专业版账号,全员合规用、权限全掌控

像运动馆、 托管班、作业辅导、少儿美术、书法、口才班等等。对于大多数中小团队而言,飞书多维表格的核心需求是“协作高效、数据可控、成本可控”,而“1个专业版账号+多联系人”的模式,恰好完美契合这三点——既不用为不必要的席位付费,又能解锁全部专业功能,还能通过精细化权限管控保障数据安全。尤其是餐饮店、乒乓球训练馆这类个体经营或小型团队,人员分工清晰、权限需求明确,采用这种模式能最大化节省成本,同时提升管理效率。无需复杂的配置,无需额外的技术支持,5分钟就能搭建起全员协作的省钱体系。

涛涛讲AI 2217

mysql 编程

if((error_code == 2013) || (error_code == 2006)) //2006 mysql服务器不可用,2013查询过程中,丢失链接。//构建查询sql语句。while((row = mysql_fetch_row(result_))) //遍历查询结果中的各行记录。

木牛的博客 624

吃透Chisel语言.02.Chisel+VS Code+Ubuntu/WSL2开发环境搭建与使用

既然是学Chisel语言,那肯定得先把环境配置好,磨刀不误砍柴工嘛。而且有个测试环境的话,在后期的学习过程中自己去试运行代码段可以加深学习效果。这里推荐使用Ubuntu或者基于WSL2(Windows Subsystem Linux 2)的Ubuntu,本人使用的是WSL2上的Ubuntu 20.04.3 LTS,在使用体验上与Ubuntu几乎没有区别,且能同时使用Windows提供的诸多便利。...

github-3rr0r的博客 8448

MySQL---数据库编程(了解语言结构)

datetime和timestamp的区别:datetime的年份在1000-9999之间,而timestamp的年份在1970-2037之间,还有就是timestamp在插入带微秒的日期时间时将忽略微秒。使用NOW()函数可以获得当前的日期和时间,它以YYYY-MM-DD HH:MM:SS的格式返回当前的日期和时间。CURTIME()和CURDATE()函数比NOW()函数更为具体化,他们分别返回的是当前的时间和日期,没有参数。浮点数常量是使用小数点的数值常量,如5.26,-1.39,101.5E5等。

weixin_71247599的博客 1191

基于STM32+华为云设计的智能鱼缸

本项目基于STM32单片机设计一款基于物联网的智能鱼缸系统,并通过应用侧接口开发上位机APP实现远程对鱼缸参数的检测和控制。该系统包括水温检测、水质检测、自动或手动换水、氛围灯灯光变换和自动或手动喂食等功能,可以帮助用户更好地管理鱼缸,提高鱼儿的生存率,同时增强用户对家庭装饰品的掌控感和科技感。

1万+

【FPGA教程案例96】控制案例1——基于FPGA的自适应PID控制器verilog实现

首先,我们复习下课程传统的PID控制器,往往存在调整速度较慢,超调过大等缺点。为了解决这个问题,在实际的PID应用中,需要实时的调整PID的控制参数,以达到加快PID控制速度,降低超调等目标。目前,自适应PID控制器,一般有误差反馈调整,模糊控制器调整,神经网络调整。其中模糊控制器调整,神经网络调整较为复杂,在入门案例中不做介绍,在本课程中,我们将实现相对略微简单点的基于误差反馈调整的自适应PID控制器。

FPGA/MATLAB学习教程/源码/项目合作开发 6203

qt mysql 编程_Qt数据库编程1

Qt中数据编程主要分为以下两点:1、利用qt提供类 访问数据库或者成为简单的数据库编程2、数据库编程中引入model/view编程模型qt中数据库编程的步骤:1、加载数据库驱动QSqlDatabase db = QSqlDatabase::addDatabase("QSQLITE");2、连接指定数据库并打开db.setDatabaseName("/home/hua/students.db");d...

weixin_42364833的博客 258

electron:解决打包后报错Cannot find module ‘X‘ 运行报错各种模块缺失问题(解决electron build打包后运行应用报错启动失败或白屏,无论模块名称是什么都能解决!)

Electron app打包后启动报错:“Cannot find module 'X'”解决方案,electron-builder 打包出现 cannot find module,electron 打包后找不到module问题,electron打包运行白屏、Can not find modules ‘x‘,electron项目打包报错,electron打包后,点击生成的exe应用程序出现Cannot find module,解决electron-build打包后运行app报错:cannot find mod

✅ 精选推荐文章 4385

VB6.0+MySQL4.1数据库编程

VB6.0+MySQL4.1数据库编程 By: 吴垠 Date: 2005-04-16 Email: lazy_fox#msn.

吴垠的专栏 1万+

android 蓝牙通讯demo

android 下蓝牙通讯demo,实现了发现蓝牙,使能蓝牙,通过蓝牙发送消息。

大中型超市收银系统(可直接运行)

光步前台收银系统系统功能:商品销售、商品退货、挂单、收银员权限、会员销售、单品取消、整单取消、商品查询、脱机销售、脱机数据上传,基本资料下载,开钱箱、小票打印、收款结算,支持多币种付款方式(现金、储值卡、礼券、微信等),支持多种促销。运行环境:.net 4.0登陆信息用户名:1001 密码:123456内置商品信息,商品编码可输入00001000 - 00010000,测试效果相关功能键F5 结算 F9挂单 F11商品查询 F8退货 Insert单品取消 Del整单取消 F12开钱箱F2 会员 Ctrl+Z退出系统 Home 锁屏 相关源码待公开

03-1数据库编程-MySQL编程基础

4)布尔值常量:布尔值只有true和false两个值,SQL命令运行结果用1代表true,用0代表false。3)日期和时间常量:日期和时间常量使用特定格式的字符日期值表示,用单引号括起来。返回结果为连接参数产生的字符串,如果任何一个参数为NULL,则返回值为NULL。1)用户变量(由用户自定义,作用于当前会话(连接)的变量,会话结束后失效)1)字符串常量:字符串常量指用单引号或双引号括起来的字符序列。5)NULL值:NULL值参与的运算,结果仍为NULL值。:分别返回日期或日期时间d的年、月、日的值。

2301_79397563的博客 861

文档:亲测可用解决vnc灰屏,黑屏,鼠标大黑叉情况

主要解决vnc-viewer灰屏,黑屏,鼠标大黑叉等现象,详细见文档。

《MySQL高效编程》一一1.1 数据库简介

本节书摘来自异步社区出版社《MySQL高效编程》一书中的第1章,第1.1节,作者: 王志刚 , 江友华,更多章节内容可以访问云栖社区“异步社区”公众号查看。 1.1 数据库简介 MySQL高效编程数据库起源于第二次世界大战中,美军为了更有效率地管理大量的资料,而将数据信息集中到一个基地来进行管理,这个集合数据信息的基地就被称为数据库(Database)。...

weixin_34342578的博客 155

TMS_WebGMaps_1.9.8.0_Full_Source

TMS_WebGMaps_1.9.8.0_Full_Source 全源码 delphi cbuilder

Mysql 数据库APi 编程(c/c++)-1.1

可以直接使用mysq_tool.c中if (strncmp(sqlbuf, "select", 6) == 0 || strncmp(sqlbuf, "SELECT", 6) == 0)内的代码。常见错误:在process_result_set函数实现中,不要使用mysql_store_result(mysql)再次获取结果集, 该result已经在API函数接口传入,直接使用参数result即可。process_result_set函数是文档中给我们预留的打桩函数,需要我们在使用的过程中,自己实现它。

cat_fish_rain的博客 1198

MySQL进阶应用1: 数据库编程之触发器TRIGGER

从本期开始进入到MySQL进阶应用之数据库编程,本章从触发器TRIGGER讲起。,也就是可使用触发器把表的更改状态以及之前和之后的状态记录到另外一张数据表中。当有操作影响到触发器所保护的数据时,触发器就会自动执行,从而。,即某条(或某些)MySQL语句在特定事件发生时自动执行。总结,应该多使用触发器来保证数据的一致性、完整性和正确性。,当对一个表的特定事件出现时,它将会被激活。的虚拟表访问以前的值,也可以应用一张名为。触发器有一种十分有意义的使用模式 –之间的一组MySQL语句。的一条MySQL语句。

YunYingLiang的博客 374

高级编程(一)关系型数据库MySQL(1)

python从入门到坚持一.数据库简介1.数据库简介2.基本概念(1)E-R模型(2)范式二.MySQL简介与安装1.MySQL简介2.MySQL安装(1)安装(2)管理服务(3)安全性密码设置(4)允许远程连接(5)找回密码三.数据库操作1.数据库操作2.表操作(1)表创建-数据完整性(2)表创建-字段类型(3)表创建-约束3.数据操作4.备份与恢复四.查询操作1.查询操作的基本语法2.消除重复...

cainiaoayue的博客 454

MySQL为多种编程语言提供API_MySQL数据库C API(1)

为了方便应用程序的开发,MySQL提供了用C编程语言编写的客户机库,它允许从任何C程序的内部访问MySQL数据库。客户机库实现应用程序接口(API),API定义客户机程序如何建立和执行与服务器的通信。然而,使用C语言来编写MySQL程序并不受限制。许多其他语言处理器本身也是由C语言编写的,或具有是有C库的能力。所以MySQL客户机库提供了这个方法,由此,MySQL对这些语言的约束可以建立在C AP...

weixin_42405980的博客 3708

Mysql 数据库APi 编程(c/c++)-1.0

如果能把SQL语句框架预先处理好,当真正要执行SQL语句时只需要发送对应的参数到对应的SQL框架中,就能提高客户端访问服务器的速度,且数据量小,可以减少网络通信量,提高数据传输效率高。函数原型:MYSQL_ROW mysql_fetch_row(MYSQL_RES *result) 成功返回下一行的MYSQL_ROW结构。访问MySQL服务器,这需要使用mysqlclient库,MySQL的大多数客户端API(除Java和.NET)都是通过这个库来和MySQL服务器通讯的,而这个库正是使用C语言编写的。

cat_fish_rain的博客 1223

非零基础自学Golang 第20章 数据库编程 20.1 MySQL简介

非零基础自学Golang 第20章 数据库编程 20.1 MySQL简介

代码改变世界 478

《MySQL高效编程》一一1.2 数据库的种类

本节书摘来自异步社区出版社《MySQL高效编程》一书中的第1章,第1.2节,作者: 王志刚 , 江友华,更多章节内容可以访问云栖社区“异步社区”公众号查看。 1.2 数据库的种类 MySQL高效编程通过上述的介绍,我想读者应该对数据库有了一个大致的认识了。数据库从数据的保存方式以及构造上可以分以下几种类型。 1.2.1 阶层型/网络型数据库 首先介绍在大...

weixin_34375233的博客 161

MySQL进阶应用3.1: 数据库编程之存储过程PROCEDURE

这组语句集经过编译后会存储在数据库中,用户只需要通过指定存储过程的名字并给定参数(如果带有参数),即可随时调用并执行它,而不必重新编译,加大数据库操作语句的执行效率。注意,存储过程可以没有返回值,也可以返回多个结果集。存储过程的参数有IN,OUT,INOUT三种类型。可以有效提高Database的处理速度,同时也可以提高Database编程的灵活性。创建好存储过程后,可以使用CALL语句在程序、触发器或者其他存储过程中调用它。查看某个存储过程的具体信息,则可以使用。,其本质上是一段存在数据库中的代码。

YunYingLiang的博客 274

mysql 4.1_mysql4.1数据库下载|

mysql v4.1.22 for windows解压安装版是非常专业的数据库存储软件,在这里用户可以使用软件进行快读的数据库管理,软件还有专用的外键功能,通过软件进行子查询,软件采用更加优质的加密算法,配合php4最稳定,欢迎有需要的用户来IT猫扑下载!关于mysql4.1数据库MySQL高可用性很重要因为您的数据很重要。如果您的数据库出现故障,无论是由于人为错误,灾难性网络故障还是计划内维护,...

weixin_30714077的博客 584

云数据库MySQL的发展史

想了解更多关于MySQL数据库的知识:MySQL数据库入门学习 (本课程通过最流行的开源数据库MySQL带你了解数据库的世界。让小白也能够熟练掌握常用的数据库使用技巧,理解数据库的存储结构,适合数据库入门学习者、前端学习者学习!) MySQL的历史最早可以追溯到1979年,那时Oracle也才小打小闹,微软的SQL Server影子都没有。有一个人叫Monty Widenius, 为一个叫Tc...

lsj960922的博客 360
上一篇: 数据定义和操作
下一篇: 常见数据库对象
Jarvis!
博客等级 码龄6年 822粉丝 53原创
评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

个

红包个数最小为10个

元

红包金额最低5元

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

抵扣说明:

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

余额充值