• 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该怎么用

作者:站长图库 字体:[增加 减小] 来源:互联网 时间:2022-04-29

站长图库向大家介绍了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语句获取文章链接地址

相关文章

  • 2022-04-29教你5个让Vue3开发更顺畅的知识点
  • 2022-04-29PHP中fopen()函数的使用(附代码示例)
  • 2022-04-29Photoshop创建有光泽的塑料3D文字教程
  • 2022-04-29为什么不建议使用@import引入css
  • 2022-04-2918个你需要知道的JavaScript优化技巧
  • 2022-04-29深入了解PHP中的序列化和反序列化
  • 2022-04-29教你用PHP开发微信公众号文章付费阅读功能
  • 2022-04-29详解通过WordPress内置函数批量添加文章的方法
  • 2022-04-29JavaScript中字符串(string)如何转json
  • 2022-04-29PHP中如何利用compact创建数组

文章分类

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

最近更新的内容

    • PhotoShop设计制作梦幻炫彩光斑文字效果教程
    • Photoshop制作抽象炫光的艺术字效果
    • 你知道Thinkphp5.1让验证码在Electron-vue中怎么用?
    • ThinkPHP5跟laravel的区别有哪些
    • 一起分析uni-app怎么实现上传图片
    • Illustrator绘制心形效果的粉色海报
    • Javascript智能识别收货地址插件,智能识别收货地址Pro
    • CSS Flex 布局 space-between 最后一行左对齐
    • 微信小程序wx.request使用POST请求时后端无法获取数据解决办法
    • Photoshop详细解析置换滤镜的工作原理

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

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