首页 > 数据库 >6.3 SQL Server删除数据

6.3 SQL Server删除数据

时间:2022-08-18 09:45:19浏览次数:50  
标签:语句 TRUNCATE 删除 Server 6.3 SQL DELETE

SQL Server DELETE

目录

SQL Server DELETE语句简介

要从表中完全删除一行或多行,可以使用DELETE语句。语法:

DELETE [ TOP ( expression ) [ PERCENT ] ]  
FROM table_name
[WHERE search_condition];

首先在FROM子句中指定要删除数据的表。
如下将会删除target_table表中所有数据:

DELETE FROM target_table;

其次,要指定将被删除的随机行的数量或百分比,可以使用TOP子句。
移除随机10条数据:

DELETE TOP 10 FROM target_table;  

由于该表按未指定的顺序存储其行,因此我们不知道将删除哪些行,但我们可以确定将删除的行数为10。
删除百分之10:

DELETE TOP 10 PERCENT FROM target_table;

实际上几乎不会删除所有行,而只是删除一行或者几行,这种情况下,需要通过WHERE子句指定条件。

SQL Server DELETE语句示例

假设有一张名为products的表。
以下DELETE语句从products表中删除21个随机行:

DELETE TOP (21)
FROM products;

随机删除百分之5的行:

DELETE TOP (5) PERCENT
FROM products;

删除满足条件的行:
假设存在UserInfo(用户信息)表

-- 删除用户表中的数据
delete from Userinfo
select * from UserInfo -- 查询用户表
-- 删除张三,李四两位用户
Delete from UserInfo where UserName='张三' or UserName= '李四'
-- in:在...里面
delete from UserInfo where UserName in('张三','李四')
-- 删除用户编号为:4,5,6 并且 性别 =3 的用户信息
delete from UserInfo where Id in('4','5','6') and Sex='3'
或者
delete from UserInfo where Id in(4,5,6) and Sex=3

注意:什么情况下,一定需要加引号?

  • 字符串,一定需要加引号,还有日期,时间,中文
  • 数字:可加可不加, 建议不要加

删除所有行:

DELETE FROM  products;

TRUNCATE

示例

TRUNCATE TABLE products;

TRUNCATE与DELETE的区别

  • truncate是真正意义上的清空,不能加任何查询条件,自增id会重置
  • delete只是删除数据,如果Id是自增,则自增种子不会从头开始。

请注意,如果要从大表中删除所有行,则应使用TRUNCATE TABLE语句,该语句速度更快、效率更高。

标签:语句,TRUNCATE,删除,Server,6.3,SQL,DELETE
From: https://www.cnblogs.com/michaelshen/p/16597639.html

相关文章

  • 记录QT QSqlDatabase SQLite 多线程使用时报错..
    首先QSqlDatabase同一个实例,不能多线程使用.如果多线程使用,需要给每个线程创建一个QSqlDatabase实例,一般是用Map维护各个线程实例链接,key是线程ID,value就是QSqlDa......
  • 对于不返回任何键列信息的 selectcommand 不支持 updatecommand 的动态 sql 生成
    大家知道,DataSet保存的数据是位于服务器内存里面的原数据库的“副本”。所以用DataSet更新数据的过程就是先对“副本”进行更新,然后在将“原本”更新,按照我的理解就是把“......
  • 【2022.8.17】MySQL数据库(4)
    学习内容概要操作表的SQL语句补充表查询关键字selectfromwheregroupbyhavingdistinctorderbylimitregexpSQL语句中也支持写类似......
  • mysql时间相减获取秒数
    anstime_to_sec(timediff(endTime,startTime))timestampdiff(second,startTime,endTime)unix_timestamp(endTime)-unix_timestamp(startTime)tipsmysql的时间相......
  • Spring Boot 2.x基础教程:使用MyBatis访问MySQL
    虽然SpringDataJPA在国外广泛流行,但是在国内还是MyBatis的天下。所以,今天这篇我们将具体说说如何在SpringBoot中整合MyBatis完成关系型数据库的增删改查操作。整合MyBa......
  • mysql/表sql语句补充/关键字查询
    操作表的SQL语句补充alter1.修改表名 altertable表名rename新表名;2.新增字段 altertableadd字段名字段类型(数字)约束条件3.新增指定字段排在第一位 ......
  • 【Mybatis】动态SQL
    目录动态SQLif语句动态SQLif+where语句动态SQLif+set语句动态SQLchoose(when,otherwise)语句动态SQLtrim语句动态SQLSQL片段动态......
  • MySQL查询关键数据方法
    MySQL查询关键数据方法操作表的SQL语句补充1.修改表名 altertable表名reame新表名;2.新增字段名 altertable表名add字段名字段类型(数字)约束条件;#默认队尾......
  • SQLMAP系列强化
    案例1:DC-9图1:尝试‘or1=1--+    //判断存在注入kali中使用sqlmap工具跑就完了sqlmap-u"http://192.168.178.135/results.php"--data"search=1" ......
  • 20220817 第一组 于芮 mysql数据库查询(第三十四天)
     小白成长记——第三十四天   今天主要学习了mysql数据库的查询语句,对于一个合格的程序猿来说,掌握数据库的查询语句是非常重要的,所以今天不仅学习了理论知识,还作了......