Chinaunix首页 | 论坛 | 博客
  • 博客访问: 4040888
  • 博文数量: 366
  • 博客积分: 9916
  • 博客等级: 中将
  • 技术积分: 7195
  • 用 户 组: 普通用户
  • 注册时间: 2011-05-29 23:27
个人简介

简单!

文章分类

全部博文(366)

文章存档

2013年(51)

2012年(269)

2011年(46)

分类: Mysql/postgreSQL

2012-11-15 13:42:34

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

  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

阅读(13629) | 评论(0) | 转发(1) |
给主人留下些什么吧!~~