SQL Server修改数据的几种语句详解

目录
  • 一:INSERT语句
  • 二:INSERT INTO SELECT语句
  • 三:UPDATE语句
  • 四:DELETE语句
  • 总结

本篇主要讲解的是SQL Server 中修改数据的几种语句:

  • INSERT语句
  • INSERT INTO SELECT语句
  • UPDATE语句
  • DELETE语句

一:INSERT语句

INSERT语句向表中添加新行,以下是INSERT语句的最基本形式:

  1. 首先:table_name指定要插入的表的名称;
  2. 其次,column_list指定要在其中插入数据的一个或多个列的列表。必须将列的列表包括在括号中并用逗号分隔离列
  3. 如果列在列列表中没有出现,则SQL Server必须能够提供插入值,否则无法插入行。
  4. SQL Server自动对表中可用的列使用以下值,但不会出现在 INSERT 语句的列列表中:
    • 如果列具有[IDENTITY]属性,则为下一个增量值。 如果列具有指定的默认值,则为默认值。
    • 如果列的数据类型是时间戳数据类型(timestamp),则默认为当前时间戳值。
    • 如果列可以为 NULL 值,则使用 NULL 。
  5. 第三,要在 VALUES 子句中提供插入的值列表。列列表中的每列必须在值列表中具有相应的   值。 此外,必须将值列表括在括号中。

以下是创建一个名为promotions 的新表:

(在sales模式中创建了一个名为promotions的新表。 promotions表有五列,包括:促销标识号 (promotion_id),名称(name),折扣(discount),开始日期(start_date)和过期日期 (expired_date)。 promotion_id是标识列,因此当向表中添加新行时,SQL Server会自动填充其值。)

注:promotions表暂无任何数据

以下语句是将新行添加到promotions表中 (添加行数据):

注:在此示例中,为 promotions 表中的四列指定了值。但没有为 promotion_id 列指定值,这是为什么呢?

因为SQL Server会自动为此列提供值。

查询结果为:

将显示值插入标识列:

通常情况下,不为标识列指定值,因为SQL Server将自动提供,但是,在某些情况下,可能希望在标识列中插入值,例如数据的迁移。

要为标识列 插入显示值,必须首先执行以下语句:(开启)

若要关闭标识插入,请使用以下语句:(关闭)

以下是在promotions 表中插入标识列的值:

INSERT 一次添加多行数据:

若要一次向表中添加多行数据,请使用以下形式的INSERT语句:

在此语法中,不使用单个值列表,而是使用多个以逗号分隔的值列表进行插入。 使用此形式的 INSERT 语句,一次可以插入的行数为 1000 行

二:INSERT INTO SELECT语句

要将其他表中的数据插入另一个表中,请使用以下SQL Server INSERT INTO SELECT 语句:

在此语法中,查询语句返回的行将插入 target_table 。该查询是从任何其他表中检索数据的有效 SELECT 语句。它必须返回与 column_list 中指定的列对应的数据

以下所写的语句是将customers表中的所有地址都插入到addresses表中:

注:列值要一一对应

三:UPDATE语句

要修改表中的现有数据,请使用以下 UPDATE 语句语法:

在上面语法中:

1.首先,指定要从中更新数据的表的名称;

2.其次,指定要更新的列 c1 ,c2 ... ,cn 和值 v1 ,v2  ... vn 的列表;

3.第三,在 WHERE 子句中指定条件以选择更新的行。WHERE子句是可选的。 如果不指定 WHERE 子 句,则表中的所有行都将更新;

四:DELETE语句

删除表中的现有数据,请使用以下 DELETE 语句语法:

在上面语法中:

1.首先,指定要从中删除数据的表的名称。

2.其次,在 WHERE 子句中指定条件以选择删除的行。WHERE子句是可选的。 如果不指定 WHERE子句,则表中的所有行都将被删除。

总结

到此这篇关于SQL Server修改数据的几种语句的文章就介绍到这了,更多相关SQL Server修改数据内容请搜索我们以前的文章或继续浏览下面的相关文章希望大家以后多多支持我们!

(0)

