sql修改数据表名

13.1.2.语法ALTERTABLEALTER[IGNORE]TABLEtbl_namealter_说明[,alter_说明]...alter_说明:ADD[COLUMN]column_definition[FIRST|AFTERcol_name]|ADD[COLUMN](column_definition,...)|ADD[index_name][index_type](index_name,col_name)...)|ADD[约束[符号]]KEYMAIN[index_type](index_name,...)|ADD[CONSTRAINT[symbol]]UNIQUE[index_name][index_type](index_name,...)|ADD[FULLTEXT|SPACE][index_name](index_name,...)|ADD[约束[符号]]FOREIGNKEY[索引名称](键索引名称,...)[reference_definition]|ALTER[COLUMN]column_name{SETDEFAULTliteral|DROPDEFAULT}|ALTER[COLUMN]old_col_namecolumn_definition[FIRST|AFTERcolumn_name]|MODIFY[COLUMN]column_definition化[FIRST|AFTER_name]|HISH[COLUMN]col_name|DROPPRIMARYKEY|DROPINDEXindex_name|DROPFOREIGNKEYfk_symbol|DISABLEKEYS|ENABLEKEYS|RENAME[TO]new_tbl_name|ORDERBYcol_name|CONVERTTOCHARACTERSETset_name[COLLATEcollat​​ion_name]|[DEFAULT]CHARACTERSETset_name[COLLATEcollat​​ion_name]|DISCARDTABLESPACE|IMPORTTABLESPACE|table_options|partion_options|ADDPARTITIONpartition_definition|DROPPARTITIONpartition_names|COALEESCEPARTITIONnumber|REORGANIZEPARTITIONpartition_namesINTO(partition_definitions)|分析RTITIONpartition_names|CHECKPARTITIONpartition_names|OPTIMIZEPARTITIONpartition_names|REBUILDPARTITIONpartition_names|REPAIRPARTITIONpartition_namesALTERTABLE用于更改原始表的结构。
例如,您可以添加或删除列、创建或删除索引、更改现有列的类型或重命名列或表。
您还可以更改表注释和表类型。
以上是MYSQL5.1中文参考手册中的内容。

怎样用SQL语句修改表名与表中的列名?

