仓酷云

 找回密码
 立即注册
搜索
热搜: 活动 交友 discuz
查看: 852|回复: 7
打印 上一主题 下一主题

[学习教程] 公布MySQL对表的修正(增添或删减列,创立或作废索引等)

[复制链接]
只想知道 该用户已被删除
跳转到指定楼层
楼主
发表于 2015-1-16 20:12:07 | 只看该作者 回帖奖励 |倒序浏览 |阅读模式

马上注册,结交更多好友,享用更多功能,让你轻松玩转社区。

您需要 登录 才可以下载或查看,没有帐号?立即注册

x
表里面的记录数量越多,这个操作的代价就越高。如果作为搜索条件的列上已经创建了索引,MySQL无需扫描任何记录即可迅速得到目标记录所在的位置。MySQL创立了一个数据库后,接着创立了一张表,并增加了一些字段,那末我今后还想再增添字段怎样做?

解答:利用altertable(修正表)!

ALTERTABLE语法:

ALTER[IGNORE]TABLEtbl_name
alter_specification[,alter_specification]...

alter_specification:
ADD[COLUMN]column_definition[FIRST|AFTERcol_name]
|ADD[COLUMN](column_definition,...)
|ADDINDEX[index_name][index_type](index_col_name,...)
|ADD[CONSTRAINT[symbol]]
PRIMARYKEY[index_type](index_col_name,...)
|ADD[CONSTRAINT[symbol]]
UNIQUE[index_name][index_type](index_col_name,...)
|ADD[FULLTEXT|SPATIAL][index_name](index_col_name,...)
|ADD[CONSTRAINT[symbol]]
FOREIGNKEY[index_name](index_col_name,...)
[reference_definition]
|ALTER[COLUMN]col_name{SETDEFAULTliteral|DROPDEFAULT}
|CHANGE[COLUMN]old_col_namecolumn_definition
[FIRST|AFTERcol_name]
|MODIFY[COLUMN]column_definition[FIRST|AFTERcol_name]
|DROP[COLUMN]col_name
|DROPPRIMARYKEY
|DROPINDEXindex_name
|DROPFOREIGNKEYfk_symbol
|DISABLEKEYS
|ENABLEKEYS
|RENAME[TO]new_tbl_name
|ORDERBYcol_name
|CONVERTTOCHARACTERSETcharset_name[COLLATEcollation_name]
|[DEFAULT]CHARACTERSETcharset_name[COLLATEcollation_name]

|DISCARDTABLESPACE|IMPORTTABLESPACE|table_options
|partition_options
|ADDPARTITIONpartition_definition
|DROPPARTITIONpartition_names
|COALESCEPARTITIONnumber
|REORGANIZEPARTITIONpartition_namesINTO(partition_definitions)
|ANALYZEPARTITIONpartition_names
|CHECKPARTITIONpartition_names
|OPTIMIZEPARTITIONpartition_names
|REBUILDPARTITIONpartition_names
|REPAIRPARTITIONpartition_names
http://dev.mysql.com/doc/refman/5.1/zh/sql-syntax.html#alter-table

我的实例:

增添一个字段:

altertablebookaddnamevarchar(20);

以为20太小,修正为50

altertablebookchangenamenamevarchar(50);

增添几个字段:

altertablebookaddauthorsvarchar(100),addcategoryvarchar(20),add

pricedouble(10,2);

删除一列:

altertablebookdropcover;

在某个地位加上1列:

altertablebookaddcovervarchar(100)after(first)publishdate;

修正某笔记录某个字段或多个字段的值:

updatebooksetcolumn_name1=""wherecolumn_name2="";

删除一笔记录:

deletefromtable_namewherewhere_contion;

修正某个表中的纪录的按次:

altertablebookorderbybookid(默许为升序降序为desc);根据Evans的调查报告,“MySQL的使用在未来将继续呈成长趋势。”
小妖女 该用户已被删除
沙发
发表于 2015-1-18 18:32:36 | 只看该作者
是否碎片会引发效率问题?这都是需要进一步探讨的东西。varbinary(max)代替image也让SQLServer的字段类型更加简洁统一。
透明 该用户已被删除
板凳
发表于 2015-1-25 13:47:58 | 只看该作者
微软对CLR作了大篇幅的宣传,这是因为数据库产品终于融入.net体系中。最开始我们也是狂喜,感觉对象数据库的一些概念可以实现了。
飘飘悠悠 该用户已被删除
地板
发表于 2015-2-2 22:20:08 | 只看该作者
换言之,只有在不断的失败中尝试成功,而关于失败的总结却是很少的
admin 该用户已被删除
5#
发表于 2015-2-8 14:18:48 | 只看该作者
where子句的作用是在对查询结果进行分组前,将不符合where条件的行去掉,即在分组之前过滤数据,条件中不能包含聚组函数,使用where条件显示特定的行。
灵魂腐蚀 该用户已被删除
6#
发表于 2015-2-25 19:14:15 | 只看该作者
如果,某一版本可以提供强大的并发响应,但是没有Oracle的相应版本稳定,或者价格较贵,那么,它就是不适合的。
再见西城 该用户已被删除
7#
发表于 2015-3-8 02:04:26 | 只看该作者
总感觉自己还是不会SQL
兰色精灵 该用户已被删除
8#
发表于 2015-3-15 20:52:19 | 只看该作者
个人感觉没有case直观。而且默认的第三字段(还可能更多)作为groupby字段很容易造成新手的错误。
您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

QQ|Archiver|手机版|仓酷云 鄂ICP备14007578号-2

GMT+8, 2024-5-16 04:40

Powered by Discuz! X3.2

© 2001-2013 Comsenz Inc.

快速回复 返回顶部 返回列表