变相怪杰 发表于 2015-1-16 22:22:47

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

列举选择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解决方案时,客户可能需要部署、迁移、支持、异地备份、系统集成和灾难恢复等方面的帮助。

精灵巫婆 发表于 2015-1-19 09:46:50

原来公司用过MYSQL自己也只是建个表写个SQL

谁可相欹 发表于 2015-1-27 05:16:25

比如日志传送、比如集群。。。

再现理想 发表于 2015-2-5 02:11:33

再开发调试阶段和OLAP环境中,外键是可以建立的。新版本中加入了SETNULL和SETDEFAULT属性,能够提供能好的级联设置。

若天明 发表于 2015-2-11 02:50:00

还不是性能有问题!否则面向对象的数据库早就实现了!建议使用CLR的地方一般是和应用的复杂程度或操作系统环境有很高的耦合度的场景。如你想构建复杂的算法,并且用到了大量的指针和高级数据模型。

若相依 发表于 2015-3-1 20:03:50

而SQLServer如果能像Oracle一样可以为登陆分配如:5%的cpu,10%的内存。就可以解决这个漏洞。

只想知道 发表于 2015-3-10 23:28:13

如安全管理、备份恢复、性能监控和调优等,SQL只要熟悉基本操作就可以,只要程序设计部分只要稍加了解即可(如存储过程、触发器等)。
页: [1]
查看完整版本: MYSQL教程之MySQL教程之删除或更新现有纪录