sql:MySql create FUNCTION,VIEW,PROCEDURE

2023-11-14

use geovindu;

#函数

DELIMITER $$
drop function if exists f_GetDepartmentName $$
CREATE function f_GetDepartmentName
(
   did int
) 
returns nvarchar(400) 
begin
declare str nvarchar(100);
select DepartmentName into str from DepartmentList where DepartmentID=did;
return IFNULL(str,'');
end; 
$$
DELIMITER ;


DELIMITER $$
DROP FUNCTION IF EXISTS `geovindu`.`f_GetAuthorName` $$
CREATE FUNCTION `geovindu`.`f_GetAuthorName` (did int) RETURNS varchar(400)
BEGIN
   declare str varchar(100);
return(select ifnull(AuthorName,'') from AuthorList where AuthorID=did);
END $$
DELIMITER ;



#测试
SELECT  f_GetDepartmentName(1);
SELECT  f_GetAuthorName(1);

#视图

/*视图*/
select * from geovindu.views;

desc View_BookInfoList;

show create view View_BookInfoList;


select * from View_BookInfoList;

DELIMITER $$
drop view IF EXISTS View_BookInfoList  $$
CREATE VIEW `geovindu`.`View_BookInfoList` AS
  select BookInfoID , BookInfoKind , BookInfoPlace ,BookInfoSeries , BookInfoAuthor , BookInfoPress , BookInfoLanguage , BookInfoStatus , BookInfoOperatorId ,  BookInfoISBN , BookInfoBarCode , BookInfoName ,    BookInfoRemarks ,BookInfoAddDate,BookInfoPublish ,BookInfoPrice,
BookKindList.BookKindName,BookPlaceList.BookPlaceName,f_GetAuthorName(BookInfoAuthor)
from BookInfoList,BookKindList,BookPlaceList
where BookInfoList.BookInfoKind=BookKindList.BookKindID  and BookInfoList.BookInfoPlace=BookPlaceList.BookPlaceID;
$$
DELIMITER ;

#删除
DELIMITER $$
DROP PROCEDURE IF EXISTS `geovindu`.`DeleteBookKind` $$
CREATE PROCEDURE `geovindu`.`DeleteBookKind` (IN param1 INT)
BEGIN
         Delete From bookkindlist WHERE BookKindID  = param1;
END $$
DELIMITER ;

#查询所有
DELIMITER $$
DROP PROCEDURE IF EXISTS `geovindu`.`proc_Select_BookKindListAll` $$
CREATE PROCEDURE `geovindu`.`proc_Select_BookKindListAll` ()
BEGIN
    SELECT * FROM bookkindlist;
END $$
DELIMITER ;


select * from  `geovindu`.`bookkindlist`;
SELECT * FROM bookkindlist;

#统计
DELIMITER $$
DROP PROCEDURE IF EXISTS `geovindu`.`BookKindCount` $$
CREATE PROCEDURE `geovindu`.`BookKindCount` (OUT param1ID INT)
BEGIN
        select COUNT(*) into param1ID  From bookkindlist;
END $$
DELIMITER ;

#更新 
DELIMITER $$
DROP PROCEDURE IF EXISTS `geovindu`.`proc_Update_BookKindList` $$
CREATE PROCEDURE `geovindu`.`proc_Update_BookKindList` 
(
    IN param1ID Int,
    IN param1Name NVarChar(1000),
    IN param1Parent Int
)
BEGIN
IF NOT EXISTS (SELECT * FROM BookKindList WHERE BookKindName=param1Name) then #如果存在相同的记录,不更新名称
UPDATE BookKindList
	SET
		BookKindName=param1Name ,
		BookKindParent=param1Parent
	where
		BookKindID=param1ID;
ELSE
    UPDATE BookKindList
	SET BookKindParent=param1Parent
	where
		BookKindID=param1ID;
END IF;
END $$
DELIMITER ;


#查询一条
DELIMITER $$
DROP PROCEDURE IF EXISTS `geovindu`.`proc_Select_BookKindList` $$
CREATE PROCEDURE `geovindu`.`proc_Select_BookKindList` (IN param1 INT)
BEGIN
        SELECT * FROM BookKindList WHERE BookKindID = param1;
END $$
DELIMITER ;


call proc_Select_BookKindList (1);


