- 1、本文档共3页,可阅读全部内容。
- 2、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。
- 3、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载。
- 4、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
- 5、该文档为VIP文档,如果想要下载,成为VIP会员后,下载免费。
- 6、成为VIP后,下载本文档将扣除1次下载权益。下载后,不支持退款、换文档。如有疑问请联系我们。
- 7、成为VIP后,您将拥有八大权益,权益包括:VIP文档下载权益、阅读免打扰、文档格式转换、高级专利检索、专属身份标志、高级客服、多端互通、版权登记。
- 8、VIP文档为合作方或网友上传,每下载1次, 网站将根据用户上传文档的质量评分、类型等,对文档贡献者给予高额补贴、流量扶持。如果你也想贡献VIP文档。上传文档
查看更多
sql将查询结果插入表中
SQL将查询结果插入到现有表中在数据库日常维护工作中,我们可能经常需要把某个查询结果插入到现有的表中。如需要把两张表进行合并、需要把另外一张表能够符合条件的的记录插入到现有的表中、需要把另外一张表中的某些字段重新整理后插入到现有的表中等等。但是,我们都知道在数据库中对此进行操作,不想Excel表格那么方便,通过选择、复制、粘贴即可以完成工作表之间的合并。在数据库中,不能够对列直接进行复制与粘贴的操作。那么在数据库中能否有简单而有效的解决措施呢?其实在SQLServer数据库中,灵活使用insert into Select(插入结果查询)语句就可以实现这个需求。 如现在由于公司人事部门合并后需要把数据库中的USER_A中的数据复制到表USE_B中。那么就可以利用如下的语句来实现: ????? Insert into USER_B (ad_user_id,Value,name,manager_id) Select ad_user_id,Value,name,manager_id from USER_A Where( manager_id =100001) 通过如上这条简单的insert into select语句就可以把某一张表中符合条件的记录插入到目标表中。不过这条语句虽然比较简单,但是其中的条条框框仍然有很多。具体的来说,在使用这条语句的时候,需要遵守如下的这些条条框框。 一、需要指定源表中需要复制的列。 有时候可能复制与被复制的表表结构不同。如需要把表A中的name(英文名字)字段复制到表B中的name2(中文名字)中。此时原有复制表与被复制表中字段的名称不同,为此需要在上面的语句中,把所需要复制列名称一一列举出来。另外可能只需要把被复制表中的部分列复制到目的表总,此时也有显示的指名所需要复制的列。注意复制对象与目标对象都需要列出,以免发生张冠李戴的现象。笔者在使用这条语句的时候,不管任何情况,及时两者表格中的内容完全一致,笔者也习惯在语句中把字段的名称一一的列出。虽然这会增加一定的工作量,但是却可以提高这条语句执行的准确性。简而言之,就是需要在语句中指定源表zhon纲要复制其内容的列;指定目标表总要向其中复制数据的目标列。即使两这个表中的这些列名称相同,也最好能够显示的指定。此时数据库管理员不能够偷懒,否则的话很容易导致数据插入错误,而一切要重头再来。 二、存储数据时的顺序。 如果现在在源表中有一万条符合条件的记录要保存到目的表中,那么这些记录在数据库中存储的顺序应该是什么呢?默认情况下,其存储的数据顺序就是查询结果所得到的顺序。在没有采用排序语句的情况下,其实就是源表中实际存储的顺序(一般按记录创建的先后顺序来保存)。不过有时候可能这个排序顺序不怎么合理。笔者在认为,最好对需要插入的结果进行恰当的排序,这有利于提高插入记录的查询效率。如在牧地中,可能对员工编号设置了索引;或者在目的表中查询员工的信息是按员工编号来排序的。那么在目的表中插入数据的时候,最好能够按员工的编号来进行排列。是顺序还是逆序排列要跟目的表中保持一致。如此的话,插入数据后进行查询的话,如需要查询所有后来插入的结果,那么就不需要对其进行重新排序。因为存储的时候就是按照员工编号来插入,那么查询出来的数据也是按照员工编号来的。可见,为需要插入的数据设置合理的排序顺序,这有利于提高以后查询的性能。故笔者建议,为了提高数据库的性能,最好在插入数据的时候利用Order BY语句指定插入数据时的顺序。虽然这不是强制性的,但是笔者建议各位数据库管理员还是要这么做。 三、指定复制行的条件。 需要把某张表中的记录复制到另外一张表中,往往需要指定复制行的条件。也就是说,往往不会把源表中所有的记录都复制到目的表中。如现在需要把员工信息A表中的数据复制到员工信息B表中。可是由于员工离职或者其他的原因,员工信息A表中的记录可能有些已经作废掉了。如果把A表中的数据不加过滤就直接把全部记录都一成不变的复制到B表中,那显然会给B表增加不少的垃圾数据。为此在复制数据到目的表的表的时候,企业用户可能只需要把现在还在职的员工信息复制到B表中。此似,在使用上面的语句时,就需要利用Where条件来限制需要复制的行。如一般在数据库系统设计的时候,都会在表中加入一个isactive类似的控制字段,表示当前记录是否有效。当员工离职时,不会删除这个员工的信息,而是会把其设置为不活跃。在数据库表中反应出来的就是这个字段为N。为此,在上面的语句中,要把isactive列对应的值为N的记录去掉。所以如果在表与表合并的时候,需要根据一定的规则来过滤数据的话,则可以在语句中加入Where语句来进行限制。这个限制虽然不是必须的,但是却可以避免把一些垃圾数据也导入到新表中。 虽然数据库管理员可
您可能关注的文档
- Centos 6.3安装apache和Tomcat.docx
- (江苏适用-人教版)2014届高三历史一轮复习:9.1 中国古代农业与手工业(必修2).ppt
- ffmpeg安装教程.docx
- CentOS 6.0安装Oracle 11g R2.doc
- oracle11gr2 单实例ASM for rhel6 安装.docx
- tomcat和apahe整合文档.docx
- linux chkconfig命令及的七个运行级别.doc
- linux安装配置运行jmeter.docx
- 17_理正软件使用方法.doc
- 在Linux命令行使用代理服务器设置上网.docx
- springbooot+vue基于java的房屋维修系统毕业论文.doc
- 中国消防救援学院《单片机系统实验》2023-2024学年第一学期期末试卷.doc
- 2025年溧阳纺织化学品项目申请.pptx
- 景区门票包销合同模板(3篇).docx
- 【股票技术指标学习指南】第七章第三节货币需要量的测算.doc
- 2025春 _ 人教版七年级英语下册【unit4】看音标写单词.doc
- 2025春 _ 人教版七年级英语下册【unit5】看音标写单词.doc
- 2025春 _ 人教版七年级英语下册【unit6】看音标写单词.doc
- 2025春 _ 人教版七年级英语下册【unit7】看音标写单词.doc
- 2025春 _ 人教版七年级英语下册【unit8】看音标写单词.doc
文档评论(0)