扫码关注官方订阅号
1:一条sql语句可以同时对两个表做新增,更新,删除操作吗?
2:一条sql语句能同时对多表操作的只有select语句吗?
3:如果将多条 新增/更新/删除 操作语句使用分号隔开执行呢?
4:如果将多条select语句使用分号隔开执行会怎样呢?
ringa_lee
不可以,当然如果用;分隔两条SQL传递过去是能执行的。。不过那严格意义上说,不是一条了
;
可以,看你这个指的是什么多表操作了,如果多个结构一样的表。用Union把多表结果合并出来。还有子查询,也算是select多表。。
Union
当然可以拉。相当于执行了多条语句。。不过有的引擎和框架为了防止被注入,是会强制过滤这类的。不然有人在了查询语句中间插入了分号,那就可以执行任何他想执行的语句了。
这个也是看引擎的,大多数会依次返回你请求的结果。也有的框架是返回第一条,也有的是返回最后一条。根据框架建议你直接写个简单的sql做下测试就知道了。。
ps.一般是不允许一次多条SQL的。不然那样真的很危险。。。
只回答问题1。
视图算吗?MySQL支持一个叫“视图”的东西,它可以把多个表组成一个视图。对这个视图的增删改查操作可以影响到多个表。MySQL 5.7中关于视图的说明:http://dev.mysql.com/doc/refman/5.7/en/views.html
微信扫码关注PHP中文网服务号
QQ扫码加入技术交流群
扫描下载App
Copyright 2014-2025 https://www.php.cn/ All Rights Reserved | php.cn | 湘ICP备2023035733号
PHP学习
技术支持
返回顶部
不可以,当然如果用
;
分隔两条SQL传递过去是能执行的。。不过那严格意义上说,不是一条了可以,看你这个指的是什么多表操作了,如果多个结构一样的表。用
Union
把多表结果合并出来。还有子查询,也算是select多表。。当然可以拉。相当于执行了多条语句。。不过有的引擎和框架为了防止被注入,是会强制过滤这类的。不然有人在了查询语句中间插入了分号,那就可以执行任何他想执行的语句了。
这个也是看引擎的,大多数会依次返回你请求的结果。也有的框架是返回第一条,也有的是返回最后一条。根据框架建议你直接写个简单的sql做下测试就知道了。。
ps.一般是不允许一次多条SQL的。不然那样真的很危险。。。
只回答问题1。
视图算吗?
MySQL支持一个叫“视图”的东西,它可以把多个表组成一个视图。对这个视图的增删改查操作可以影响到多个表。
MySQL 5.7中关于视图的说明:http://dev.mysql.com/doc/refman/5.7/en/views.html