#插入一条
DELIMITER $$
DROP PROCEDURE IF EXISTS `geovindu`.`proc_Insert_BookKindList` $$
CREATE PROCEDURE `geovindu`.`proc_Insert_BookKindList` 
(
    IN param1Name NVarChar(1000),
    IN param1Parent Int
)
BEGIN
        insert into BookKindList(BookKindName,BookKindParent) values(param1Name,param1Parent);
END $$
DELIMITER ;

#插入一条返回值
DELIMITER $$
DROP PROCEDURE IF EXISTS `geovindu`.`proc_Insert_BookKindOut` $$
CREATE PROCEDURE `geovindu`.`proc_Insert_BookKindOut` (IN param1Name NVarChar(1000),IN param1Parent Int,OUT ID INT)
BEGIN
     IF NOT EXISTS (SELECT * FROM BookKindList WHERE BookKindName=param1Name) then   #如果存在相同的记录,不添加
        INSERT INTO BookKindList (BookKindName,BookKindParent)VALUES(param1Name ,param1Parent);
        #set ID=Last_insert_id()
        SELECT LAST_INSERT_ID() into ID;
      end if;
END $$
DELIMITER ;


本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

sql:MySql create FUNCTION,VIEW,PROCEDURE 的相关文章

  • Hibernate 可以使用 MySQL 的“ON DUPLICATE KEY UPDATE”语法吗?

    MySQL 支持 INSERT ON DUPLICATE KEY UPDATE 语法允许您 盲目 插入数据库 并回退到更新现有记录 如果存在 当您想要快速事务隔离并且想要更新的值取决于数据库中已有的值时 这非常有用 作为一个人为的示例 假设
  • 如何在不超时的情况下解析大型 CSV 文件?

    我正在尝试解析 50 MB 的 csv 文件 文件本身很好 但我正在尝试解决所涉及的大量超时问题 每个设置上传明智 我可以轻松上传并重新打开文件 但浏览器超时后 我收到 500 内部错误 我的猜测是我可以将文件保存到服务器上 打开它并保留我
  • Mysql - Mysql2::错误:字符串值不正确:

    所以我建造了一个刮刀并拉动一些物体 问题是有些是外语 它使 mysql 数据库有点崩溃 这是我得到的错误 知道我能用这个做什么吗 谢谢 Mysql2 错误 列的字符串值不正确 xC5 x8Dga 第 1 行的 描述 插入sammiches
  • 通过我的java代码导出数据库

    我想使用我的 java 代码导出我的 MySQL 数据库 但我还没有找到任何办法 我想要做的就是我的应用程序中有一个按钮作为 导出数据库 单击该按钮时 我的数据库应导出到指定的路径 我使用了以下代码 但它不起作用 Runtime runti
  • 在 MySQL 数据库中存储图像文件或 URL?哪个更好? [复制]

    这个问题在这里已经有答案了 可能的重复 在数据库中存储图像 是还是否 https stackoverflow com questions 3748 storing images in db yea or nay 数据库中的图像与文件系统中的
  • MYSQL中收盘价的简单移动平均线计算和更新表

    我可以使用一些帮助 最好是虚拟指南 来更新下表 CREATE TABLE SYMBOL day date NOT NULL open decimal 8 3 DEFAULT NULL high decimal 8 3 DEFAULT NUL
  • 通过货币换算获取每种产品类型的最低价格

    我想选择每种产品类型中最便宜的 包括运费 价格转换为当地货币 最便宜 产品 价格 产品 运费 seller to aud 我的数据库有如下表 PRODUCTS SELLERS id type id seller id price shipp
  • MySQL 服务器未启动

    当我做 mysql u root p并输入my password这就是我得到的 错误 2002 HY000 无法通过套接字 var run mysqld mysqld sock 连接到本地 MySQL 服务器 2 所以我输入 systemc
  • 使用按位函数查询 BIT 字段时,MySQL 不使用索引

    我的 MySQL 表中有一个 BIT 类型的字段 我想使用位值存储记录的状态 例如 1 status1 2 status2 4 status3 8 status4 每条记录可以同时具有多种状态 对于 status1 和 status3 该值
  • Mysql innoDB 不断崩溃[关闭]

    Closed 这个问题不符合堆栈溢出指南 help closed questions 目前不接受答案 我的数据库 mysql 服务器不断崩溃 重新启动 我不知道该怎么办 我不断在 dbname org err 文件中收到以下内容 13120
  • 使 pdo::query 静态

    当我运行下面的代码时出现此错误 我通常使用 msql 函数 但我尝试使用 PDO 代替 怎么了 致命错误 第 14 行无法静态调用非静态方法 PDO query
  • Python:如何使用生成器来避免 sql 内存问题

    我有以下方法来访问 mysql 数据库 并且查询在服务器中执行 我无权更改有关增加内存的任何内容 我对生成器很陌生 并开始阅读更多有关它的内容 并认为我可以将其转换为使用生成器 def getUNames self globalUserQu
  • 查询中列的顺序重要吗?

    当从 MySQL 表中选择列时 与表中的顺序相比 选择列的顺序是否会影响性能 不考虑可能覆盖列的索引 例如 您有一个包含行 uid name bday 的表 并且有以下查询 SELECT uid name bday FROM table M
  • 第三个下拉菜单不从数据库填充

    我有以下 Index php
  • MYSQL 区分大小写的 utf8 搜索(使用 hibernate)

    我的登录表具有 utf8 字符集和 utf8 排序规则 当我想要检查用户名并检索该特定用户名的其他信息时 hql 查询会为我提供小写和大写相同的结果 我应该如何处理适用于案例的 HQL 查询 我使用 Mysql 5 和 java hiber
  • InnoDB 因读未提交而死锁! - Java - Glassfish - EJB3(JPA/Hibernate)

    几天来 我在使用 Glassfish EJB3 和 Mysql InnoDB 的 Java 应用程序上遇到了死锁问题 配置 Mysql InnoDB Ver 14 12 Distrib 5 0 51a 适用于 debian linux gn
  • 无法通过套接字“/var/lib/mysql/mysql.sock”连接到本地 MySQL 服务器 (2)

    当我尝试连接 mysql 时出现以下错误 Can t connect to local MySQL server through socket var lib mysql mysql sock 2 这个错误有解决办法吗 其背后的原因可能是什
  • Apache、PHP 和 MySQL 可移植吗?

    我可以在外部硬盘上运行 Apache PHP 和 MySQL 吗 我需要这个 因为我在不同的地方工作 计算机 有时我没有安装和配置所有使用的应用程序 当然可以 XAMPP http www apachefriends org en xamp
  • 忽略重复条目并在 EF Core 中的 DbContext.SaveChanges() 上提交成功条目

    我有一个 ASP Net Core 2 2 Web API 在我的一个控制器操作中 我向 MySQL 数据库表添加了一堆行 我使用的是 Pomelo 例如 dbContext AddRange entities dbContext Save
  • Mysql 创建定义器

    我创建了一个在 CentOS Web 服务器上运行的 Intranet Web 应用程序 该应用程序使用另一个本地服务器 始终是 CentOS 作为 MySQL 数据库 在数据库内部我创建了例程 这些例程总是这样开始 CREATE DEFI

