mysql创建函数过程(PROCEDURE)中的一些用法。

!!!!需要注意的点:在mysql中每次定义完一条语句之后最后都要用“;”结尾,不然会报错

1、外部传入参数:
在创建过程时传入的参数选择这么定义:
IN `id` int,
IN `score` int,
IN `name` varchar(50)

在过程中用的时候直接使用定义的名字就可以直接用了

IN就代表着是传入的参数。

2、定义过程中的变量:
需要在begin 和end之间定义。
DECLARE name VARCHAR(255);
DECLARE sqlInsert VARCHAR(1000);

给变量赋值:
SET @name = (select name from person);#给全局变量name赋值。
select @name; #打印出刚才那么中赋上的值。


3、定义一条可以拼接执行的sql语句 使用concat进行拼接concat('xxx','xxx','xxxx');
SET @sqlInsert = CONCAT('SELECT * FROM person','where name = ','name');
PREPARE s2 FROM @sqlInsert;
execute s2;   #上述两步是编辑sql语句与执行
deallocate prepare s2; #这步是释放语句函数

4、创建物理表与创建临时表:
创建物理表:
create table userinfo
(
  userId   int   PRIMARY key,
    
    userName  VARCHAR(10),
    
    pWord     VARCHAR(10)

)ENGINE=InnoDB DEFAULT CHARSET=utf8


创建临时表:
CREATE TEMPORARY TABLE IF NOT EXISTS userinfo
(
  userId   int   PRIMARY key,
    
    userName  VARCHAR(10),
    
    pWord     VARCHAR(10)

)ENGINE=InnoDB DEFAULT CHARSET=utf8

临时表跟物理表的创建区别:是否有“TEMPORARY”。 “IF NOT EXISTS”如果没有就创建,有就不创建了。

表删除
DROP TABLE userinfo; #创建的临时表用过最好是删除,不然你如果你不断开数据库,一直使用的话,临时表的内容是累加的,不会删除,临时表自动删除是数据库断开连接之后。

如果创建的表格或临时表中的数据是通过查询别的表来生成的:
CREATE TEMPORARY TABLE IF NOT EXISTS person SELECT * FROM userinfo;

临时表在同一条执行语句中,不能被访问多次,只能被访问一次。

5、mysql中的top n表示方法:
select * from person ORDER BY score desc LIMIT 1;  #以score进行从大到小的排序,并且取出第一个 。limit后面的数字是多少,就是取出几条数据。

 

mysql中的在定义过程的时候,不能跟sql一样是dbo.sql等等,mysql中是不需要dbo这个样式的。

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值