开发者社区> 余二五> 正文
阿里云
为了无法计算的价值
打开APP
阿里云APP内打开

使用T-SQL语句插入、更新、删除数据表

简介:
+关注继续查看

    在对数据进行管理时,使用SSMS进行数据维护有可视化、方便的优点,但是在批量维护或重复维护时,使用SSMS就不方便了,还容易出错,这就需要编写SQL语句对数据库进行维护



SQL和T-SQL

    SQL是Structured Query Language的缩写,即结构化查询语言,是关系数据库的标准语言。如今Oracle、Sybase、Informix、SQL Server这些大型数据库管理系统都支持SQL作为查询语言

    T-SQL是SQL的加强版,除了标准的SQL命令外,还支持类似于程序语言的基本功能,如流量控制、变量说明、功能函数等

    T-SQL语言主要由以下几部分组成:

  DML(Data Manipulation Language,数据操纵语言):用来查询、插入、删除、修改数据库中的数据,如select、insert、update、delete

  DDL(Data Definition Language,数据定义语言):用来建立数据库、数据库对象和定义其列,大部分命令以create开头的命令,如create、alter、drop

  DCL(Data Control Language,数据控制语言):用来控制数据库组件的存取许可、存取权限等,如grant、revoke


插入数据(INSERT)

    使用INSERT语句将数据库插入到表中,语法格式如下:

insert [into] 表名 [列名] values 值列表

其中

* into是可选的,可省略

* 表名是必须的,而表的列名是可选的,如省略,值列表的顺序与数据表中字段顺序保持一致

* 多个列名和值列表用逗号分隔


例如:向学生成绩表中插入一行数据,可以使用如下T-SQL语句

   SQL语句的执行一般在查询窗口中进行,单击“新建查询”按钮,选择数据库,输入SQL语句,如下图所示:


e6524d25b92af0298267d12b4f3e0fb4.png


    在SSMS中单击“√”,系统会检查输入的T-SQL语句是否有语法错误,之后会显示分析结果,如果无误,单击执行,可以执行T-SQL语句,然后显示执行结果,如下图所示:

91e731f4f9129426fac11bd559f5c458.png


    在插入数据时,需要注意以下事项:

(1)每次插入一整行数据,不可能只插入半行或者几列数据

(2)数据值的数目必须与列数相同,每个值的数据类型、精度、小数位也不需与相应的列匹配

(3)对于字符类型的列,必须使用单引号

(4)插入的数据项要求符合CHECK约束的要求



更新数据(UPDATE)

    使用UPDATE语句更新表中的数据,语法格式如下:

update 表名 set 列名=更新值 [where 更新条件]

其中

* set后面可以紧随多个数据列的更新值,不限一个

* where是可选的,用来限制条件,如果不限制,整个表所有数据行都将被更新


例如:更改学生成绩表中学生杨凡的CNT为95,SQL为77,可以使用如下T-SQL语句,如下图所示

c83e49a38c1a4f3696c241e11280ec71.png



删除数据

(1)使用DELETE语句删除表中的数据

    delete语法格式如下

delete from 表名 [where 删除条件]

* 如果不用where,将删除表中所有数据


例如:删除学生成绩表中学生张三的记录,可以使用如下T-SQL语句

7f6de80c653d0f5d8b833e82cea3df8b.png


注意:delete语句用于删除整条记录,不会只删除单个字段,所以在delete后面不能出现字段名


(2)使用Truncate table语句删除表中的数据

    Truncate table语句用来删除表中所有行,功能上类似于,没有where子句的delete语句, Truncate table语法格式如下:

truncate table 表名


Truncate table语句与DELETE语句的区别如下:

 Truncate table语句不带where,只能将整个表数据清空,而DELETE语句可以按照条件删除某些记录

 Truncate table语句不记录事务日志,删除后无法通过事务日志恢复;而DELETE语句每删除一行记录,都会记录一条事务日志。

 Truncate table语句不能用于有外键约束引用的表,这种情况下,需要使用DELETE语句

    综上所述,Truncate table语句执行速度更快,在情况大量数据表作业时,DBA常用此语句,但在执行前要确保数据可以删除,否则无法恢复











本文转自 杨书凡 51CTO博客,原文链接:http://blog.51cto.com/yangshufan/1983937,如需转载请自行联系原作者

版权声明:本文内容由阿里云实名注册用户自发贡献,版权归原作者所有,阿里云开发者社区不拥有其著作权,亦不承担相应法律责任。具体规则请查看《阿里云开发者社区用户服务协议》和《阿里云开发者社区知识产权保护指引》。如果您发现本社区中有涉嫌抄袭的内容,填写侵权投诉表单进行举报,一经查实,本社区将立刻删除涉嫌侵权内容。

相关文章
jdbc连接mysql进行增加数据,更新数据,删除数据
mysql8.0以上大家一定加载8.0的驱动才不会报错,或者出现连接的时候出现null,8.0多了个时区的玩意(一定要特别注意)
17 0
使用jdbc对数据库增删改查
使用jdbc对数据库增删改查
27 0
MySQL插入、更新、删除数据
MySQL插入、更新、删除数据
45 0
SQL Server语句大全(增删改查数据、创建表、删除表、修改表)
SQL Server语句大全(增删改查数据、创建表、删除表、修改表)
121 0
abap代码使用sql语句删除自定义表的1条数据
自定义表,指的是abap开发人员使用SE11创建的透明表。既然是自己创建的表,那么增删改查的时候,基本上很自由,至少可以随意使用sql语句对表的内容进行处理。那么,对于这种情况,如何删除数据呢?如下图,是表的内容,红框中的数据,是我们打算删除的内容:删除一条记录。
1908 0
C#使用SqlBulkCopy将DataTable写入数据库的表中(表不存在则创建新表,数据存在则更新,不存在则插入)
原文:.net使用SqlBulkCopy导入数据(创建新表) .net2.0后ado.net提供了一个快速导入sqlserver的方法sqlbulkcopy.导入效率非常高.  包装了一个简单的sqlbulkcopy类,用于数据从datatable导入到sqlserver.
2977 0
SQL 批量删除数据表
declare @name varchar(200) while(exists(select * from sysobjects where name like '表名前缀%')) begin select @name=name from sysobjects where name lik...
617 0
sql删除数据库所有表
use 数据库名(是要删除表的所在的那个数据库的名称) GO declare @sql varchar(8000) while (select count(*) from sysobjects where type='U')>0 begin SELECT @sql='drop tabl...
672 0
SQLite数据库中的SQL语句及使用
一.如何获取SQLite最新版本 官方站点:http://www.sqlite.org/ 从http://www.sqlite.org/网站的Download页面获取 二.Windows下的SQLite的源代码是哪个软件压缩包? sqlite-amalgamation-3_6_22.
2058 0
+关注
文章
问答
文章排行榜
最热
最新
相关电子书
更多
低代码开发师(初级)实战教程
立即下载
阿里巴巴DevOps 最佳实践手册
立即下载
冬季实战营第三期:MySQL数据库进阶实战
立即下载