数据库应用(mysql)数据库编程

article/2025/9/20 15:30:22

第1关:创建存储过程1

任务描述

本关任务:
1.新建一个没有参数的存储过程p1,显示product表中所有数据。
2.调用p1。

USE petstore;
create procedure p1()   #新建一个没有参数的存储过程
select * from product;
call p1();              #调用p1
########Begin#######
#######End######


####相关知识

为了完成本关任务,你需要掌握:

语法

语法:CREATE PROCEDURE语句
CREATE PROCEDURE 存储过程名 ([参数[,...]]) 存储过程体
存储过程可以有0到多个参数,参数格式如下:
[ IN | OUT | INOUT ] 参数名 类型
IN - 输入参数,输入参数使数据可以传递给一个存储过程。
OUT - 输出参数,返回一个结果作为存储过程的输出
INOUT - 输入/输出参数,既可以充当输入参数也可以充当输出参数。
存储过程也可以不加参数,但是名称后面的括号是不可省略的。
存储过程体:这是存储过程的主体部分,包含了在过程调用的时候必须执行的语句。
这个部分总是以BEGIN开始,以END结束。
但是,当存储过程体中只有一个SQL语句时可以省略BEGIN-END标志。

第2关:触发器

任务描述

本关任务:
1.创建一个表table1,其中只有一列a。在表上创建一个触发器,每次插入操作时,将用户变量str的值设为“TRIGGER IS WORKING”。
2.向table1中插入一行数据(如:让列a的值为10)。
3.查看str的值。

USE petstore;
create table table1(a integer);  #创建一个触发器,每次插入操作时
create trigger table1_insert after insert 
on table1 fro each row 
set @str='TRIGGER IS WORKING';
insert  into table1 values(10);   #插入一行数据
select @str;           #查看@str的值
########Begin#######
#######End######

第3关:存储过程

任务描述

本关任务:
1.新建一个带输入/输出参数的存储过程p3,输入商品名称,输出product表中这个商品名称对应的进价(unitcost)。

 

2.用“金鱼”为输入参数,定义用户变量@price作为p3的输出参数调用p3。
3.用select显示调用结果。

USE petstore;
delimiter $$           #结束符修改为其他字符
create procedure p3(in sp_name char(20),out price float)   #新建一个带输入/输出参数的存储过程
Begin
select unitcost into price from product where name=sp_name;
end $$
delimiter ;
call p3('金鱼',@price);              #调用p3
select @price;                      #查看调用结果
########Begin#######
#######End######

相关知识

为了完成本关任务,你需要掌握:

语法

语法:CREATE PROCEDURE语句
CREATE PROCEDURE 存储过程名 ([参数[,...]]) 存储过程体
存储过程可以有0到多个参数,参数格式如下:
[ IN | OUT | INOUT ] 参数名 类型
IN - 输入参数,输入参数使数据可以传递给一个存储过程。
OUT - 输出参数,返回一个结果作为存储过程的输出
INOUT - 输入/输出参数,既可以充当输入参数也可以充当输出参数。
存储过程也可以不加参数,但是名称后面的括号是不可省略的。
存储过程体:这是存储过程的主体部分,包含了在过程调用的时候必须执行的语句。
这个部分总是以BEGIN开始,以END结束。
但是,当存储过程体中只有一个SQL语句时可以省略BEGIN-END标志。

第4关:存储函数1

任务描述

本关任务:
1.新建一个没有参数的函数f1(),返回注册用户总数。
2.调用这个函数。

USE petstore;
delimiter $$           #结束符修改为其他字符
create function f1()    #新建一个没有参数的函数
returns int
Begin
return (select count(*) from account);
end $$
delimiter ;         
select f1();                      #调用函数
########Begin#######
#######End######

相关知识

为了完成本关任务,你需要掌握:

语法

第5关:存储函数2

任务描述

本关任务:
1.编写带参数的函数f2(),返回account表中指定用户id的用户名。

 2.调用这个函数,返回u0001号用户的用户名。

USE petstore;
delimiter $$           #结束符修改为其他字符
create function f2(id char(20))    #新建带参数的函数
returns char(20)
Begin
return (select fullname from account where userid=id);
end $$
delimiter ;         
select f2('u0001');                      #调用函数
########Begin#######
#######End######


