精华内容
下载资源
问答
  • MySQL存储过程是一系列由SQL语句集组成,其参数可以...第一步,创建数据库表t_teacher,创建数据库表的SQL语句:create table t_teacher(id int(10),tno int(10),tname varchar(20),tsex varchar(2),tage int(2),tad...

    MySQL存储过程是一系列由SQL语句集组成,其参数可以使用IN、OUT和INOUT类型。下面利用一个实例说明存储过程的用法,具体操作如下:

    1501823735969476.png

    1.第一步,创建数据库表t_teacher,创建数据库表的SQL语句:create table t_teacher(

    id int(10),

    tno int(10),

    tname varchar(20),

    tsex varchar(2),

    tage int(2),

    taddr varchar(40)

    );

    如下图所示:

    1501823765625882.png

    2.第二步,创建数据库表后,查看数据库表结构并查看数据库表数据,如下图所示:

    1501823789561256.png

    3.第三步,向数据库表插入四条数据,并查看数据库表数据,如下图所示:

    1501823818945933.png

    4.第四步,创建存储过程query_count(),存储过程中是查询数据的条数,如下图所示:

    1501823833922745.png

    5.第五步,调用存储过程query_count(),如下图所示:

    1501823849186142.png

    6.第六步,创建存储过程后,调用它之后,查询结果,如下图所示:

    1501823870436053.png

    注意事项

    注意MySQL存储过程编写过程

    存储过程和函数的区别

    展开全文
  • Mysql中如何使用存储过程和事件自动创建数据库表发布时间:2020-06-01 16:12:37来源:51CTO阅读:220作者:三月下文给大家带来关于Mysql中如何使用存储过程和事件自动创建数据库表,感兴趣的话就一起来看看这篇文章...

    Mysql中如何使用存储过程和事件自动创建数据库表

    发布时间:2020-06-01 16:12:37

    来源:51CTO

    阅读:220

    作者:三月

    下文给大家带来关于Mysql中如何使用存储过程和事件自动创建数据库表,感兴趣的话就一起来看看这篇文章吧,相信看完Mysql中如何使用存储过程和事件自动创建数据库表对大家多少有点帮助吧。

    业务需求,把app用户开机写入一张日志表app_open_log。

    上线7个月来,有74万条记录了。

    现考虑要分库分表了。每个月初创建一张以app_open_log_为前缀,日期年月为后缀的数据库表,比如:app_open_log_201807。

    实现思路:

    Mysql如何每月自动建表?

    一、新建事件每月调用存储过程

    二、存储过程里面建表

    1、获取当前时间,转换字符串

    2、拼接sql语句建表

    实现方法

    把下面两段复制到sql,执行即可。

    首先创建存储过程:DELIMITER //

    CREATE PROCEDURE create_table_app_open_log_month()

    BEGIN

    DECLARE `@suffix` VARCHAR(15);

    DECLARE `@sqlstr` VARCHAR(2560);

    SET `@suffix` = DATE_FORMAT(DATE_ADD(NOW(),INTERVAL 1 MONTH),'_%Y%m');

    SET @sqlstr = CONCAT(

    "CREATE TABLE jz_app_open_log",

    `@suffix`,

    "(

    `id` int(11) NOT NULL AUTO_INCREMENT,

    `equipment_type` varchar(45) DEFAULT NULL ,

    `equipment_version` varchar(45) DEFAULT NULL ,

    `rom` varchar(45) DEFAULT NULL ,

    `cpu` varchar(45) DEFAULT NULL ,

    `mac` varchar(100) DEFAULT NULL ,

    `ip` varchar(50) DEFAULT NULL ,

    `version_code` varchar(10) DEFAULT NULL ,

    `client` varchar(45) DEFAULT '' ,

    `create_time` int(10) DEFAULT NULL,

    `version_name` varchar(45) DEFAULT '' ,

    `v` varchar(10) DEFAULT '',

    PRIMARY KEY (`id`),

    UNIQUE KEY `id_UNIQUE` (`id`)

    ) ENGINE=InnoDB AUTO_INCREMENT=1 DEFAULT CHARSET=utf8mb4 ROW_FORMAT=DYNAMIC;"

    );

    PREPARE stmt FROM @sqlstr;

    EXECUTE stmt;

    END;

    然后创建事件每月1日执行上面的存储过程:DELIMITER $$

    SET GLOBAL event_scheduler = 1;

    CREATE EVENT event_create_table_every_month

    ON SCHEDULE EVERY 1 MONTH

    STARTS '2018-07-01 00:00:00'

    ON  COMPLETION  PRESERVE

    ENABLE

    DO

    BEGIN

    CALL create_table_app_open_log_month();

    END

    通过Navicate可以查看到

    ae7b336fea05f624d92f979107ce5263.png

    这样就OK了!

    扩展知识:什么是存储过程?

    在一些语言中,有“过程”这种概念,procedure,和"函数",function,

    PHP中没有过程,只有函数。

    过程:封装了若干条语名,调用时,这些封装体执行。

    函数:是一个有返回值的过程。

    过程:是没有返回值的函数。

    我们把若干条sql封装起来,取个名字,---过程。

    把此过程存储在数据库中,---存储过程。

    存储过程创建语法:

    定义:

    create procedure procedureName()

    begin

    --sql语句;

    end$

    查看:

    show procedure status;

    调用:

    call procedure()

    存储过程是可以编程的

    即可以用变量,表达式,控制语句来完成复杂的功能。

    在存储过程中,用declare声明变量

    格式: declare 变量名 变量类型。

    例:create procedure p2()

    begin

    declare age int default 18;

    declare height int default 180;

    select concat('年龄是',age,'身高是',height);

    end$

    有变量,就能运算,有运算,有运算就能控制。

    运算的结果,如何赋值给变量。

    set 变量名:=变量值

    例:create procedure p3()

    begin

    declare age int default 18;

    set age:=age+20;

    select concat(’20年后年龄是’,age);

    end$

    -- if/else控制结构

    if condition then

    statement

    else

    end if;

    --p5 给存储过程传参

    存储过程的括号里,可以声明参数,

    语法是[in/out/inout] 参数名 参数类型

    例:create procedure p5(width int,height int)

    begin

    select concat('你的面积是',width*height)  as area;

    if width>height then

    select '你很胖';

    else if width

    select '你很瘦';

    else

    select '你很方';

    end if;

    end$

    call p5(3,4)$

    看了以上关于Mysql中如何使用存储过程和事件自动创建数据库表详细内容,是否有所收获。如果想要了解更多相关,可以继续关注我们的行业资讯板块。

    展开全文
  • 存储过程(stored ...速度快:存储过程只在创造时进行编译,以后每次执行存储过程都不需再重新编译,而一般SQL语句每执行一次就编译一次,所以使用存储过程可提高数据库执行速度。2.当对数据库进行复杂操作时(...

    存储过程(stored Procedure):是一组为了完成特定功能的SQL语句集,经编译后存储在数据库中,用户通过指定存储过程的名字并提供参数(如果有参数的话)来执行它。数据库中的一个重要学习对象。

    存储过程的优点:

    1.速度快:存储过程只在创造时进行编译,以后每次执行存储过程都不需再重新编译,而一般SQL语句每执行一次就编译一次,所以使用存储过程可提高数据库执行速度。

    2.当对数据库进行复杂操作时(如对多个表进行Update,Insert,Query,Delete时),可将此复杂操作用存储过程封装起来与数据库提供的事务处理结合一起使用.

    3.重复使用:可减少数据库开发人员的工作量

    4.安全性高:可设定只有某此用户才具有对指定存储过程的使用权

    5.减少客户机的压力:存储过程主要是在服务器上运行

    6.减少网络流量

    在命令模式下开始创建存储过程:

    //连接数据库: C:\Documents and Settings\Administrator>mysql -uroot -proot

    //调用指定的数据库: mysql> use db_wlgl Database changed

    //开始创建存储过程:

    mysql> delimiter ;

    mysql> create procedure admin_regs (in x varchar(50),in y varchar(50))

    -> begin

    -> select * from tb_admin where admin_user=x and admin_pass=y;

    -> end;

    //php中调用存储过程:

    $sql=$conn->query("call admin_regs('".$admin_user."','".$admin_pass."')");

    展开全文
  • 通过图形界面自动创建数据库起源如何实现建表存储过程实现(适用于MySQL5.6+)1. 生成分区表2. 拷贝表通过kettle脚本进行存储过程或sql脚本调用 起源 解决进行项目自动化配置 实现程序化的分表功能,减轻数据库压力...

    起源

    1. 解决进行项目自动化配置
    2. 实现程序化的分表功能,减轻数据库压力

    如何实现

    1. 通过在数据库中创建存储过程实现表创建功能
    2. 通过kettle实现数据库脚本的执行
    3. 需要解决kettle ktr脚本数据源配置问题

    建表存储过程实现(适用于MySQL5.6+)

    1. 生成分区表

    CREATE DEFINER=`root`@`localhost` PROCEDURE `createPartitionTableWithPrimaryKey`(var VARCHAR(2000),var1 VARCHAR(100),f1 VARCHAR(30),f2 VARCHAR(30))
    BEGIN
    	SET @pdd = concat('CREATE table ', var,' select * from ',var1,' where 1=2');
    	PREPARE stmt1 FROM @pdd;
    	EXECUTE stmt1;
      DEALLOCATE PREPARE stmt1;
      SET @pdd3 = concat('ALTER TABLE ', var, ' ADD PRIMARY KEY (',f1,',',f2,')');
      PREPARE stmt2 FROM @pdd3;
      EXECUTE stmt2;
      DEALLOCATE PREPARE stmt2;
    END
    

    此存储过程功能是根据一个已知表生成一个新表,可出入表名及主键条件。

    2. 拷贝表

    CREATE DEFINER=`root`@`localhost` PROCEDURE `copytable`(var VARCHAR(20))
    BEGIN
    SET @pddl = concat('ALTER TABLE ', var, ' RENAME ', var, DATE_FORMAT(NOW(), '%Y%m'));
    PREPARE stmt FROM @pddl;
    EXECUTE stmt;
    DEALLOCATE PREPARE stmt;
    SET @pdd2 = concat('CREATE table ', var, ' select * from ', var, DATE_FORMAT(NOW(), '%Y%m where 1=2'));
    PREPARE stmt1 FROM @pdd2;
    EXECUTE stmt1;
    DEALLOCATE PREPARE stmt1;
    END
    

    根据传入表名进行表复制,并将表名命名为 “表名202107“的形式。

    通过kettle脚本进行存储过程或sql脚本调用

    展开全文
  • --创建存储过程的例子CREATE PROCEDURE proc_stuASDECLARE @writtenAvg float,@labAvg numeric(6,2)--定义变量SELECT @writtenAvg=AVG(written),@labAvg=AVG(lab) FROM Examprint '笔试平均分:'+convert(varchar(6)...
  • 1.存储过程 1.1存储过程的查看,执行,删除 ...1.2使用数据库,删除存储过程 #.使用cq_mhl_test这个数据库 USE cq_mhl_test; # 如果存在名为`createTables_cq`的存储过程,就将其删掉 drop procedure if EXISTS `create
  • 一、存储过程 1、存储过程 存储过程(Stored Procedure) 是一组为了完成特定功能的SQL 语句集,经编译后存储在服务器端数据库中,用户通过指定存储过程的名字并... (2)用户自定义存储过程:由用户根据需要创建...
  • 创建储存过程 语法: create procedure 存储过程名称(参数列表) begin sql 语句 end* 请编写 SQL 语句,创建一个名为 GetTotalTeacher 的存储过程,声明一个变量 totalTeacher 默认值为 0,将 teachers 表中的教师...
  • 创建存储过程和函数是指将经常使用的一组SQL语句组合在一起,并将这些SQL语句当作一个整体存储在MySQL服务器中。存储程序可以分为存储过程和函数。在MySQL中创建存储过程使用的语句CREATE PROCEDURE。其语法形式如
  • 这篇文章主要介绍了Oracle数据库创建存储过程的示例详解,存储过程是事先经过编译并存储数据库中的一段SQL语句的集合,调用存储过程可以简化应用开发人员的很多工作。对此感兴趣可以了解一下1.1,Oracle存储过程...
  • 1.最简单的存储过程SQL> create procedure sample_proc is2 begin3 null;4 end sample_proc;5 /2.如果我们重复建立存储过程SQL> create procedure sample_proc is2 begin3 dbms_output.put_line('Hello World'...
  • 实验五使用T-SQL编写存储过程访问数据库 本科实验报告 课程名称: 数据库系统原理 实验项目:使用T-SQL编写存储过程访问数据库 实验地点: 4606 专业班级: 学号: 学生姓名: 指导教师: 2012 年 11 月 8 日 一 ...
  • 2.从创建到执行的全过程截图和文字说明 3.Navicat Premium免安装版(百度网盘)下载链接 链接:https://pan.baidu.com/s/1h5jJEkP1BbyDQJ4Swy66kA 提取码:8e1q 若链接失效,可留言获取 ...
  • 一、基本内容(1) 使用SQL语句创建数据库;(2) 为数据库分配管理权限;(3) 定义表和数据库的完整性,student(学生表),course(课程表)和 sc(学生选课表),并设置各个表之间的联系,设置表的主键和每个表对应的外键...
  • 存储过程是为了完成特定功能的SQL语句集,经编译创建并保存在数据库中,用户可通过指定存储过程的名字并给定参数(需要时)来调用执行。存储过程思想上很简单,就是数据库 SQL 语言层面的代码封装与重用。优点存储过程...
  • 本文主要向大家介绍了MySQL数据库之MySQL存储过程学习使用创建、修改、删除、调用 ,通过具体的内容向大家展现,希望对大家学习MySQL数据库有所帮助。一、创建创建存储过程使用CREATEPROCEDURE语句,语法格式...
  • 打开VFP界面选择\"文件\"菜单中的新建命令将打开新建对话框选择\"数据库\"单选按钮,将打开新建数据库对话框,选择新建数据库将又打开一个对话框直接填写入数据名即可就创建好如果免费帮书画家建立网上数据库,推广...
  • 数据库写上面表的存储过程函数 KEY cycle (cycle) USING BTREE 是索引。 create procedure create2_historyTable(IN souce_Name varchar(50),IN d_tsrs_interface_history varchar(50)) begin declare tablename ...
  • 本实验的目的是使学生进一步掌握 SQL Server 存储过程创建使用方法,加深对 SQL存储过程的理解。通过对存储过程的调用体会其作用。 二、实验准备 结合课堂教学内容,了解存储过程的相关知识,掌握存储过程的定义...
  • 使用DBCA创建数据库

    2021-09-15 22:34:19
    使用DBCA创建数据库 上一篇通过oui的方式已经创建好了数据库软件,接下来oracle自带工具DBCA来建立一个简单的实验数据库 一、创建数据库 1.oracle用户进入oracle安装目录的bin子目录或直接通过环境变量的方式调用...
  • 数据库mysql储存过程

    2021-02-02 17:34:52
    存储过程是一个SQL语句集合,...一:创建存储过程MariaDB [test2]> delimiter //MariaDB [test2]>create procedure p1() #创建存储过程-> begin select * froma;-> end //Query OK, 0 rows affected (0...
  • oracle数据库中查看系统存储过程的方法复制代码 代码如下:select line,text from dba_source where name='PRO_E_F_ORDER_STAT';select object_name,object_type from dba_objects where object_type='PROCEDURE';...
  • 在线QQ客服:1922638专业的SQL Server、MySQL数据库同步软件存储过程(Stored Procedure )是一组为了完成特定功能的SQL 语句集,经编译后存储数据库中。用户通过指定存储过程的名字并给出参数(如果该存储过程带有...
  • 存储过程简介SQL语句需要先...存储过程是可编程的函数,在数据库创建并保存,可以由SQL语句和控制结构组成。当想要在不同的应用程序或平台上执行相同的函数,或者封装特定功能时,存储过程是非常有用的。数据库中...
  • 存储过程(Stored Procedure)是在大型数据库系统中,一组为了完成特定功能的SQL 语句集,它存储数据库中,一次编译后永久有效,用户通过指定存储过程的名字并给出参数(如果该存储过程带有参数)来执行它。...
  • 如何执行一个mysql的sql脚本文件sql脚本...基本步骤如下:1、创建包含sql命令的sql脚本文件文件中包含一些列的sql语句,每条语句最后以;结尾,文件内容示例如下:--创建表...文章余二五2017-11-081016浏览量mysql在c...
  • 当前位置:我的异常网» 数据库»mysql的存储过程-数据库的复制mysql的存储过程-数据库的复制www.myexceptions.net网友分享于:2013-03-18浏览:0次mysql的存储过程---数据库的复制DELIMITER $$USE `bjcmdb`$$DROP ...
  • MySql数据库存储过程和函数 前言 对于MySql数据库,难道只能遇到一个数据库的需求,然后就写一大堆sql语句吗?MySql的SQL语句能不能像正常的编程一样提供函数这种模式,通过对一定的业务需求进行封装SQL语句,然后...

空空如也

空空如也

1 2 3 4 5 ... 20
收藏数 692,886
精华内容 277,154
关键字:

用存储过程创建数据库