专业只做数据库实训和认证的品牌机构

微信公众号新浪微博
免费咨询电话:400-0909-964
当前位置: 网站首页 > MySQL培训 > MySQL课程 > MySQL培训教程:MySQL修改数据命令

MySQL培训教程:MySQL修改数据命令

文章来源: 更新时间:2016/7/15 14:39:08

在线老师点击咨询:

最新学讯:近期OCP认证正在报名中,因考试人员较多请尽快报名获取最近考试时间,报名费用请联系在线老师,甲骨文官方认证,报名从速!

我要咨询

MySQL培训教程:MySQL修改数据命令,你可以使用几个不同的方法修改表中的数据,最基本的、可能也是最常用的方法就是使用UPDATE语句了。使用这个语句,你能够修改所有的行或是基于WHERE子句的指定记录中的数据。回顾一下以前显示的查询结果,我们可以看到GrahamGreene的作品BrightonRock的版权年份是1937年。这是错误的,实际年份应该是1938年。我们将输入下面的SQL语句,来修改更新这个错误信息:

  1. UPDATE books  
  2. SET pub_year = '1938' 
  3. WHERE book_id = '2';  
  4.  
  5. Query OK, 1 row affected (0.00 sec)  
  6. Rows matched: 1 Changed: 1 Warnings: 0 

首先,我们要声明即将被更新的表名。接下来我们要在SET关键字后面指定将要修改的列以及相应的新值。如果想修改的列不止一列,那么应提供一个由逗号分开的列表,列表中每个列后跟随着等号操作符以及各自的新值。SET只需输入一次即可。

前面的SQL语句中通过WHERE子句指定必需的匹配条件,限定了将要更新的行。在这种情况下,限定条件是针对于不同列的特定值的,因此只修改了一行数据。查询结果显示只有一行数据受影响,一行记录符合条件,一行记录被修改,没有任何问题引发警告信息。

有时,在向表中插入数据时,如果表中已存在此数据,则会引发重复行的问题。例如,假设我们想执行SQL语句,将几本书的相关数据添加到books表中,而其中一本书的数据已存在于表中。如果我们使用INSERT语句,重复行会引发拒绝添加的警告信息。为防止这种情况发生,可以使用REPLACE语句,该语句向表中插入一行新数据,并可以用新数据替代已存在的数据。

从MySQL的角度看,一般情况下,只有在列被定义成惟一值的情况下才会发生重复数据的错误。由于book_id列的值是自动分配的,我们添加记录时不用指定它的值,所以不可能发生重复值的现象。在图书交易中,每本书的唯一性是根据它的ISBN码来区分的,ISBN码就是书后面的条形码。为了确保不会有ISBN码相同的行,我们将再次修改books表,将ISBN列设置成UNIQUE列,该列的值必须是唯一的。使用此种方式,我们就不会在不经意中多次为一本书添加数据了:

  1. ALTER TABLE books  
  2. CHANGE COLUMN isbn isbn VARCHAR(20) UNIQUE

现在我们已经准备好添加更多图书的数据,而不必担心由于ISBN码重复而带来的重复行问题。下面的例子中,我们试图将GrahamGreene的二个作品数据添加到books表中,而其中一本已经存在于表中:

  1. REPLACE INTO books  
  2. (title, author_id, isbn, genre, pub_year)  
  3. VALUES('Brighton Rock',1,'0099478471','novel','1938'),  
  4. ('The Quiet American',1,'0099478393','novel','1955'); 

REPLACE语句与INSERT语句的语法是相同的。注意,我们在一条语句中添加了二行记录。如果想使用INSERT语句添加更多的记录,使用的语法和上面的相同。如上面显示的,每行数据都列在圆括号中,并且值与值间用逗号分隔。在上例中,表中已存在ISBN码为0099478471的图书数据(例如:BrightonRock),因此新数据会替代表中已存在的数据。目前表中没有Greene的作品TheQuietAmerican的记录,因此,该数据将被添加到表中。

本文地址:http://www.cuug.com.cn/mysql/kecheng/12481437161.html 转载请注明!


在线预约 抢先报名 获取课程排期

Oracle培训机构

金牌讲师<>

冉乃纲-老师CUUG金牌讲师
冉老师 CUUG金牌讲师 Oracle及RedHat高级讲师、Unix/Linux 资深专家...[详细了解老师]

免费咨询上课流程 客服在线中

陈卫星-老师CUUG金牌讲师
陈老师 CUUG金牌讲师 精通Oracle管理、备份恢复、性能优化 11年Ora...[详细了解老师]

免费咨询上课流程 客服在线中

选学校如何选择适合自己的学校

CUUG -CHINA UNIX USER GROUP,是国际UNIX组织UNIFORUM的中国代表,是国内悠久的专业UNIX培训机构,被誉为中国UNIX 的摇篮。多年来,以提高教学质量为本,强调素质教育,积极引进、消化国外的新技术,有效的结合中国....[详情]

一站式服务(从入学到就业一帮到底)

入学

学习

就业

实操

食宿
地址:北京市海淀区田村山南路35号院17号楼
课程咨询:010-59426307 010-59426319 400-0909-964
企业服务:137 1818 8639(陈经理)
部分信息来源于网络,如有错误请联系指正!
版权所有@北京神脑资讯技术有限公司 (CUUG,中国UNIX用户协会) Copyright 2016 ALL Rights Reserved 京ICP备11008061号-1