存储过程

【mysql】使用存储过程造数据

旧城冷巷雨未停 提交于 2019-12-05 19:28:46
1. 定义生产数据的存储过程: drop procedure if exists prcd_create_data; create procedure prcd_create_data(IN totalCount int) begin declare num int; set num=0; while num<totalCount do set num=num+1; // 加入需要新增数据的sql INSERT INTO `pcl`.`person` (`name`, `age`) VALUES ('周贤贤',num); end while; END 2.调用存储过程: call prcd_create_data(400000); 来源: https://www.cnblogs.com/hunna/p/11941560.html

查询代码在哪个视图、存储过程、函数、触发中使用过

北战南征 提交于 2019-12-05 18:58:15
原文: 查询代码在哪个视图、存储过程、函数、触发中使用过 工作中偶尔会出现:想用A数据表替换B数据表,然后把B数据表删除。但是,又不知道B数据表在哪个视图、存储过程、函数、触发器中使用过? 经过一番度娘,看到实现方法也不难,主要涉及两个系统表:sysobjects及syscomments。 1、先来复习一下sysobjects表结构。 列名 数据类型 描述 name sysname 对象名。 id int 对象标识号。 xtype char(2) 对象类型。可以是下列对象类型中的一种: C = CHECK 约束 D = 默认值或 DEFAULT 约束 F = FOREIGN KEY 约束 L = 日志 FN = 标量函数 IF = 内嵌表函数 P = 存储过程 PK = PRIMARY KEY 约束(类型是 K) RF = 复制筛选存储过程 S = 系统表 TF = 表函数 TR = 触发器 U = 用户表 UQ = UNIQUE 约束(类型是 K) V = 视图 X = 扩展存储过程 uid smallint 所有者对象的用户 ID。 info smallint 保留。仅限内部使用。 status int 保留。仅限内部使用。 base_schema_ ver int 保留。仅限内部使用。 replinfo int 保留。供复制使用。 parent_obj int

mssql sqlserver if exists 用法大汇总

