关闭 x
IT技术网
    技 采 号
    ITJS.cn - 技术改变世界
    • 实用工具
    • 菜鸟教程
    IT采购网 中国存储网 科技号 CIO智库

    IT技术网

    IT采购网
    • 首页
    • 行业资讯
    • 系统运维
      • 操作系统
        • Windows
        • Linux
        • Mac OS
      • 数据库
        • MySQL
        • Oracle
        • SQL Server
      • 网站建设
    • 人工智能
    • 半导体芯片
    • 笔记本电脑
    • 智能手机
    • 智能汽车
    • 编程语言
    IT技术网 - ITJS.CN
    首页 » SQL语言 »SQL点滴之如何编辑数据

    SQL点滴之如何编辑数据

    2011-06-23 14:00:00 出处:ITJS
    分享

    数据库中的数据编辑是我们遇到的最频繁的工作,这一个随笔中我来总结一下最常用的数据编辑。

    select into

    经常遇到一种情况是,我们希望创建一个新表,表中的数据来源于原有的一个表;原有一个表,但是这个表中的数据已经很混乱,我们希望把这些数据备份出来,然后把原有的表中的数据清除,重新导入;在这些情况下我们可以使用select into语句。

    假如当前用户拥有建表权限,在select语句使用关键字into可以在数据库中创建新的 表。这个语句只需要把into new_table_name加到选择出的列名之后,from关键字之前,当然数据可以来源于一个或多个表中。需要说明的是在新表中只包含select字句中查询的到的数据,没有任何键,约束,关系。下面实例:

    select top(10) *  into new_intervalwaitssample  from IntervalWaitsSample  select * from new_intervalwaitssample 

    这个语句就将IntervalWaitsSample表中的前10行数据放在一个新建的表new_intervalwaitssample中。

    insert into select

    现在已经有这个新表了,假如我们想再从原表IntervalWaitsSample中选择一些数据插入到这个新表中呢,这时候就需要使用insert into select语句了,下面实例:

    insert into new_intervalwaitssample  select * from IntervalWaitsSample where wait_type='ASSEMBLY_LOAD' 

    这个语句就将原表IntervalWaitsSample中的所有wait_type='ASSEMBLY_LOAD'的数据插入到新表中了。

    insert into select union

    现在假如我们有一些已知的数据想把这些数据一次性写入到目标表里面,应该怎么办呢,这时候union语句就很有用了,可以使用insert into select union语句,注意这个语句和insert into select很相似,差别就在于后面的select语句使用了union把多个select连接起来。

    insert into select value11 , value12 , value13   union select value21 , value22 , value23   union select  value31 , value32 , value33   … … 

    下面是实例:

    insert into new_intervalwaitssample  select 'ASYNC_NETWORK_IO','2011-05-09 16:50:00.973','0.00' union select 'ASYNC_NETWORK_IO','2011-05-09 17:00:00.020','0.00' union select 'ASYNC_NETWORK_IO','2011-05-09 17:15:00.123','0.00' union select 'ASYNC_NETWORK_IO','2011-05-09 17:25:00.190','0.00' 

    使用表值构造函数

    我们还可以直接使用表值构造函数,这个更加简单直接,代码如下:

    insert into new_intervalwaitssample  values   ('ASYNC_NETWORK_IO','2011-05-09 16:50:00.973','0.00'),  ('ASYNC_NETWORK_IO','2011-05-09 17:00:00.020','0.00'),  ('ASYNC_NETWORK_IO','2011-05-09 17:15:00.123','0.00'),  ('ASYNC_NETWORK_IO','2011-05-09 17:25:00.190','0.00') 

    从表中“剪切”数据

    还有一种情况,假设我们想从一个表中的数据删除几条数据,然后把这些删除的数据放到另外一个表中。这个动作就像使用剪切,粘贴一样。不过这种情况要注意,他只能从用户表中剪切数据,不能从视图中剪切数据。它的语法如下

    Delete sourcetable  output deleted.value1,deleted.value2,deleted.value3  into targettable  from targettable where … … 

    下面是实例

    delete WaitStats  output deleted.dt,  deleted.wait_type,  deleted.waiting_tasks_count,  deleted.wait_time_ms,  deleted.max_wait_time_ms,  deleted.signal_wait_time_ms  into new_waitestats  where WaitStats.wait_type='ABR' 

    可见即可得的编辑

    假如我们是应用程序开发,我相信大多数人还是更愿意使用SQL Server Management Studio中的图像化界面来操作数据,毕竟提供了这么多强大的功能,为什么不用呢。记得我曾经提到过Oracle中可以直接修改sql语句选择得到的数据,当时质问Microsoft SQL Server为何没有提供这样强大的功能。呵呵,今天发现SQL Server还是提供了这样的功能。不过这种修改只能是单独一个表,假如在这个查询语句中有内连接之类的估计就不行了。废话不说,上图:

    1.点击要修改的表右击选择Edit top 200 rows

    2.当打开编辑界面的时候,SQL server上面会多出一个标签 ,鼠标滑到这个标签"Query Designer"上,再滑到Panel上,再滑到SQL上,点击SQL,或者在编辑界面右击也能看到。如图1

     

    图1

    这时候在上面的文字区就可以编写自己想要修改的数据的查询语句如下列:

    SELECT     TOP (1000) dt, wait_type, waiting_tasks_count, wait_time_ms, max_wait_time_ms, signal_wait_time_ms  FROM         new_waitestats  WHERE     (wait_type = 'ABR') 

    3.这里我们想要修改wait_type=’ABR’的数据,点击查询按钮 ,在下面的表格内就可以看到所有符合条件的数据,这时候就可以修改这些数据了,注意改好之后按回车键才会写到数据库里面。这样做是不是很偷懒呢呵呵,不用写update语句,直接在里面修改。

    使用编辑器复制粘贴数据

    还有一种情况可以使用编辑器代替上面的insert into select语句, 假如两个表的字段完全一样,我们从一个表中查询得到数据,然后复制到另外一个表中。

    1.首先点击数据行的开头,选中整行,然后点击copy如图2

     

    2.然后右击想要插入数据的第二个表,鼠标拖动滚动条到最后,直到显示一行全部都是空值的一行,然后右击paste,按回车键,这样一条数据就插入进去了。如图3

     

    这些都是在平时工作中见到的,觉得很有意思在这里记录下来。这些雕虫小技对于数据库技术大牛来时不值得一提,还望大牛们看到了不要笑我班门弄斧啊。

    原文链接:http://www.cnblogs.com/tylerdonet/archive/2011/05/13/2045831.html

    上一篇返回首页 下一篇

    声明: 此文观点不代表本站立场;转载务必保留本文链接;版权疑问请联系我们。

    别人在看

    正版 Windows 11产品密钥怎么查找/查看?

    还有3个月,微软将停止 Windows 10 的更新

    Windows 10 终止支持后,企业为何要立即升级?

    Windows 10 将于 2025年10 月终止技术支持,建议迁移到 Windows 11

    Windows 12 发布推迟,微软正全力筹备Windows 11 25H2更新

    Linux 退出 mail的命令是什么

    Linux 提醒 No space left on device,但我的空间看起来还有不少空余呢

    hiberfil.sys文件可以删除吗?了解该文件并手把手教你删除C盘的hiberfil.sys文件

    Window 10和 Windows 11哪个好?答案是:看你自己的需求

    盗版软件成公司里的“隐形炸弹”?老板们的“法务噩梦” 有救了!

    IT头条

    公安部:我国在售汽车搭载的“智驾”系统都不具备“自动驾驶”功能

    02:03

    液冷服务器概念股走强,博汇、润泽等液冷概念股票大涨

    01:17

    亚太地区的 AI 驱动型医疗保健:2025 年及以后的下一步是什么?

    16:30

    智能手机市场风云:iPhone领跑销量榜,华为缺席引争议

    15:43

    大数据算法和“老师傅”经验叠加 智慧化收储粮食尽显“科技范”

    15:17

    技术热点

    SQL汉字转换为拼音的函数

    windows 7系统无法运行Photoshop CS3的解决方法

    巧用MySQL加密函数对Web网站敏感数据进行保护

    MySQL基础知识简介

    Windows7和WinXP下如何实现不输密码自动登录系统的设置方法介绍

    windows 7系统ip地址冲突怎么办?windows 7系统IP地址冲突问题的

      友情链接:
    • IT采购网
    • 科技号
    • 中国存储网
    • 存储网
    • 半导体联盟
    • 医疗软件网
    • 软件中国
    • ITbrand
    • 采购中国
    • CIO智库
    • 考研题库
    • 法务网
    • AI工具网
    • 电子芯片网
    • 安全库
    • 隐私保护
    • 版权申明
    • 联系我们
    IT技术网 版权所有 © 2020-2025,京ICP备14047533号-20,Power by OK设计网

    在上方输入关键词后,回车键 开始搜索。Esc键 取消该搜索窗口。