• linkedu视频
  • 平面设计
  • 电脑入门
  • 操作系统
  • 办公应用
  • 电脑硬件
  • 动画设计
  • 3D设计
  • 网页设计
  • CAD设计
  • 影音处理
  • 数据库
  • 程序设计
  • 认证考试
  • 信息管理
  • 信息安全
菜单
linkedu.com
  • 网页制作
  • 数据库
  • 程序设计
  • 操作系统
  • CMS教程
  • 游戏攻略
  • 脚本语言
  • 平面设计
  • 软件教程
  • 网络安全
  • 电脑知识
  • 服务器
  • 视频教程
  • dedecms
  • ecshop
  • z-blog
  • UcHome
  • UCenter
  • drupal
  • WordPress
  • 帝国cms
  • phpcms
  • 动易cms
  • phpwind
  • discuz
  • 科汛cms
  • 风讯cms
  • 建站教程
  • 运营技巧
您的位置:首页 > CMS教程 >建站教程 > SQL语句中的with as该怎么用

SQL语句中的with as该怎么用

作者:站长图库 字体:[增加 减小] 来源:互联网

站长图库向大家介绍了SQL语句,with as该怎么用等相关知识,希望对您有所帮助

WITH AS短语,也叫做子查询部分,可以定义一个SQL片断,该SQL片断会被整个SQL语句用到。可以使SQL语句的可读性更高,也可以在UNION ALL的不同部分,作为提供数据的部分。


SQL语句中的with as该怎么用

–针对一个别名

with tmp as (select * from tb_name)

–针对多个别名

withtmp as (select * from tb_name),tmp2 as (select * from tb_name2),tmp3 as (select * from tb_name3),…

–相当于建了个e临时表

with e as (select * from scott.emp e where e.empno=7499)select * from e;

–相当于建了e、d临时表

withe as (select * from scott.emp),d as (select * from scott.dept)select * from e, d where e.deptno = d.deptno;

其实就是把一大堆重复用到的sql语句放在with as里面,取一个别名,后面的查询就可以用它,这样对于大批量的sql语句起到一个优化的作用,而且清楚明了。


向一张表插入数据的with as用法

insert into table2withs1 as (select rownum c1 from dual connect by rownum <= 10),s2 as (select rownum c2 from dual connect by rownum <= 10)select a.c1, b.c2 from s1 a, s2 b where…;

select s1.sid, s2.sid from s1 ,s2需要有关联条件,不然结果会是笛卡尔积。

with as 相当于虚拟视图。

with as短语,也叫做子查询部分(subquery factoring),可以让你做很多事情,定义一个sql片断,该sql片断会被整个sql语句所用到。有的时候,是为了让sql语句的可读性更高些,也有可能是在union all的不同部分,作为提供数据的部分。

特别对于union all比较有用。因为union all的每个部分可能相同,但是如果每个部分都去执行一遍的话,则成本太高,所以可以使用with as短语,则只要执行一遍即可。如果with as短语所定义的表名被调用两次以上,则优化器会自动将with as短语所获取的数据放入一个temp表里,如果只是被调用一次,则不会。而提示materialize则是强制将with as短语里的数据放入一个全局临时表里。很多查询通过这种方法都可以提高速度。

withsql1 as (select to_char(a) s_name from test_tempa),sql2 as (select to_char(b) s_name from test_tempb where not exists (select s_name from sql1 where rownum=1))select * from sql1union allselect * from sql2union allselect ‘no records’ from dualwhere not exists (select s_name from sql1 where rownum=1)and not exists (select s_name from sql2 where rownum=1);

WITH语句的优点:

(1). SQL可读性增强。比如对于特定with子查询取个有意义的名字等。

(2)、with子查询只执行一次,将结果存储在用户临时表空间中,可以引用多次,增强性能。

举例:在进行导入EXCEL的过程中,有时候,需要将数据存储在临时表中,当下一次在进行导入的时候,进行清除临时表的数据,但是这时候,有时候发生并发问题的话,两个用户可能会分别操作对方的数据,所以,可能造成混乱,但是可以使用WITH函数和UNION语句拼接一个SQL语句,存储在SESSION中,当需要导出错误信息的时候,可以使用该语句构造数据。


分享到:QQ空间新浪微博腾讯微博微信百度贴吧QQ好友复制网址打印

您可能想查找下面的文章:

  • SQL语句中的with as该怎么用
  • YII怎么输出sql语句?
  • sql语句中创建表的语句是什么
  • MYSQL有哪些常用基本SQL语句
  • PHPCMS模型字段单选复选只能填写不能使用SQL语句查询
  • DedeCMS使用sql语句获取文章链接地址

相关文章

  • N种使用 CSS 实现三角形的技巧
  • Photoshop制作夹心饼干艺术字效果
  • 如何解决LayUI时间控件闪退问题
  • PhotoShop打造超具想象力的3D生态系统海报制作过程
  • thinkphp增加每页显示条数的方法
  • Photoshop制作时尚绚丽的3D立体字教程
  • Photoshop制作立体效果的图案艺术字
  • 什么是依赖注入?在Angular中怎么实现?
  • 什么是事件循环?详解Node.js中的事件循环
  • vue-cli-service不是内部或外部命令怎么解决

文章分类

  • dedecms
  • ecshop
  • z-blog
  • UcHome
  • UCenter
  • drupal
  • WordPress
  • 帝国cms
  • phpcms
  • 动易cms
  • phpwind
  • discuz
  • 科汛cms
  • 风讯cms
  • 建站教程
  • 运营技巧

最近更新的内容

    • 说说PHP太空船运算符的使用场景
    • html+css如何实现自定义图片上传按钮
    • PhotoShop打造星云四射跳舞的女孩海报效果教程
    • 使用PHP中3个神奇常量快速获取目录、文件名和行号
    • Photoshop多边形套索工具无法闭合BUG(单击,双击,Esc,回车)均无效的解决办法
    • 将phpcms默认ckeditor编辑器换成KindEditor
    • 让padding、border等不占据高宽度的方法
    • JavaScript如何处理并行请求?四种方式浅析
    • Photoshop绘制杂色质感椭圆极光网页按钮
    • 怎么利用配置文件来管理多个 Node.js 进程

关于我们 - 联系我们 - 免责声明 - 网站地图

©2020-2025 All Rights Reserved. linkedu.com 版权所有