####相关知识

语法

第6关:流程控制与循环:求a的i次方 

任务描述

本关任务:
1.编写一个带参数的存储过程p1,求a的i次方
2.调用p1,求8的5次方(用@ret存储运行结果)。

USE petstore;
delimiter $$           #结束符修改为其他字符
create procedure p1(in a int ,int i int,out ret int)   #新建一个带参数的存储过程
Begin
set ret=1;
while i>0 do 
set ret=ret*a;
set i=i-1;
end while;
end $$
delimiter ;
call p3(8,5,@ret);              #调用p1
select @ret;                      #查看调用结果
########Begin#######
#######End######

或者

USE petstore;
delimiter $$           #结束符修改为其他字符
create procedure p1(in a int ,out ret int)   #新建一个带参数的存储过程
Begin
declare i int default 5;
set ret=1;
while i>0 do 
set ret=ret*a;
set i=i-1;
end while;
end $$
delimiter ;
call p3(8,@ret);              #调用p1
select @ret;                      #查看调用结果
########Begin#######
#######End######


http://chatgpt.dhexx.cn/article/suV27wNt.shtml

相关文章

java数据库编程

java数据库编程 刚入门学习java数据库的编程,看了一部分的java核心技术卷2的内容,结合在blibli上看了javaweb的视频,先写一个入门级的数据库文章。 jdbc是由java定制的一套操作数据库的API(应用程序编程接口)。通过…

MySQL数据库编程(C++)介绍

本文主要介绍基于 C 编程语言,实现 MySQL 数据库编程的相关知识。 1 概述 本文利用 MySQL 接口实现基于 C 编程语言的 MySQL 数据库编程。 官网中对于 MySQL 的介绍如下: MySQL is a C wrapper for MySQL’s C API. It is built around the same prin…

数据库编程——简单教程

一、实验目的 1、掌握存储过程的概念、优点、特点及用途; 2、掌握创建、执行、修改和删除存储过程的方法。 二、实验内容 (一)附加上次实验所创建的数据库“db_Library”,并回顾该库的数据表信息。 (二)练习…

数据库基础编程

连接mysql在黑窗口 mysql -u root -p #登录MySQL SQL语句分类 数据库操作 创建数据库 create database [if not exists] db_name; 1.character set :指定数据库采用的字符集,如果不指定字符集,默认utf8 2,collate:指定数据库…

数据库编程

数据库编程 T-SQL编程基础知识 标识符 标识符分类 常规标识符(严格遵守标识符格式规则) 界定标识符(引号”或方括号[])标识符格式规则 字母或_、、#开头的字母数字或_、、$序列 不与保留字相同 长度小于128 不符合规…

数据库编程之ODBC编程

ODBC优点 移植性好 能同时访问不同的数据库 共享多个数据资源 ODBC概述 ODBC产生的原因 由于不同的数据库管理系统的存在,在某个关系数据库管理系统下编写的应用程序就不能在另一个关系数据库管理系统下运行 许多应用程序需要共享多个部门的数据资源&#xff0c…

第8章 数据库编程

文章目录 ❖第一节 T-SQL编程基础标识符注释语句表达式SET、SELECT区别 流程控制语句选择结构❖IF ELSECASE语句搜索式CASE语句 循环结构等待语句返回语句 系统函数标量函数日期和时间函数字符串函数 数据类型转换函数 ❖第二节 游标(重点)1. 声明游标2.…

teredo实现ipv4公网环境下接入ipv6

teredo实现ipv4公网环境下接入ipv6 系统:macOS High Sierra 10.13.3 测试成功 软件下载 下载安装Miredo http://www.deepdarc.com/miredo-osx-prerelease2.pkg.zip 项目github地址:https://github.com/darconeous/miredo-osx下载安装tuntaposx http…

Tornado简介

Tornado龙卷风是一个开源的网络服务器框架,它是基于社交聚合网站FriendFeed的实时信息服务开发而来的 Tornado是使用Python编写的Web服务器兼Web应用框架与主流Web服务器框架不同的是,Tornado是异步非阻塞式服务器,得益于非阻塞式和对epoll模…