ALTERTABLEtable{[ALTERCOLUMNcolumn_name{new_data_type[(precision[,scale])][COLLECT<排序名称>][NULL|NOTNULL]|{ADD|DROP}ROWGUIDCOL}]|ADD{[]|column_nameAScompulated_column_expression}[,...n]|[WITHCHECK|WITHNOCHECK]添加TO{}[,...n]|DROP{[CONSTRAINT]constraint_name|COLUMNcolumn}[,...n]|{CHECK|NOCHECK}CONSTRAINT{ALL|constraint_name[,...n]}|{ENABLE|DISABLE}TRIGGER{ALL|trigger_name[,...n]}}::={column_namedata_type}[[DEFAULTconstant_expression][WITHVALUES]|[IDENTITY[(看d,增量)[NOTFORREPLICATION]]]][ROWGUIDCOL][COLLECT<排序名称>][<列约束>][...n]<列约束>::=[CONSTRAINT-约束名称]{[NULL|NOTNULL]|[{基本的Y|UNIQUE}[CLUSTERED|NONCLUSTERED][WITHFILLFACTOR=fillfactor][ON{filegroup|DEFAULT}]]|[[FOREIGNKEY]REFERENCESref_table[(ref_column)][ONDELETE{CASCADE|NOACTION}][ONUPDATE{CASCADE|NOACTION}][NOTFORREPLICATION]]|CHECK[NOTFORREPLICATION](逻辑表达式)}
::=[CONSTRAINTconstraint_name]{[{PRIMARYKEY|UNIQUE}[CLUSTERED|NONCLUSTERED]{(列[,...n])}[WITHFILLFACTOR=填充因子][ON{文件组|默认}]]|FOREIGNKEY[(列[,...n])]REFERENCESref_table[(ref_column[,...n])][ONDELETE{CASCADE|NOACTION}][ONUPDATE{CASCADE|NOACTION}][NOTFORREPLICATION]|DEFAULTconstant_expression[FORcolumn][WITHVALUES]|CHECK[NOTFORREPLICATION](search_conditions)}示例A.修改表以添加新列以下示例添加允许空值的列,并且是不是通过DEFAULT定义值给出的。
每行的新列中的值将为NULL。
CREATETABLEdoc_exa(column_aINT)GOALTERTABLEdoc_exaADDcolumn_bVARCHAR(20)NULLGOEXECsp_helpdoc_exaGODROPTABLEdoc_exaGOB.更改表以删除列以下示例更改表以删除列。
CREATETABLEdoc_exb(column_aINT,column_bVARCHAR(20)NULL)GOALTERTABLEdoc_exbDROPCOLUMNcolumn_bGOEXECsp_helpdoc_exbGODROPTABLEdoc_exbGOC.Alter表以添加带有约束的列以下示例添加带有UNIQUE约束列的新约束列。
CREATETABLEdoc_exc(column_aINT)GOALTERTABLEdoc_excADDcolumn_bVARCHAR(20)NULLCONSTRAINTexb_uniqueUNIQUEGOEXECsp_helpdoc_excGODROPTABLEdoc_excGOD.Alter表以添加未经验证的约束下表在现有列上添加现有约束。
该列中有一个值违反了约束,因此使用WITHNOCHECK来阻止在现有行上验证约束,以便可以添加约束。
CREATETABLEdoc_exd(column_aINT)GOINSERTINTOdoc_exdVALUES(-1)GOALTERTABLEdoc_exdWITHNCHECKADDCONSTRAINTExd_checkCHECK(column_a>1)GOEXECsp_helpdoc_exdGODROPTABLEdoc_exdGOE。
更改多个约束表以添加多个约束表。
第一个新列具有IDENTITY属性。
表中每一行的标识列将具有递增的新值。
CREATETABLEdoc_exe(column_aINTCONSTRAINTcolumn_a_unUNIQUE)GOALTERTABLEdoc_exeADD/*AddaPRIMARYKEYidentitycolumn.*/column_bINTIDENTITYCONSTRAINTcolumn_b_pkPRIMARYKEY,/*Addacolumn引用同一个表中的另一个列。
*/column_cINTNULLCONSTRAINTcolumn_c_fkREFERENCESdoc_exe(column_a),/*添加columnwith强制*//*非空数据无效电话号码格式。
*/column_dVARCHAR(16)NULLCONSTRAINTcolumn_d_chkCHECK(column_dISNULLORcolumn_dLIKE"[0-9][0-9][0-9]-[0-9][0-9][0-9][0-9]"ORcolumn_dLIKE"([0-9][0-9][0-9])[0-9][0-9][0-9]-[0-9][0-9][0-9][0-9]"),/*Addanonnullcolumnwithadefault.*/column_eDECIMAL(3,3)CONSTRAINTcolumn_e_defaultDEFAULT.081GOEXECsp_helpdoc_exeGODROPTABLEdoc_exeGOF.添加具有默认值的可为空列以下示例将具有DEFAULT行值的可为空列添加到每个现有表值的每个表中。
如果不使用WITHVALUES,则每行新列中都会有NULL值。
ALTERTABLEmyTableADAddDatesmalldatetimeNULLCONSTRAINTAddDateDfltDEFAULTgetdate()WITHVALUESG禁用和重新激活约束以下示例禁用限制可接受工资数据的约束。
WITHNOCHECKCONSTRAINT与ALTERTABLE一起使用来禁用约束并允许执行通常会导致约束违规的插入操作。
WITHCHECKCONSTRAINT重新启用约束。
CREATETABLEcnst_example(idINTNOTNULL,nameVARCHAR(10)NOTNULL,salaryMONEYNOTNULLCONSTRAINTsalary_capCHECK(salary<100000>ALTERTABLEcnst_exampleNOCHECKCONSTRAINTsalary_capINSERTINTOcnst_exampleVALUES(3,"PatJones",105000)--重新启用约束并尝试另一个帖子,将失败。
ALTERTABLEcnst_exampleCHECKCONSTRAINTsalary_capINSERTINTOcnst_exampleVALUES(4,"EricJames",110000)H禁用并重新激活触发器。
以下示例使用ALTERTABLE的DISABLETRIGGER选项禁用触发器,以便可以正常触发插入操作。
然后,以下示例使用ENABLETRIGGER重新激活触发器。
CREATETABLEtrig_example(idINT,nameVARCHAR(10),salaryMONEY)go--CREATETRIGGERtrig1ONtrig_exampleFORINSERTasIF(SELECTCOUNT(*)FROMINSERTEDWHRESalary>100000)>0BEGINprint"TRIG1Error:youattemptedtoinsertasalary>$100,000"ROLLBACKTRANSACTIONENDGO--尝试插入断路器触发器。
INSERTINTOtrig_exampleVALUES(1,"PatSmith",100001)GO--禁用触发器。
ALTERTABLEtrig_exampleDISABLETRIGGERtrig1GO--尝试插入通常会中断触发器的触发器INSERTINTOtrig_exampleVALUES(2,"ChuckJones",100001)GO--重新启用触发器。
ALTERTABLEtrig_exampleENABLETRIGGERtrig1GO--尝试作为有问题的触发器激活。
INSERTINTOtrig_exampleVALUES(3,"MaryBooth",100001)GO