mysql数据库中存储过程如何处理变量

mysql数据库中存储过程如何处理变量,第1张

用select...into语句

这个SELECT语法把选定的列直接存储到变量。因此,只有单一的行可以被取回。

重要:

SQL变量名不能和列名一样。如果SELECT ... INTO这样的SQL语句包含一个对列的参考,并包含一个与列相同名字的局部变量,MySQL当前把参考解释为一个变量的名字。例如,在下面的语句中,xname 被解释为到xname variable 的参考而不是到xname column的:

CREATE PROCEDURE sp1 (x VARCHAR(5)) BEGINDECLARE xname VARCHAR(5) DEFAULT 'bob' DECLARE newname VARCHAR(5) DECLARE xid INTSELECT xname,id INTO newname,xid FROM table1 WHERE xname = xname SELECT newname END

当这个程序被调用的时候,无论table.xname列的值是什么,变量newname将返回值‘bob’。

修改表:

1.修改之添加列:给stu表添加classname列:

ALTER TABLE stu ADD (classname varchar(100))

2.修改之修改列类型:修改stu表的gender列类型为CHAR(2):

ALTER TABLE stu MODIFY gender CHAR(2)

3.修改之修改列名:修改stu表的gender列名为sex:

ALTER TABLE stu change gender sex CHAR(2)

4.修改之删除列:删除stu表的classname列:

ALTER TABLE stu DROP classname

5.修改之修改表名称:修改stu表名称为student:

ALTER TABLE stu RENAME TO student

查看当前数据库中所有表名称:SHOW TABLES; 

查看指定表的创建语句:SHOW CREATE TABLE emp,查看emp表的创建语句;

查看表结构:DESC emp,查看emp表结构;

删除表:DROP TABLE emp,删除emp表;

在使用常量或者标识符的地方不能使用。

例如表名、列名和LIMIT子句中,用户自定义变量的生命周期是在一个连接中有效,所以不能用它们来做连接间的通信。

不能显式地申明自定义变量的类型。确认未定义变量的具体类型的时机在不同mysql版本中可能不一样。


欢迎分享,转载请注明来源:内存溢出

原文地址: https://outofmemory.cn/zaji/5896374.html

(0)
打赏 微信扫一扫 微信扫一扫 支付宝扫一扫 支付宝扫一扫
上一篇 2023-03-07
下一篇 2023-03-07

发表评论

登录后才能评论

评论列表(0条)

保存