相关推荐

  • 详解SQL Server如何修改数据库物理文件的存在位置

    前言 大家应该都知道SQL Server创建新库时,默认会把数据存放在C盘中,一旦数据库中的存储数据多了以后,C盘的空间就会所剩无几.解决方案是将存放数据的物理文件迁移到其他盘. 具体流程为: 1.将现有的数据库脱机 ALTER DATABASE DB1 SET OFFLINE WITH ROLLBACK IMMEDIATE; 2.将数据库文件移到新的位置 文件复制完成以后需要:右键-属性-安全-在组或用户名处添加Authenticated Users-更改该组权限为完全权限,否则接下来的操作会

  • SqlServer修改数据库文件及日志文件存放位置

    --查看当前的存放位置 select database_id,name,physical_name AS CurrentLocation,state_desc,size from sys.master_files where database_id=db_id(N'数据库名'); --修改文件的存放位置下次启动生效 --testDb为数据库名, alter database 数据库名 modify file ( name = 文件名(不包含后缀), filename = '文件存储路径'); a

  • SqlServer编写数据库表的操作方式(建库、建表、修改语句)

    学习要点: SQL之-建库.建表.建约束.关系SQL基本语句大全.txt举得起放得下叫举重,举得起放不下叫负重.头要有勇气,抬头要有底气.学习要加,骄傲要减,机会要乘,懒惰要除.人生三难题:思,相思,单相思. SQL之-建库.建表.建约束.关系.部分T-sql语句 ---创建库 创建库之前 先进行 查看数据库中是否 已存在 次数据库 有便删除 --- if exists(select * from sys.sysdatabases where name='ConstructionDB')begi

  • SQL Server修改数据的几种语句详解

    目录 一:INSERT语句 二:INSERT INTO SELECT语句 三:UPDATE语句 四:DELETE语句 总结 本篇主要讲解的是SQL Server 中修改数据的几种语句: INSERT语句 INSERT INTO SELECT语句 UPDATE语句 DELETE语句 一:INSERT语句 INSERT语句向表中添加新行,以下是INSERT语句的最基本形式: 首先:table_name指定要插入的表的名称: 其次,column_list指定要在其中插入数据的一个或多个列的列表.必须将

  • SQL Server中identity(自增)的用法详解

    一.identity的基本用法 1.含义 identity表示该字段的值会自动更新,不需要我们维护,通常情况下我们不可以直接给identity修饰的字符赋值,否则编译时会报错 2.语法 列名 数据类型 约束 identity(m,n) m表示的是初始值,n表示的是每次自动增加的值 如果m和n的值都没有指定,默认为(1,1) 要么同时指定m和n的值,要么m和n都不指定,不能只写其中一个值,不然会出错 3.实例演示 不指定m和n的值 create table student1 ( sid int p

  • Sql Server 开窗函数Over()的使用实例详解

    利用over(),将统计信息计算出来,然后直接筛选结果集 declare @t table( ProductID int, ProductName varchar(20), ProductType varchar(20), Price int) insert @t select 1,'name1','P1',3 union all select 2,'name2','P1',5 union all select 3,'name3','P2',4 union all select 4,'name4

  • 使用Java构造和解析Json数据的两种方法(详解二)

    JSON(JavaScript Object Notation) 是一种轻量级的数据交换格式,采用完全独立于语言的文本格式,是理想的数据交换格式.同时,JSON是 JavaScript 原生格式,这意味着在 JavaScript 中处理 JSON数据不须要任何特殊的 API 或工具包. 在www.json.org上公布了很多JAVA下的json构造和解析工具,其中org.json和json-lib比较简单,两者使用上差不多但还是有些区别.下面接着介绍用org.json构造和解析Json数据的方法

  • 使用Java构造和解析Json数据的两种方法(详解一)

    JSON(JavaScript Object Notation) 是一种轻量级的数据交换格式,采用完全独立于语言的文本格式,是理想的数据交换格式.同时,JSON是 JavaScript 原生格式,这意味着在 JavaScript 中处理 JSON数据不须要任何特殊的 API 或工具包. 在www.json.org上公布了很多JAVA下的json构造和解析工具,其中org.json和json-lib比较简单,两者使用上差不多但还是有些区别.下面首先介绍用json-lib构造和解析Json数据的方法

  • Pandas保存csv数据的三种方式详解

    目录 方法一 方法二 方法三 补充 方法一 import os import pandas as pd path = 'data/train/' img_label_list=[] testList = os.listdir(path) for file in testList: label='aa' img_label_list.append([file, label]) df1 = pd.DataFrame(data=img_label_list, columns=['id', 'label

  • SQL Server中row_number分页查询的用法详解

    ROW_NUMBER()函数将针对SELECT语句返回的每一行,从1开始编号,赋予其连续的编号.在查询时应用了一个排序标准后,只有通过编号才能够保证其顺序是一致的,当使用ROW_NUMBER函数时,也需要专门一列用于预先排序以便于进行编号. ROW_NUMBER() 说明:返回结果集分区内行的序列号,每个分区的第一行从1开始. 语法:ROW_NUMBER () OVER ([ <partition_by_clause> ] <order_by_clause>) . 备注:ORDER

  • SQL Server中的排名函数与分析函数详解

    一.排名开窗函数概述 SQL Server的排名函数是对查询的结果进行排名和分组,TSQL共有4个排名函数,分别是:ROW_NUMBER.RANK.DENSE_RANK和NTILE. 他们和OVER()函数搭配使用,按照特定的顺序排名. 排名开窗函数可以单独使用ORDER BY 语句,也可以和PARTITION BY同时使用. PARTITION BY用于将结果集进行分组,开窗函数应用于每一组. ODER BY 指定排名开窗函数的顺序.在排名开窗函数中必须使用ORDER BY语句. 1.ROW_

  • Sql server中内部函数fn_PhysLocFormatter存在解析错误详解

    前言 有网友指出,SQL Server 2012中fn_PhysLocFormatter内部函数在解析数据行记录位置时存在错误,见:http://www.itpub.net/thread-1751655-1-1.html,实际测试后发现,一是2008R2中同样存在问题,二是不仅页号解析存在问题,槽号解析也存在同样问题. 下面先查看表NT_SiteInfo的数据行记录位置. select SiteID,%%physloc%%,sys.fn_PhysLocFormatter(%%physloc%%)

  • SQL Server中日期时间函数的用法详解

    1.getdate():获取当前日期 返回当前SQLServer服务器所在计算机的日期和时间.返回值舍入到最近的秒小数部分,精度为.333秒数据库十七偏移量不包含在内. select getdate() --输出 2013-03-09 15:16:00.570 2.getutcdate():获取UTC时间值 select GETUTCDATE() -- 2013-06-18 08:02:53.253 3.year():获取年度信息 year函数以int数据类型的格式返回特定日期的年度信息.其中的

随机推荐