转至繁体中文版     | 网站首页 | 图文教程 | 资源下载 | 站长博客 | 图片素材 | 武汉seo | 武汉网站优化 | 
最新公告:     敏韬网|教学资源学习资料永久免费分享站!  [mintao  2008年9月2日]        
您现在的位置: 学习笔记 >> 图文教程 >> 数据库 >> MySql >> 正文
MySQL教程之删除或更新现有记录         ★★★★

MySQL教程之删除或更新现有记录

作者:闵涛 文章来源:闵涛的学习笔记 点击数:542 更新时间:2009/4/22 20:43:34
1.4.9 删除或更新现有记录
    有时,希望除去某些记录或更改它们的内容。DELETE 和UPDATE语句令我们能做到这一点。
    DELETE 语句有如下格式:
    DELETE FROM tbl_nameWHERE 要删除的记录
    WHERE 子句指定哪些记录应该删除。它是可选的,但是如果不选的话,将会删除所有的记录。这意味着最简单的DELETE 语句也是最危险的。
   DELETE FROM tb1_name
   这个查询将清除表中的所有内容。一定要当心!为了删除特定的记录,可用WHERE 子句来选择所要删除的记录。这类似于SELECT 语
句中的WHERE 子句。例如,为了删除president 表中所有出生在Ohio 的总统记录,可用下列查询:

   DELETE 语句中的WHERE 子句的一个限制是只能够引用要删除记录的表中的列。在发布DELETE 语句以前,最好用SELECT 语句测试一下相应的WHERE 子句以确保实际删除的记录就是确实想要删除的记录(而且只删除这些记录)。假如想要删除Te d d yRoosevelt 的记录。下面的查询能完成这项工作吗?

    是的,感觉上它能删除您头脑中打算删除的记录。但是,错了,实际上它也能删除Franklin Roosevelt 的记录。如果首先用WHERE 子句检查一下就安全了,如下所示:

    现在我们明白了能选择出所需记录的WHERE 子句了,因此DELETE 查询可正确地构造如下:

    似乎删除一个记录需要做许多工作,不是吗?但是安全第一!(如果想使键盘输入工作尽量少,可利用拷贝和粘贴技术或采用输入行编辑技术。更详细的信息,请参阅“与mysql交互的技巧”一节。)为了修改现有记录,可利用UPDATE语句,它具有下列格式:
UPDATEt b l_name SET 要更改的列WHERE 要更新的记录这里的WHERE 子句正如DELETE 语句一样,是可选的,因此如果不指定的话,表中的每个记录都被更新。下面的查询将每个学生的名字都更改为“ G e o rg e”:

    显然,对于这样的查询必须极为小心。一般对正在更新的记录要更为小心。假定近来增加了一个新记录到历史同盟,但是只填写了此实体的少数几个列:

    然后意识到忘了设置其会员终止日期。那么可如下进行设置:

    可同时更新多个列。下面的语句将更新Jerome 的电子邮件和通信地址:

    还可以通过设置某列的值为NULL(假设此列允许NULL 值)“不设置”此列。如果在未来的某个时候Jerome 决定支付成为终生会员的会员资格更新费,那么可以设置其记录的终止日期为NULL(“永久”)以标记他为终生会员。具体设置如下:

    正如DELETE 语句一样,对于UPDATE,用SELECT 语句测试WHERE 子句以确保选择正确的更新记录是一个好办法。如果选择条件范围太窄或太宽,就会使更新的记录太少或太多。如果您试验过本节中的查询,那么必定已经删除和修改了samp_db 表中的记录。在继续学习下一节的内容以前,应该撤消这些更改。按1. 4 . 7节“增加新记录”最后的说明重新装载表的内容来完成这项工作。
    1.4.10 改变表的结构
    回顾我们创建历史同盟member 表时缺了一个会员号列,因此我们可以进行一次ALTE RTABLE 语句的练习。需要用ALTER TABLE,可以对表重新命名,增加或删除列,更改列的类型等等。这里给出的例子是关于怎样增加新列的。有关ALTER TABLE 功能的详细内容,请参阅第3章。增加会员号列到member 表的主要考虑是,其值应该是唯一的,以免各会员条目混淆。AUTO_INCREMENT 列在此是很有用的,因为我们可以在增加新的号码时令MySQL自动地生成唯一的号码。在CREATE TABLE 语句中,这样一个列的说明如下:

    对于ALTER TABLE,相应的句法也是类似的。可执行下列查询增加该列:

    我们已经有一个存放会员号的列,现在怎样分配会员号给member 表中的现有记录呢?很容易!MySQL已经做了这项工作。在增加一列到某个表时, MySQL将会用缺省值初始化该列值。对于AUTO_INCREMENT 列,每个行将会产生一个新的顺序号。


没有相关教程
教程录入:mintao    责任编辑:mintao 
  • 上一篇教程:

  • 下一篇教程:
  • 【字体: 】【发表评论】【加入收藏】【告诉好友】【打印此文】【关闭窗口
      注:本站部分文章源于互联网,版权归原作者所有!如有侵权,请原作者与本站联系,本站将立即删除! 本站文章除特别注明外均可转载,但需注明出处! [MinTao学以致用网]
      网友评论:(只显示最新10条。评论内容只代表网友观点,与本站立场无关!)

    同类栏目
    · Sql Server  · MySql
    · Access  · ORACLE
    · SyBase  · 其他
    更多内容
    热门推荐 更多内容
  • 没有教程
  • 赞助链接
    更多内容
    闵涛博文 更多关于武汉SEO的内容
    500 - 内部服务器错误。

    500 - 内部服务器错误。

    您查找的资源存在问题,因而无法显示。

    | 设为首页 |加入收藏 | 联系站长 | 友情链接 | 版权申明 | 广告服务
    MinTao学以致用网

    Copyright @ 2007-2012 敏韬网(敏而好学,文韬武略--MinTao.Net)(学习笔记) Inc All Rights Reserved.
    闵涛 投放广告、内容合作请Q我! E_mail:admin@mintao.net(欢迎提供学习资源)

    站长:MinTao ICP备案号:鄂ICP备11006601号-18

    闵涛站盟:医药大全-武穴网A打造BCD……
    咸宁网络警察报警平台