MYSQL 存储过程中的关键语法 声明语句结束符,可以自定义: DELIMITER $$ 或 DELIMITER // 声明存储过程: CREATE PROCEDURE demo_in_parameter(IN p_in int) 存储过程开始和结束符号: BEGIN .... END 变量赋值: SET @p_in=1 变量定义: DECLARE l_int int unsigned default 4000000; 创建mysql存储过程、存储函数: create procedure 存储过程名(参数) 存储过程体: create function 存储函数名(参数) 实例 创建数据库,备份数据表用于...
声明sql语句的分隔符,默认情况下是; CREATE PROCEDURE p() BEGIN SELECT ‘hello procedure‘; END$ call p() -- ----------------- 注释符后空一格delimiter $ CREATE PROCEDURE process_01() BEGIN DECLARE nickname VARCHAR(18) DEFAULT(‘大哥哥‘); -- 声明变量,默认值为‘大哥哥’ SET nickname = ‘小弟弟‘; -- 直接赋值 SELECT nickname; END$DROP PROCEDURE process_01; -- 删除该存储过...
DEFINER=`test`@`%` PROCEDURE `prop_make_bak_sql`(psShecmal varchar(30),psFunctions varchar(3000)) BEGINselect CONCAT(‘-- 备份 ‘,name,‘ \r\nDELIMITER $$\r\n \r\nCREATE OR REPLACE ‘,type,‘ ‘,name,‘(‘,CAST(param_list AS CHAR(50000) CHARACTER SET utf8),‘) ‘ ,if(type=‘FUNCTION‘,‘ RETURNS ‘,‘‘),if(type=‘FUNCTION‘,CAST(`RETURNS` AS CHAR(50000) CHARACTER SET utf8),‘‘),‘ \r\n‘,CAST(b...
1、查看表的原存储引擎show create table user; user, CREATE TABLE `user` (\n `id` int(11) NOT NULL DEFAULT \0\,\n `num` int(8) DEFAULT NULL,\n `name` varchar(20) DEFAULT NULL,\n `sex` varchar(10) DEFAULT NULL,\n `age` int(3) DEFAULT NULL,\n `phone` varchar(11) DEFAULT NULL,\n `address` varchar(100) NOT NULL,\n PRIMARY KEY (`id`)\n) ENGINE=InnoDB DEFAULT CHARSET=utf82、修改存储引擎alter table...
1、首先使用delimiter将结束符从“;”变为$$ ,这样就不会在过程或者函数中的“;”被mysql解释成语句的结束而提示错误。 在存储过程或函数创建完毕后,使用“delimiter”再把结束符该为“;”。 2、演示了存储过程的删除,通过存储过程的名称来删除一个存储过程 3、创建一个存储过程,设定存储过程的名字为 “test_procedure”,设置存储过程的参数,及其参数类型。存储过程的参数可以是IN、OUT、INOUT类型,函数的参数只能是...
1.存储过程。。。 Mysql存储过程是从mysql 5.0开始增加的一个新功能.存储过程的优点其实有很多,不过我觉得存储过程最重要的优点就是实现了SQL代码的封装,那么我们为什么需要封装SQL语句呢?原因就是当我们在面对一个庞大的数据库的时候,当我们使用外部程序去访问数据库的时候。。。我们总不能在外部程序中内嵌很多的SQL语句吧。。。那样执行的效率不高,并且也不容易维护...因此存储过程将我们的操作进行封装,当我们需要对其...
1、导出centos数据库的表结构mysqldump -d -uxxx -p centos > centos_table.sql其中-d参数表示不导出数据,只导出表结构2、替换centos_table.sql里的MyISAM为INNODBsed -i ‘s/MyISAM/INNODB/g‘ centos_table.sql 3、新建数据库centos_new,并导入表结构mysql > create database centos_new; mysql -uroot -p centos_new < centos_table.sql 可以通过show table status来检查表引擎是否为INNODB。4、导出centos的数据mysqldump -t ...
Mysql体系结构 mysql体系结构图: <img alt="技术分享" src="http://www.mamicode.com/data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAAioAAAF5CAIAAAA+oJYgAAAgAElEQVR4nOy9d1xTacL27+f5vfu8z77vs+/uPmV2d+bZGWdmpwqog4p91NFRxzJ2QR17F0URBaWDNOm995ZGqKHXUAIhlYSSQgiQRgoJ6f3+/RFEdGZ2x7Ugu+f7uf6QmNznOvc5ua/c5ZyzBEBAQEBAQLxxliy0AQgICAiIf0ag+IGAgICAWACg+IGAgICAWACg+IGAgICAWACg+IGAgICAWACg+IGAgICAWACg+IGAgICAWACg+IGA...
语句在执行的时候需要要先编译,然后执行,而存储过程(Stored Procedure)是一组为了完成特定功能的SQL语句集,经编译后存储在数据库中,用户通过指定存储过程的名字并给定参数(如果该存储过程带有参数)来调用执行它。 一个存储过程是一个可编程的函数,它在数据库中创建并保存。它可以有SQL语句和一些特殊的控制结构组成。当希望在不同的应用程序或平台上执行相同的函数,或者封装特定功能时,存储过程是非常有用的。数据库...
DELIMITER $$ DROP function IF EXISTS `func_split_TotalLength` $$ CREATE DEFINER=`root`@`%` FUNCTION `func_split_TotalLength` (f_string varchar(1000),f_delimiter varchar(5)) RETURNS int(11) BEGIN# 计算传入字符串的总length return 1+(length(f_string) - length(replace(f_string,f_delimiter,‘‘))); END$$ DELIMITER; # 函数:func_split DELIMITER $$ DROP function IF EXISTS `func_split` $$ CREATE DEF...
数据库对同样的数据,有着不同的存储方式和管理方式,在mysql中称为存储引擎。常用的存储引擎有myisam,innodb,memory,mysql默认的是innodb。myisam批量插入速度比innodb快,myisam把本地服务器的数据文件直接拷贝到另一台服务器的data目录下就能把数据转移到另一台服务器。innodb安全性比myisam高,innodb数据不易丢失。memory的数据是存储在内存,速度非常快,但是服务器一关机,数据就没了,对于一些不用长时间保存的数据可以...
部分文字参考其他博客或者文字。 官方解释: MyISAM:默认的MySQL插件式存储引擎,它是在Web、数据仓储和其他应用环境下最常使用的存储引擎之一。注意,通过更改STORAGE_ENGINE配置变量,能够方便地更改MySQL服务器的默认存储引擎。 InnoDB:用于事务处理应用程序,具有众多特性,包括ACID事务支持。 BDB:可替代InnoDB的事务引擎,支持COMMIT、ROLLBACK和其他事务特性。 Memory:将所有数据保存...
、InnoDB、MERGE、MEMORY(HEAP)、BDB(BerkeleyDB)、EXAMPLE、FEDERATED、ARCHIVE、CSV、BLACKHOLE。 可以用show engines命令来查看mysql支持的存储引擎SHOW ENGINES; 创建表时,用关键字ENGINE或者TYPE来决定表的存储引擎类型:(首选ENGINE) CREATE TABLE t (i INT) ENGINE = INNODB; CREATE TABLE t (i INT) TYPE = MEMORY; mysql存储引擎标签:本文系统来源:http://www.cnblogs.com/Jacck/p/4523814.html
”命令,对mysql数据表进行空间的释放。由于delete和drop table都不会释放表空间(truncate 命令会释放表空间【将所有的数据都删除】),所以需要利用optimize 命令进行释放。 这个存储过程目的是给一个库的所有表来整理碎片的。一个表随着插入很频繁,或者一直更新不停的,就会积累好多碎片。如果及时整理一下,查询效率会高出好多。DELIMITER $$DROP PROCEDURE IF EXISTS `mysql`.`sp_optimize_tables`$$CREATE PROCEDURE `...
存储过程名和参数,参数中in表示传入参数,out标示传出参数,inout表示传入传出参数create procedure p_procedurecode(in sumdate varchar(10)) begindeclare v_sql varchar(500); --需要执行的SQL语句declare sym varchar(6);declare var1 varchar(20);declare var2 varchar(70);declare var3 integer;--定义游标遍历时,作为判断是否遍历完全部记录的标记declare no_more_departments integer DEFAULT 0; --定义游标名...