无人久伴 提交于 2019-12-05 18:57:30
原文: mssql sqlserver if exists 用法大汇总 摘要: 下文讲述sqlserver中,更新脚本中常用if exists关键字的用法说明,如下所示: 实验环境:sql server 2008 R2 一、检测数据库是否存在于当前数据库引擎下 if exists (select * from sys.databases where name = ’数据库名称’) begin print '数据库名称--存在' end 二、检测数据表是否存在于指定数据库下 if exists (select * from sysobjects where id = object_id(N’[数据表名称]’) and OBJECTPROPERTY(id, N’IsUserTable’) = 1) begin print '数据表名称---存在' end 三、检测存储过程是否存在的方法 if exists (select * from sysobjects where id = object_id(N’[存储过程名称]’) and OBJECTPROPERTY(id, N’IsProcedure’) = 1) begin print '存储过程名称-存在' end 四、临时表是否存在的方法 if object_id(’tempdb..#临时表名’) is not null begin

存储过程和函数

风流意气都作罢 提交于 2019-12-05 18:16:48
存储过程和函数的引入   存储过程和函数是在数据库中定义一些 SQL 语句的集合,然后直接调用这些存储过程和函数来执行已经定义好   的SQL语句。 存储过程和函数可以避免开发人员重复的编写相同的SQL语句。 而且, 存储过程和函数是在MySQL   服务器中存储和执行的,可以减少客户端和服务器端的数据传输;、 创建存储过程和函数 创建存储过程 CREATE PROCEDURE sp_name([proc_parameter[,...]]) [characteristic...] routine_body sp_name 参数是存储过程的名称; proc_parameter 表示存储过程的参数列表; characteristic 参数指定存储过程的特性; routine_body 参数是 SQL 代码的内容,可以用 BEGIN...END 来标志 SQL 代码的开始和结束。 proc_parameter 中的每个参数由 3 部分组成。这 3 部分分别是输入输出类型、参数名称和参数类型。 [ IN | OUT | INOUT ] param_name type 其中,IN 表示输入参数;OUT 表示输出参数;INOUT 表示既可以是输入,也可以是输出;param_name 参数是 存储过程的参数名称;type 参数指定存储过程的参数类型,该类型可以是 MySQL 数据库的任意数据类型

触发器权限存储引擎等~

痞子三分冷 提交于 2019-12-05 17:46:45
关于mysql的笔记 触发器,存储过程 mysql用户,权限 存储引擎 缓存,索引 官网链接 https://dev.mysql.com/ mysql https://mariadb.com/ mariadb 触发器 TRIGGER 触发形式:事件 创建权限:root用户 查看:show triggers 删除: drop trigger trigger_name CREATE TRIGGER trigger_name trigger_time trigger_event ON tbl_name FOR EACH ROW trigger_body # CREATE TRIGGER 触发器名称 事件前后 触发条件ON 触发表(不是被触发的表) FOR EACH ROW 触发事件 存储过程 PROCEDURE 提前编译完成后的方法,提高运行速度和降低网络传输大小 CREATE PROCEDURE sp_name ( [IN|OUT|INOUT]) begin 中间代码 end 查看存储过程列表 SHOW PROCEDURE STATUS; 查看存储过程的定义 SHOW CREATE PROCEDURE sp_name; 调用 CALL sp_name(更具定义决定是否带参数) 删除存储过程 DROP PROCEDURE sp_name 简单描述一下

存储过程

不羁的心 提交于 2019-12-05 17:36:55
存储过程是程序化的SQL,可以直接操作底层数据表,相比于面向集合的操作方式,能够实现一些更复杂的数据处理。存储过 程可以说是由SQL语句和流控制语句构成的语句集合,它和我们之前学到的函数一样,可以接收输入参数,也可以返回输出参数给调用者,返回计算结果。 Navicat直接按照上面,MYSQL需要用DELIMITER来临时定义新的结束符 首先用(//)作为结束符,又在整个存储过程结束后采用了(//)作为结束符号,告诉SQL可以执行了,然后再将结束符还原成默认的(;) CREATE PROCEDURE `get_hero_scores`( OUT max_max_hp FLOAT, OUT min_max_mp FLOAT, OUT avg_max_attack FLOAT, s VARCHAR(255) ) BEGIN SELECT MAX(hp_max), MIN(mp_max), AVG(attack_max) FROM heros WHERE role_main = s INTO max_max_hp, min_max_mp, avg_max_attack; 调用(参数为'战士') CALL get_hero_scores(@max_max_hp, @min_max_mp, @avg_max_attack, '战士'); SELECT @max_max_hp, @min_max

SQLServer数据库开发

巧了我就是萌 提交于 2019-12-05 16:57:24
SQLServer数据库开发 1、T-SQL编程 1变量 局部变量 局部变量是用户可自定义的变量,它的作用范围仅在程序内部。在程序中通常用来储存从表中查询到的数据,或当作程序执行过程中暂存变量使用。局部变量必须以 “@” 开头,而且必须先用 DECLARE 命令说明后 才可使用。其说明形式如下 : DECLARE @ 变量名 变量类型 [@ 变量名 变量类型 …] 例如:DECLARE @id char(10) —–声明一个长度为10的字符变量 全局变量 全局变量不是由用户的程序定义的,它们是在服务器级定应义的。只能使用预先说明及定义的变局变量。引用全局变量时,必须以“@@”开头。局部变量的名称不能与全局变量的名称相同、否则会在应用中出错。 常用全局变量 @@ERROR 最后一个T-SQL错误的错误号 @@IDENTITY 最后一次插入的标识值 @@LANGUAGE 当前使用的语言的名称 @@MAX_CONNECTIONS 可以创建的同时连接的最大数目 @@ROWCOUNT 受上一个SQL语句影响的行数 @@SERVERNAME 本地服务器的名称 @@TRANSCOUNT 当前连接打开的事务数 @@VERSION SQL Server的版本信息 例如: select @@VERSION as w --返回SQL服务器安装的日期、版本和处理器类型。2输出语句 使用print

oracle函数 存储过程 包 动态sql的练习

笑着哭i 提交于 2019-12-05 12:28:49
ORDERS表字段为order_id, order_date, customer_id, ship_date, total;数据来自oe.orders,主键为order_id CUSTOMERS表字段为customer_id, cust_first_name, cust_last_name, date_of_birth, marital_status, cust_email,city_name数据来自oe.customers,主键为customer_id ORDERS表与CUSTOMERS为多对1关系,需要用建立朱外键约束关系。 分析:因为orders外键依赖于customers的主键所以建表和插入数据时以customers为先 //创建customers表 create table customers (CUSTOMER_ID NUMBER(6) NOT NULL primary key , CUST_FIRST_NAME VARCHAR2(20) NOT NULL, CUST_LAST_NAME VARCHAR2(20) NOT NULL , DATE_OF_BIRTH date , MARITAL_STATUS VARCHAR2(20), CUST_EMAIL VARCHAR2(30), city_name varchar2(50) default 'luoyang'); /

MYSQL学习笔记一

和自甴很熟 提交于 2019-12-05 12:25:54
MYSQL学习笔记一 安装MYSQL服务以及安装图形界面软件 数据库基础知识 数据库定义 数据表 模式 关系数据库 关系数据库的特点 二维表 行 列 数据类型 主键 外键 MYSQL数据库管理系统 MYSQL视图 MYSQL存储过程 安装MYSQL服务以及安装图形界面软件 因为MYSQL和Navicat for SQL的安装已经有了相应的教程了,这里就不需要再次描述,不过当第一次用root用户登录MYSQL的时候需要马上更改密码,不然会一直提示要求更改密码的。改密码的方法有很多,这里仅在图1展示在DOS界面下修改密码的其中一种方式。 图1.修改密码 不过要注意在最后要加上分号再按回车。 数据库基础知识 数据库定义 数据库的话我认为有两种定义,第一种数据库是一个存储,组织,管理数据的仓库。第二种数据库是一些关联表的集合。 图2.数据库 数据表 数据表是一种结构化的文件,可用来存储某种特定类型的数据。是数据库的组成元素。 图3.数据表 模式 关于数据库和表的布局及特性的信息称为该数据库的模式。 关系数据库 关系数据库是建立在关系模型基础上的数据库。 关系数据库的特点 1.数据以表格的形式出现。 2.每行为各种记录名称。 3.每列为记录名称所对应的数据域。 4.许多的行和列组成一张表单。 5.若干的表单组成database。 二维表 关系数据库的数据表称为二维表。 行 在图3的数据表中

数据库MySQL之存储过程

帅比萌擦擦* 提交于 2019-12-05 07:29:27
存储过程的定义   存储过程是一种在数据库中存储复杂程序,以便外部程序调用的一种数据库对象。其在思想上与面向对象编程中函数的定义与调用一致,存储过程只是SQL语言维度上的封装与运用。 存储过程的优缺点   优点:   1) 简化了存储调用者的步骤,降低了存储调用者的学习成本   2) 隐藏了存储过程的实际逻辑,易于商业内容的保密   3) 降低了sql调用方的程序复杂度   缺点:存储过程受限于数据库语言,移植性较差 存储过程的语法   1) 声明语句结束符:DELIMITER $$   注:语句结束符默认是 ; 声明语句结束符将其变成 $$,这样在过程体中的分号传递到服务器时,不会被客户端解释。   2) 声明存储过程:CREATE PROCEDURE demo_demrystv (IN param_in int)   3) 创建存储过程 create procedure 存储过程名( 参数 )   4) 声明存储过程的开始和结束:BEGIN...END   5) 变量赋值 SET @param_in = 33 存储过程的示例 在开发中,比如想要向数据库中循环插入日期,可以通过MySQL中的存储过程来实现。 DELIMITER $$ DROP PROCEDURE IF EXISTS create_date $$ CREATE PROCEDURE create_date (s