只想知道 发表于 2015-1-16 20:12:07

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

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

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

ALTERTABLE语法:

ALTERTABLEtbl_name
alter_specification[,alter_specification]...

alter_specification:
ADDcolumn_definition
|ADD(column_definition,...)
|ADDINDEX(index_col_name,...)
|ADD]
PRIMARYKEY(index_col_name,...)
|ADD]
UNIQUE(index_col_name,...)
|ADD(index_col_name,...)
|ADD]
FOREIGNKEY(index_col_name,...)

|ALTERcol_name{SETDEFAULTliteral|DROPDEFAULT}
|CHANGEold_col_namecolumn_definition

|MODIFYcolumn_definition
|DROPcol_name
|DROPPRIMARYKEY
|DROPINDEXindex_name
|DROPFOREIGNKEYfk_symbol
|DISABLEKEYS
|ENABLEKEYS
|RENAMEnew_tbl_name
|ORDERBYcol_name
|CONVERTTOCHARACTERSETcharset_name
|CHARACTERSETcharset_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 发表于 2015-2-8 14:18:48

where子句的作用是在对查询结果进行分组前,将不符合where条件的行去掉,即在分组之前过滤数据,条件中不能包含聚组函数,使用where条件显示特定的行。

灵魂腐蚀 发表于 2015-2-25 19:14:15

如果,某一版本可以提供强大的并发响应,但是没有Oracle的相应版本稳定,或者价格较贵,那么,它就是不适合的。

再见西城 发表于 2015-3-8 02:04:26

总感觉自己还是不会SQL

兰色精灵 发表于 2015-3-15 20:52:19

个人感觉没有case直观。而且默认的第三字段(还可能更多)作为groupby字段很容易造成新手的错误。
页: [1]
查看完整版本: 公布MySQL对表的修正(增添或删减列,创立或作废索引等)