在 T-SQL 语言中,删除数据可以使用 DELETE 语句来实现。
使用 DELETE 语句删除数据
语法格式
DELETE [ TOP ( expression ) [ PERCENT ] ]
[FROM] table_or_view_name /*从表或视图名*/
[ WHERE <search_condition>] /*指定条件*/
[;]
参数说明
:
TOP ( expression ) [ PERCENT ]
:指定将要删除的任意行数或任意行的百分比。 expression可以为行数或行的百分比。
FROM
:可选的关键字,可用在 DELETE 关键字与目标 table_or_view_name 之间。
table_or view_name
:要从其中删除行的表或视图的名称。
WHERE
:指定用于限制删除行数的条件。如果没有提供 WHERE 子句,则 DELETE 删除表中的所有行。
<search_condition>
:指定删除行的限定条件。对搜索条件中可以包含的谓词数量没 有限制。例如,column_name= value。
代码示例
:
在DB数据库中,向学生表中添加一条数据,然后用delete结合条件语句删除
–向学生表中添加一条数据,然后删除该数据
use DB001
go
insert into Student
values('09' , '吴亦凡' , '1990-01-01' , '男','歌手');
go
--查看输入插入后的表格
select * from Student
--删除吴亦凡这一记录
use DB001
go
delete from Student
where SID='09'
--查看输入删除后的表格
select * from Student
在 T-SQL 中,UPDATE 语句可以用来修改表中的数据行。
语法格式
:
UPDATE [ TOP ( expression ) [ PERCENT ] ]
table_or_view_name /*表或视图*/
SET /*赋予新值*/
{
column_name = { expression | DEFAULT | NULL } /*为列重新指定值*/
| @variable = expression /*指定变量的新值*/
| @variable = column = expression /*指定列和变量的新值*/
} [,…n]
[ WHERE <search_condition> ]
[;]
参数说明
:
TOP (expression ) [ PERCENT ]
:指定将要更新的行数或行百分比。expression 可以 为行数或行百分比。
table_or view_name
:要更新行的表或视图的名称。
SET
:指定要更新的列或变量名称的列表。
column_name
:包含要更改的数据的列。column_name 必须已存在于 table_or view_name中。不能更新标识列。
expression
:返回单个值的变量、文字值、表达式或嵌套select 语句(加括号) 。expression 返回的值替换column_name 或@variable 中的现有值。
DEFAULT
:指定用为列定义的默认值替换列中的现有值。如果该列没有默认值并且 定义为允许空值,则该参数也可用于将列更改为 NULL。
@variable
:已声明的变量,该变量将设置为 expression 所返回的值。
SET @variable = column = expression
:将变量设置为与列相同的值。这与 SET @variable =column, column = expression 不同,后者将变量设置为列更新前的值。
WHERE
:指定条件来限定所更新的行。
<search_condition>
:为要更新的行指定需满足的条件。搜索条件也可以是联接所基于的条件。对搜索条件中可以包含的谓词数量没有限制。
代码示例
:
基于数据库DB001,更新Student表SID为‘01’学生的remark字段内容
--更新表格
update Student
set remark='民谣歌手'
where SID ='01'
--查看输入更新后的表格
select * from Student
心得:
1、删除表中的数据,delete后面不能跟具体的列字段名,如果要删除某列可以用where条件约束匹配
2、delete from 后面跟着的是表格
3、SQL还提供了:使用 TRUNCATE TABLE 语句将删除指定表中的所有数据,因此也称其为清除表数据语句。TRUNCATE TABLE 在功能上与没有 WHERE 子句的 DELETE 语句相同;但是, TRUNCATE TABLE 速度更快,使用的系统资源和事务日志资源更少。如果表包含标识列, 该列的计数器重置为该列定义的种子值。如果未定义种子,则使用默认值 1。若要保留标识 计数器,请使用 DELETE