|
马上注册,结交更多好友,享用更多功能,让你轻松玩转社区。
您需要 登录 才可以下载或查看,没有帐号?立即注册
x
列举选择MySQL的理由的最困难的地方在于,如何对这些理由进行排序。MySQL学习教程这就如同我们经常争论的故事:先有鸡还是先有蛋?
1.4.9删除或更新现有纪录
偶然,但愿撤除某些纪录或变动它们的内容。DELETE和UPDATE语句令我们能做到这一点。
DELETE语句有以下格局:
DELETEFROMtbl_nameWHERE要删除的纪录
WHERE子句指定哪些纪录应当删除。它是可选的,可是假如不选的话,将会删除一切的纪录。这意味着最复杂的DELETE语句也是最伤害的。
DELETEFROMtb1_name
这个查询将扫除表中的一切内容。必定要小心!为了删除特定的纪录,可用WHERE子句来选择所要删除的纪录。这相似于SELECT语
句中的WHERE子句。比方,为了删除president表中一切出身在Ohio的总统纪录,可用以下查询:
DELETE语句中的WHERE子句的一个限定是只可以援用要删除纪录的表中的列。在公布DELETE语句之前,最好用SELECT语句测试一下响应的WHERE子句以确保实践删除的纪录就是的确想要删除的纪录(并且只删除这些纪录)。假设想要删除TeddyRoosevelt的纪录。上面的查询能完成这项事情吗?
是的,感到上它能删除您思想中盘算删除的纪录。可是,错了,实践上它也能删除FranklinRoosevelt的纪录。假如起首用WHERE子句反省一下就平安了,以下所示:
如今我们分明了能选择出所需纪录的WHERE子句了,因而DELETE查询可准确地机关以下:
仿佛删除一个纪录必要做很多事情,不是吗?可是平安第一!(假如想使键盘输出事情只管少,可使用拷贝和粘贴手艺或接纳输出行编纂手艺。更具体的信息,请参阅“与mysql交互的技能”一节。)为了修正现有纪录,可使用UPDATE语句,它具有以下格局:
UPDATEtbl_nameSET要变动的列WHERE要更新的纪录这里的WHERE子句正如DELETE语句一样,是可选的,因而假如不指定的话,表中的每一个纪录都被更新。上面的查询将每一个先生的名字都变动为“George”:
明显,关于如许的查询必需极其当心。一样平常对正在更新的纪录要更加当心。假定最近增添了一个新纪录到汗青联盟,可是只填写了此实体的多数几个列:
然后意想到忘了设置其会员停止日期。那末可以下举行设置:
可同时更新多个列。上面的语句将更新Jerome的电子邮件和通讯地点:
还能够经由过程设置某列的值为NULL(假定此列同意NULL值)“不设置”此列。假如在将来的某个时分Jerome决意付出成为毕生会员的会员资历更新费,那末能够设置其纪录的停止日期为NULL(“永世”)以标志他为毕生会员。详细设置以下:
正如DELETE语句一样,关于UPDATE,用SELECT语句测试WHERE子句以确保选择准确的更新纪录是一个好举措。假如选择前提局限太窄或太宽,就会使更新的纪录太少或太多。假如您实验过本节中的查询,那末一定已删除和修正了samp_db表中的纪录。在持续进修下一节的内容之前,应当取消这些变动。按1.4.7节“增添新纪录”最初的申明从头装载表的内容来完成这项事情。
1.4.10改动表的布局
回忆我们创立汗青联盟member表时缺了一个会员号列,因而我们能够举行一次ALTERTABLE语句的实习。必要用ALTERTABLE,能够对表从头定名,增添或删除列,变动列的范例等等。这里给出的例子是关于如何增添新列的。有关ALTERTABLE功效的具体内容,请参阅第3章。增添会员号列到member表的次要思索是,其值应当是独一的,以避免各会员条目搅浑。AUTO_INCREMENT列在此是很有效的,由于我们能够在增添新的号码时令MySQL主动地天生独一的号码。在CREATETABLE语句中,如许一个列的申明以下:
关于ALTERTABLE,响应的句法也是相似的。可实行以下查询增添该列:
我们已有一个寄存会员号的列,如今如何分派会员号给member表中的现有纪录呢?很简单!MySQL已做了这项事情。在增添一列到某个表时,MySQL将会用缺省值初始化该列值。关于AUTO_INCREMENT列,每一个即将会发生一个新的按次号。
DBaaS并不意味着解决方案提供者要让自己失业。与其他系统一样,在实施DBaaS解决方案时,客户可能需要部署、迁移、支持、异地备份、系统集成和灾难恢复等方面的帮助。 |
|