随机推荐

  • 数据分析和可视化平台:Splunk Enterprise for mac v9.1.1激活版 兼容m1

    Splunk Enterprise 是一个数据分析和可视化平台 可帮助企业理解其数据 虽然没有适用于 Mac OS 的 Splunk Enterprise 官方版本 但他们确实为 Mac OS 提供了一个名为 Splunk Light 的应
  • 刷题之二分查找

    题目 给定一个 n 个元素有序的 升序 整型数组 nums 和一个目标值 target 写一个函数搜索 nums 中的 target 如果目标值存在返回下标 否则返回 1 来源 力扣 LeetCode 链接 https leetcode c
  • 2019超分辨综述

    论文地址 Deep Learning for Image Super resolution A Survey 摘要 图像超分辨率 SR 是一类重要的图像处理技术 旨在提高计算机视觉中图像和视频的分辨率 近年来 目睹了使用深度学习技术的图像超
  • 数据库中的blob是什么类型?

    BLOB binary large object 二进制大对象 是一个可以存储二进制文件的容器 在计算机中 BLOB常常是数据库中用来存储二进制文件的字段类型 BLOB是一个大文件 典型的BLOB是一张图片或一个声音文件 由于它们的尺寸 必
  • vulnstack-ATT&CK实战系列 红队实战(一)

    vulnstack ATT CK实战系列 红队实战 一 前言 在此次攻击过程中 需要用到cobalt strike内网渗透工具 而此软件的破解版在国内还是很难找到的 这里有一个扩展阅读 此次事件互联网上简称为contiLeaks 其中就有C
  • python学习练习题

    文章目录 前言 python简单题目学习 python简单题目学习 1 最小公倍数和最大公约数 2 水仙花数 100 1000 3 百钱百鸡问题 4 猜数字游戏 5 三局两胜猜拳游戏 6 CPAPS赌博游戏 总结 前言 光看知识点不练习终究
  • 全球及中国家政服务产业前景建议与运营盈利分析报告2022版

    全球及中国家政服务产业前景建议与运营盈利分析报告2022版 修订日期 2022年2月 出版单位 鸿晟信合研究院 对接人员 周文文 内容分析有删减 了解详情可查看咨询鸿晟信合研究院专员 目录 第一章 家政服务行业基本概述 第二章 国际家政服务
  • java基础--向上转型

    为什么要用向上转型 因为为了让方法复用 只写一个以父类为形参的方法即可 不然形参为子类的话 每个子类都要单独写一个方法 那该多麻烦啊 只不过向上转型会丢失子类的特有方法 向下转型是强转 可使用instance判断 用来调用子类的特有方法 c
  • 【算法】二叉树广度优先(BFS)

    二叉树广度优先遍历 Depth First Search 这个算法是逐层遍历的 是从上到下 从左到右依次遍历 知道全部节点都被遍历完为止 由于需要记录每一层的节点 所以需要记录其对应的父节点的子节点 同时具有顺序性 为此需要使用队列来装遍历
  • 【记录】Django重复三步

    Step1 修改models py Step2 执行命令python manage py makemigrations app name Step3 再执行命令python manage py migrate 1 激活虚拟环境 启动服务器
  • Nginx 安装成功后,无法访问到默认页面

    安装 Nginx 后 无法访问到 Nginx 页面 1 查看 Nginx 是否启动成功 ps ef grep nginx 2 查看默认80端口是否分配给 Nginx netstat ntlp 如果前面几步都是正常的 则可以判断出是防火墙将8
  • 【SpringCloud-学习笔记】Docker基本操作

    1 镜像相关命令 镜像名称一般分两部分组成 repository tag 在没有指定tag时 默认是latest 代表最新版本的镜像 2 镜像操作命令 3 案例 从DockerHub中拉取一个nginx镜像并查看 首先去镜像仓库搜索ngin
  • 关于rfind

    rfind全名reversefind 与find相反 size type rfind const basic string str size type index size type rfind const char str size ty
  • Java面向对象编程

    下列关于线性链表的叙述中 正确的是 A 各数据结点的存储空间可以不连续 但它们的存储顺序与逻辑顺序必须一致 B 各数据结点的存储顺序与逻辑顺序可以不一致 但它们的存储空间必须连续 C 进行插入与删除时 不需要移动表中的元素 D 以上说法均不
  • IDEA 回退GIT代码

    IDEA 回退GIT代码 我们代码平时在IDEA开发完成后 提交代码到远程仓库的流程为 我们在提交代码到远程仓库的时候难免会发生提交了错误代码 要回滚到上个版本的情景 根据上面的流程我整理了一下三个场景的解决方案 1 idea中git回退已
  • 个人隐私问题

    近日 某高校毕业生在校期间窃取学校内网数据 收集全校学生个人隐私信息的新闻引发了人们对互联网生活中个人信息安全问题的再度关注 在大数据时代 算法分发带来了隐私侵犯 在享受消费生活等便捷权利的同时 似乎又有不少个人信息泄露的担忧 用隐私换便利
  • mybatisplus分页总是查到全部数据?

    这是因为版本的问题 在3 4 1及以上需要配置过滤器以实现分页 分页代码 gt Test void contextLoads6 Page
  • x86平台运行arm64平台docker 镜像

    本文介绍在x86服务器上安装qemu aarch64 statick仿真器 以实现x86服务器可以运行docker或docker compose镜像 报错信息 x86服务器默认不能运行ARM平台镜像 会提示如下错误 WARNING The
  • CMD命令读取某个目录下所有文件夹名或文件名

    CMD命令读取某个目录下所有文件夹名或文件名 CMD命令读取某个目录下所有文件夹名或文件名 要用到的dir命令 开始操作 CMD命令读取某个目录下所有文件夹名或文件名 目的是给自己留个笔记 要用到的dir命令 dir ad 只查看文件夹 d
  • sql:MySql create FUNCTION,VIEW,PROCEDURE

    use geovindu 函数 DELIMITER drop function if exists f GetDepartmentName CREATE function f GetDepartmentName did int return