To be a better coder
分类: Mysql/postgreSQL
2016-11-25 10:11:52
原文地址:从SQL表中删除数据 作者:txgc_wm
DELETE FROM {table name | view name} [WHERE search_conditions] |
命令本身十分简单:其中只有两个变量,一个是需要删除信息的表或视图,另一个是搜索条件。
依照ANSI SQL标准,我们既可以选择一个表格中删除数据也可以选择从一个视图中删除数据。不管怎样,建议读者尽量避免对一个视图使用DELETE命令(出于同样的原因,也尽可能避免对视图使用任何数据处理的命令)。某些版本的SQL可能不支持这个语法,因此,对视图的修改可能会导致一些难以预料的错误。
search_conditions参数和SELECT语句中用到的 search_conditions参数格式相同。其中可以使用任何比较操作符来限制从表格中删除的数据。注意,search_conditions事实上是一个可选项(因此用方括号括起),省略将会会删除整个表格的内容。
首先,我们要创建一个表格,并添加一些数据——为一所高中创建一个学生名录。根据数据库管理系统,执行以下的SQL代码:
CREATE TABLE students ( first_name varchar(50), last_name varchar(50), id integer PRIMARY KEY ) INSERT INTO students VALUES ('小明', '张', 273) INSERT INTO students VALUES ('小马', '任', 321) INSERT INTO students VALUES ('小军', '史', 243) INSERT INTO students VALUES ('小安', '彭', 131) INSERT INTO students VALUES ('小超', '白', 190) INSERT INTO students VALUES ('小斌', '林', 421) |
1.删除一个单独的记录时,一定要谨慎的运用搜索条件中的主关键词(primary key),防止不小心删除了相似的记录。以下是我们使用的语法:
DELETE FROM students
WHERE id = 421
修改后表格的内容如下:
first_namelast_nameid
小马任321
小安彭131
小超白190
小军史243
小明张273
2.删除学号介于240至290间的所有学生,以下是该操作的SQL脚本:
DELETE FROM students
WHERE id BETWEEN 240 AND 290
修改后的新表格如下:
first_name last_name id
小安彭131
小超白190
小马任321
3.删除表格中的所有数据,相关的SQL命令脚本如下:
DELETE FROM students