mysql存储过程的使用
mysql通过使用存储过程,可以把很多据查询语句放到一块去执行,我们在使用的时候就像调用函数一样,加上参数就行了。
这样我们就不用向服务器传送特别长的SQL语句,同时也减少了进行注入式攻击的可能性,而且存储个过程还可以加密,这样可以防止别人看或者修改里面的一些运算逻辑。
mysql 存储过程的应用
mysql 存储过程就像复杂的SQL语句,又像函数,你可以在存储过程里执行数据库操作,也可以返回查询结果。
使用存储过程只需要在SQL语句中加入相应的参数就行了,这样传送的字符比较少,还可以减少注入式攻击。不过有时候为了移植的方便,我们经常不使用存储过程。
mysql为什么没有存储过程
我不是这样理解的1对于某些返回行纪录很多的情况,存储过程发挥很大作用,第1次编译之后,之后不用再编译,直接走执行计划理论上要快很多的2特别某些大表,复杂应用有时候必须用存储过程我回忆很多年前作项目,有专家指导团队要求所有SQL代码全部转为存储过程----一方面安全性,另1方面速度理论要快现在我当前环境确实是并发量大的应用,我觉得对于单条插入 删除 修改等操作可以不用但是类似 SQL我觉得还是应该用存储过程 (现在我不知道mysql的内部机智)
mysql存储过程中如何执行ddl语句
在MySQL存储过程中,可以使用`SET @sql_text = 'DDL语句';`来定义一个变量,然后使用`PREPARE stmt FROM @sql_text;`来预处理这个变量中的DDL语句。最后,使用`EXECUTE stmt;`来执行这个预处理的DDL语句。
以下是一个示例:
```sql
DELIMITER $$
CREATE PROCEDURE ExecuteDDL()
BEGIN
-- 定义一个变量,用于存储DDL语句
SET @sql_text = 'CREATE TABLE test_table (id INT, name VARCHAR(255));';
-- 预处理DDL语句
PREPARE stmt FROM @sql_text;
-- 执行预处理的DDL语句
EXECUTE stmt;
-- 如果需要检查执行结果,可以添加以下代码:
-- DECLARE result INT;
-- GET DIAGNOSTICS result = ROW_COUNT();
-- SELECT result;
END$$
DELIMITER ;
```
在这个示例中,我们创建了一个名为`ExecuteDDL`的存储过程,该过程定义了一个变量`@sql_text`,并使用它来存储一个创建表的DDL语句。然后,我们使用`PREPARE`和`EXECUTE`语句来预处理和执行这个DDL语句。