【小白教程】win10系统如何开启ipv6

Teredo 是一种网络协议,用于在客户端和服务器之间建立安全通信,并且在使用网络地址转换 (NAT) 的路由器后增强设备之间的连接。 #####以下代码均在cmd窗口运行###### 一、设置Teredo 服务器 1、设置Teredo 服务器 netsh interface teredo set state …

Teredo Tunnel Adapter: Error Code 10

Teredo Tunneling 该设备无法启动 错误代码 ErrCode:10 解决方法 前文: Win7 系统,打算开启IPV6,本地连接的网络 ip6 驱动是异常的,先重新安装了网卡驱动。 过程: 几次尝试之后,还是无法启动,…

地平线不能多人联机解决方法

玩地平线4时可能会出现无法连接多人网络问题,在Xbox网络中出现Teredo不合格的问题。 解决方案: 按WinR输入gpedit.msc打开组策略编辑器,依次选择管理模块、网络、TCPIP设置、IPv6转换技术。双击设置6to4状态,点已启用&#xff0c…

微软的teredo服务器,win10系统通过teredo连接ipv6的操作方法

win10系统通过teredo连接ipv6的操作方法? 很多win10用户在使用电脑的时候,会发现win10系统通过teredo连接ipv6的的现象,根据小编的调查并不是所有的朋友都知道win10系统通过teredo连接ipv6的的问题怎么解决,不会的朋友也不用担心&#xff0c…

TCP/IP卷一:55---UDP之(UDP与IPv6、Teredo)

前一篇文章(https://blog.csdn.net/qq_41453285/article/details/103984794)对UDP和UDP数据报、UDP校验和做了简单的介绍,本片文章介绍一些UDP与IPv6有关的知识 一、IPv6下的UDP 考虑到简单性,在对IPv6而非IPv4进行操作时&#…

miredo - Teredo IPv6 tunneling for Unix

世界 IPv6 日:2011年6月8日 Test your IPv6:http://test-ipv6.com 安装miredo sudo apt-get install miredo 编辑miredo配置文件,加入teredo 的公共服务器地址,如ServerAddress teredo-debian.remlab.net sudo gedit /etc…

teredo 未能解析服务器名,Win10系统Xboxlive显示Teredo无法进行限定怎么解决

有的朋友会在windows10电脑上用Xbox live游玩游戏,但是碰到Xbox live设置显示Teredo无法进行限定,这时候我们该怎么办呢,下面由小编给大家介绍如何解决win10系统Xbox live显示Teredo无法进行限定。 具体步骤如下: 1.按下键盘上的&…

报PING:传输失败。常见故障.connect:network is unreachable“的解决方案-IPv6无法ssh连接的解决方案。

vultr当前2.5美金的vps只有IPv6,很多使用者无法正常使用ssh连接等,报PING:传输失败。常见故障。connect:network is unreachable 很多使用者不知所措,笔者也是一脸懵逼,经过一番研究之后,发现了…

微软的teredo服务器,win10系统通过teredo连接ipv6的具体教程

有关win10系统通过teredo连接ipv6的操作方法想必大家有所耳闻。但是能够对win10系统通过teredo连接ipv6进行实际操作的人却不多。其实解决win10系统通过teredo连接ipv6的问题也不是难事,小编这里提示两点:1、在“开始”里输入“cmd”,右击&am…

Win11地平线4 Xbox live无法登录?或者地平线4无法使用在线模式?尝试一波!!!

全是抄袭,只做整理,希望帮到大家,啥也不懂!但是!我就是这样弄好的 侵权 联系 我 就下架,但是只是想让大家可以解决问题 以下是我参照的文章: XBOX NAT类型:Teredo不合格解决方案 - 知乎 (zhi…

Win7使用teredo连接IPv6的方法

(1) 在 ” 开始 ”->” 运行 ” 中输入 cmd 打开 Windows 命令行。在命令行中输入 ipconfig /all ,会出现若干网络配置信息,找到 Tunnel adpter (隧道适配器) Teredo Tunneling Pseudo-Interface , 查看它是否有正确…