当前位置:首页 > 技术与方案 > 数据库技术相关

如何从SQL表中删除数据

(2012-09-24 20:01:55)

很多时候,我们都需要从关系数据库中删除掉陈旧过时的信息。所幸的是,结构化查询语言提供了一个DELETE命令,用于灵活地删除储存在一个表内的部分或全部信息。

 

让我们来看看该命令的语法:

DELETE FROM
{table name | view name}
[WHERE search_conditions]

命令本身十分简单:其中只有两个变量,一个是需要删除信息的表或视图,另一个是搜索条件。

我们先来谈谈删除的对象。依照ANSI SQL标准,我们既可以选择一个表格中删除数据也可以选择从一个视图中删除数据。不管怎样,强烈建议读者尽量避免对一个视图使用DELETE命令(出于同样的原因,也尽可能避免对视图使用任何数据处理的命令)。某些版本的SQL可能不支持这个语法,因此,对视图的修改可能会导致一些难以预料的错误。

earch_conditions参数对于SQL的初学者来说也并不新奇――它和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)

林小斌同学由于学习成绩非常优秀被批准提前毕业。因此,我们需要把他从数据库中删除。作为一个使用SQL的老手,我们知道当我们想要选择一个单独的记录时,一定要谨慎的运用搜索条件中的主关键词(primary key),以防不小心删除了相似的记录。以下是我们使用的语法:

DELETE FROM students

WHERE id = 421

修改后表格的内容如下:

first_namelast_nameid

小马任321

小安彭131

小超白190

小军史243

小明张273

现在让我们来尝试一些稍微复杂一点的操作――删除学号介于240至290间的所有学生。以下是该操作的SQL脚本:

 

WHERE id BETWEEN 240 AND 290

修改后的新表格如下:

 

 

 

 

最后,我们很遗憾告诉大家,由于入学人数过少,学校不得不倒闭了。为了尊重学生的隐私,我们需要删除表格中的所有数据。相关的SQL命令脚本如下:

 

以上是对DELETE语句的一个简单介绍,经常上IT专家网查看关于数据库方面的新文章,可以学习到更多关于SQL语句的知识。

 

更多
关闭窗口 打印 
网站首页    -    联系我们    -   收藏本站    -    网站地图                                                               客户服务热线:0571-85023000
本网站所有网页信息已申请知识产权和著作权保护,版权归四海光纤公司所有,未经授权禁止任何人复制或镜像,违者必究。
公司主营:杭州光纤光缆视频会议系统,是专业的通信网络工程、视频会议系统建设专家

中华人民共和国备案号:浙ICP备10018243号