壹尔网-为科技而来卓航科技
  • 微信客服微信客服
  • 微信客服微信客服
您现在的位置是:首页 > 知识

sql删除表的命令(数据库清空表的命令)

时间:2024-11-22作者:依陆分类:知识浏览:12098评论:0

sql删除表的命令

讲讲DELETE 删除语句,用来删除表中的一条或多条记录。

sql删除表的命令(数据库清空表的命令)

基本语法:

DELETE FROM表名; WHERE筛选条件;

1、DELETE语句

如果省略WHERE条件,这时候DELETE就会删除整个表的记录。

注意:这里不是删除表,只是删除表中所有数据,还会保留表结构的。

实例:删除Teachers表中所有记录。

DELETE FROM Teachers;

如果遇到这个错误:

You are using safe update mode and you tried to update a table without a WHERE that uses a KEY column

解决方案:

出现错误是因为Workbench默认开启了Safe Updates功能,不允许随便修改删除记录,我们先关闭该功能。

在 MySQLWorkbench-Preferences-SQL Editor-将Safe Updates前面的勾去掉。再重启Workbench软件就可以了。

加上WHERE条件,就只会删除符合条件的记录。

实例:删除Students学生表中,生日Sage为1995-06-15的记录。

DELETE FROM Students WHERE Sage = "1995-06-15";

可以看到最下面的运行结果,显示2条被删除了。

如果没有运行界面,可以点击WorkBench的右上角,点击中间的这个图标就可以了。

2、恢复数据库

粘贴下面的语句:

-- 删除数据库 DROP database School -- 创建数据库 CREATE database School; -- 选择数据库 USE School; -- 创建学生表 Students: CREATE TABLE Students( Sid INT , Sname VARCHAR(10), Sage DATETIME, Ssex VARCHAR(10), Tid INT); -- 插入语句 INSERT INTO Students VALUES (1 , '宁一' , '1995-06-15' , '女',1), (2 , '宁儿' , '1995-03-16' , '女',1), (3 , '宁散' , '1995-05-19' , '男',1), (4 , '凝思' , '1995-06-18' , '女',1), (5 , '宁武' , '1995-06-15' , '男',1), (6 , '宁柳' , '1994-12-01' , '男',1), (7 , '柠七' , '1999-02-12' , '女',2), (8 , '凝八' , '1999-03-03' , '男',2), (9 , '柠九' , '1999-03-04' , '女',2), (10 , '宁时' , '1999-07-12' , '男',2); -- 创建成绩表 Scores CREATE TABLE Scores( Sid INT, Cid INT, score DECIMAL(18,1)); -- 插入语句 INSERT INTO Scores VALUES (1, 1 , 100),(1 , 2 , 90), (1, 3 , 99), (2 , 1 , 80), (2, 2 , 59), (2 , 3 , 88), (3, 1 , 81), (3 , 2 , 79), (3, 3 , 61), (4 , 1 , 50), (4, 2 , 48), (4 , 3 , 90), (5, 1 , 76), (5 , 2 , 87), (5, 2 , 99), (6 , 1 , 91), (6, 2 , 94), (6 , 3 , 90), (7, 1 , 89), (7 , 2 , 21), (8, 1 , 93), (8 , 2 , 88), (9, 1 , 91), (9 , 2 , 88), (10, 1 , 71), (10 , 2 , 88); -- 创建科目表 Courses CREATE TABLE Courses( Cid INT, Tid INT, Cname VARCHAR(10)); -- 插入语句 INSERT INTO Courses VALUES (1, 2, '语文'), (2, 1, '数学'), (3, 3, '英语'); -- 创建教师表 Teachers CREATE TABLE Teachers( Tid VARCHAR(10), Tname VARCHAR(10)); -- 插入语句 INSERT INTO Teachers VALUES (1, '张三'), (2, '李四'), (3, '王五’);

数据库清空表的命令

MySQL中除了DELETE语句可以删除数据外,在MySQL中还可以利用TRUNCATE清空指定数据表中的所有数据。执行语句是

TRUNCATE [table] 表名

需要注意的是,TRUNCATE操作虽然与DELETE非常相似,但是两者在本质上有一定的区别,具体如下。

实现方式不同:truncate本质上先执行删除(DROP)数据表的操作,然后在根据有效的表结构文件(.frm)重新创建数据表的方式来实现数据清空操作。而DELETE语句则是逐条的删除数据表中保存的记录。

执行效率不同:在针对大型数据表(如千万级的数据记录)时,TRUNCATE清空数据的实现方式决定了它比DELETE语句删除数据的方式执行效率更高。

对AUTO_INCREMENT的字段影响不同:TRUNCATE清空数据后,再次向表中添加数据,自动增长字段会从默认的初始值开始,而使用DELETE语句删除表中的数据时,则不影响自动增长值。

删除数据的范围不同:TRUNCATE语句只能清空表中所有记录,而DELETE语句可通过WHERE指定删除满足条件的部分记录。

返回值含义不同:TRUNCATE操作的返回值一般是无意义的,而DELETE语句则会返回符合条件被删除的记录数。

所属SQL语言的不同组成部分:DELETE语句数据DML数据操作语句,而TRUNCATE通常被认为是DDL数据定义部分。

拓展:

数据定义语言(Data Definition Language,DDL),用于定义和管理对象,例如数据库、数据表以及视图,例如:CREATE、DROP、ALTER等语句。

数据操作语言(Data Manipulation Language,DML),用于操作数据库对象所包含的数据,例如:INSERT(插入)、UPDATE(修改)、DELETE(删除)语句。

数据查询语言(Data Query Language,DQL),例如:SELECT语句。

数据控制语言(Data Control Language,DCL),用于控制对数据库对象操作的权限,例如:GRANT、REVOKE、COMMIT、ROLLBACK等语句。

文章版权声明:除非注明,否则均为壹尔网原创文章,转载或复制请以超链接形式并注明出处。
相关推荐

猜你喜欢