<?xml version="1.0" encoding="UTF-8" ?>
<rss version="2.0">
<channel>
<title><![CDATA[向东博客 专注WEB应用 构架之美 --- 构架之美，在于尽态极妍 | 应用之美，在于药到病除]]></title> 
<link>http://www.jackxiang.com/index.php</link> 
<description><![CDATA[赢在IT，Playin' with IT,Focus on Killer Application,Marketing Meets Technology.]]></description> 
<language>zh-cn</language> 
<copyright><![CDATA[向东博客 专注WEB应用 构架之美 --- 构架之美，在于尽态极妍 | 应用之美，在于药到病除]]></copyright>
<item>
<link>http://www.jackxiang.com/post//</link>
<title><![CDATA[mysql添加用户 alter 语句用法,添加、修改、删除、修改字段存储类型，创建UTF-8的数据库和查看数据库编码等]]></title> 
<author>jack &lt;xdy108@126.com&gt;</author>
<category><![CDATA[WEB2.0]]></category>
<pubDate>Thu, 20 Dec 2007 14:57:43 +0000</pubDate> 
<guid>http://www.jackxiang.com/post//</guid> 
<description>
<![CDATA[ 
	修改字段存储类型：<br/><textarea name="code" class="php" rows="15" cols="100">
ALTER TABLE `auth_token`&nbsp;&nbsp;modify column&nbsp;&nbsp;`accessToken` varchar(32) NOT NULL DEFAULT &#039;00000000000000000000000000000000&#039; COMMENT &#039;AccessToken&#039;;
</textarea><br/><br/>最常用同步关于库权限查询指令，基础预备：查一下数据库有用户及权限：<br/>select distinct concat(&#039;user: &#039;&#039;&#039;,user,&#039;&#039;&#039;@&#039;&#039;&#039;,host,&#039;&#039;&#039;;&#039;) as query from mysql.user;<br/><br/><textarea name="code" class="php" rows="15" cols="100">
create user owncloud_mysql@localhost&nbsp;&nbsp;IDENTIFIED BY &#039;&#039;;&nbsp;&nbsp;&nbsp;&nbsp;###create user owncloud_mysql@localhost;
drop user owncloud_mysql@localhost;

grant all privileges on owncloud_mysql.* to owncloud_mysql@localhost identified by &#039;&#039;;
revoke all privileges on nextcloud_mysql.*&nbsp;&nbsp;from `nextcloud_mysql`@`localhost`;
</textarea><br/>=================================================================<br/><br/>mysql&gt; show create database jackxiang_mysql;<br/>+-----------------+----------------------------------------------------------------------------+<br/>&#124; Database&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&#124; Create Database&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&#124;<br/>+-----------------+----------------------------------------------------------------------------+<br/>&#124; jackxiang_mysql &#124; CREATE DATABASE `jackxiang_mysql` /*!40100 DEFAULT CHARACTER SET latin1 */ &#124;<br/>+-----------------+----------------------------------------------------------------------------+<br/>依葫芦画瓢：<br/><textarea name="code" class="php" rows="15" cols="100">
CREATE DATABASE `cn_cms_alpha` /*!40100 DEFAULT CHARACTER SET utf8*/;
CREATE DATABASE `cn_sns_alpha` /*!40100 DEFAULT CHARACTER SET utf8*/;
</textarea><br/><br/><br/><br/>建表基本结构都有：<br/><textarea name="code" class="php" rows="15" cols="100">
create table test3(Id int(8) not null auto_increment,age int(7) default 0 not null,name varchar(16) default &quot;&quot; not null,address varchar(255) default &#039;&#039; not null ,sex enum(&#039;1&#039;,&#039;0&#039;),primary key (Id));
</textarea><br/>如果是字符串的&nbsp;&nbsp;NOT NULL DEFAULT &#039;&#039;;<br/>如果是数字型的&nbsp;&nbsp;NOT NULL DEFAULT 0;<br/>有兄弟说default &#039;&#039;&nbsp;&nbsp;跨库也麻烦，不如default null:<br/>用is null 和 =&#039;&#039; 都无法全部查询出来，有些人写程序，很容易把默认null的字段 插入成&#039;&#039;，但是默认的很多数据又是null,这样一个字段会有 &#039;&#039;和null同时存在。<br/><br/>在上面表中加个索引：<br/><textarea name="code" class="php" rows="15" cols="100">alter table test3 add index name(name);</textarea><br/>Default值设定及Null设定<br/>字符串：<br/>alter table t_tst_root add busiLevel&nbsp;&nbsp;varchar(255)&nbsp;&nbsp;default &#039;&#039; not null after f_Id;<br/>Int整形：<br/>alter table t_tst_root add f_TstProjId&nbsp;&nbsp;int(10)&nbsp;&nbsp;default 0 not null after f_Id;<br/><br/>ALTER TABLE `Tbl_File` ADD PRIMARY KEY ( `FFileId` ) <br/>ALTER TABLE `Tbl_File` CHANGE `FFileId` `FFileId` INT( 11 ) NOT NULL AUTO_INCREMENT <br/>________________________________________________________________________________________________<br/>ALTER TABLE&nbsp;&nbsp;`temperatureone` CHANGE&nbsp;&nbsp;`nowTempValue`&nbsp;&nbsp;`nowTempValue` FLOAT(5,2) NOT NULL COMMENT&nbsp;&nbsp;&#039;现在温度&#039;<br/>PHPMyadmin:<br/>字段&nbsp;&nbsp;nowTempValue<br/>类型&nbsp;&nbsp;FLOAT<br/>长度/值*1&nbsp;&nbsp;5,2<br/>________________________________________________________________________________________________<br/>alter table test add index id(id); //id不能有引号<br/>加一个字段：<br/><textarea name="code" class="html" rows="15" cols="100">
mysql&gt; alter table t_test_info_detail add f_packageonlinepath&nbsp;&nbsp;varchar(64)&nbsp;&nbsp;default &#039;&#039; not null; 
Query OK, 1 row affected (0.01 sec)
Records: 1&nbsp;&nbsp;Duplicates: 0&nbsp;&nbsp;Warnings: 0
</textarea><br/><textarea name="code" class="html" rows="15" cols="100">
ALTER TABLE&nbsp;&nbsp;`t_tst_draft_info` ADD&nbsp;&nbsp;`f_PdateStamp` VARCHAR( 32 ) NOT NULL AFTER&nbsp;&nbsp;`f_DateStamp` ;
</textarea><br/>如果想要添加在某个字段的后面则是这样的：<br/><textarea name="code" class="html" rows="15" cols="100">
ALTER TABLE&nbsp;&nbsp;`t_tst_draft_info` ADD&nbsp;&nbsp;`f_PdateStamp` VARCHAR( 32 ) NULL AFTER&nbsp;&nbsp;`f_DateStamp` ;
</textarea><br/><br/>想要修改一个字段及默认值：<br/><textarea name="code" class="html" rows="15" cols="100">
alter table t_tst_sum_option change f_RolesJudge&nbsp;&nbsp;f_RolesJudge int(1) default 0 after f_Creator;
</textarea><br/>把字段由text类似修改为var_char类型(我的bo-blog，里的字段作优化，bo-blog不更新了，自己作如下优化)：<br/><textarea name="code" class="php" rows="15" cols="100">
ALTER TABLE boblog_blogs CHANGE `title` `title` VARCHAR(255) CHARACTER SET utf8 COLLATE utf8_general_ci NULL DEFAULT &#039;&#039;;
ALTER TABLE boblog_blogs CHANGE `title` `title` VARCHAR(255) CHARACTER SET utf8 COLLATE utf8_general_ci NULL DEFAULT &#039;&#039;;
ALTER TABLE boblog_blogs CHANGE `tags` `tags` VARCHAR(255) CHARACTER SET utf8 COLLATE utf8_general_ci NULL DEFAULT &#039;&#039;;
ALTER TABLE boblog_blogs CHANGE `pinged` `pinged` VARCHAR(255) CHARACTER SET utf8 COLLATE utf8_general_ci NULL DEFAULT &#039;&#039;;
ALTER TABLE boblog_blogs CHANGE `entrysummary` `entrysummary` VARCHAR(255) CHARACTER SET utf8 COLLATE utf8_general_ci NULL DEFAULT &#039;&#039;;
ALTER TABLE boblog_blogs CHANGE `permitgp` `permitgp` VARCHAR(255) CHARACTER SET utf8 COLLATE utf8_general_ci NULL DEFAULT &#039;&#039;;
alter table boblog_blogs add index sticky_pubtime(sticky,pubtime);&nbsp;&nbsp; 
下面是索引：
 KEY `blogid` (`blogid`),
 KEY `pubtime` (`pubtime`),
 KEY `property` (`property`),
 KEY `blogalias` (`blogalias`),
 KEY `frontpage_property` (`frontpage`,`property`),
 KEY `sticky_pubtime` (`sticky`,`pubtime`),
 KEY `category` (`category`),
 FULLTEXT KEY `content` (`content`),
 FULLTEXT KEY `title` (`title`)
</textarea><br/>mysql里的长度简述：<br/>CHAR(M)&nbsp;&nbsp;0&lt;M&lt;=255（建议CHAR(1)外，超过此长度的用VARCHAR）&nbsp;&nbsp;M个字符（所占空间跟字符集等有关系）&nbsp;&nbsp;<br/>VARCHAR(M)&nbsp;&nbsp;0&lt;M&lt;65532/N&nbsp;&nbsp; M个字符（N大小由字符集，以及是否为中文还是字母数字等有关系）&nbsp;&nbsp;<br/>TEXT&nbsp;&nbsp;64K个字符&nbsp;&nbsp;所占空间跟字符集等有关系<br/><br/>想删除某个字段：<br/><textarea name="code" class="html" rows="15" cols="100">
 alter table t_project drop f_Attentioner;
alter table video_upload_table drop id; 
</textarea><br/><br/>添加索引、删除索引：<br/>alter table `boblog_blogs` add index blogalias(blogalias); <br/>alter table `boblog_blogs` drop&nbsp;&nbsp;index blogalias; <br/>alter table boblog_blogs add FULLTEXT(content); //全文索引<br/>扩大字段的长度：<br/><textarea name="code" class="html" rows="15" cols="100">
ALTER TABLE `t_tst_project` CHANGE `f_Tester` `f_Tester` CHAR( 250) CHARACTER SET latin1 COLLATE latin1_swedish_ci NULL DEFAULT NULL COMMENT &#039;测试人员&#039; 
</textarea><br/><br/>修改表字段的默认值为空不为null：<br/><textarea name="code" class="html" rows="15" cols="100">
alter table `busi_relation` change busiLevel&nbsp;&nbsp;busiLevel&nbsp;&nbsp;varchar(255)&nbsp;&nbsp;default &#039;&#039; not null;
</textarea><br/><br/>修改表字段enum的新类型none：<br/><textarea name="code" class="html" rows="15" cols="100">
alter table `object_video_encode` change&nbsp;&nbsp;`file_status` `file_status` enum(&#039;uploaded&#039;, &#039;encoding&#039;, &#039;encoded&#039;, &#039;encode_failed&#039;, &#039;synching&#039;, &#039;synched&#039;, &#039;none&#039;) not null default &#039;none&#039;;
</textarea><br/># 修改表的注释<br/><textarea name="code" class="html" rows="15" cols="100">
alter table test1 comment &#039;修改后的表的注释&#039;;
</textarea><br/># 修改字段的注释&nbsp;&nbsp;--注意：字段名和字段类型照写就行<br/><textarea name="code" class="html" rows="15" cols="100">
alter table test1 modify column field_name int comment &#039;修改后的字段注释&#039;;
alter table t_tst_draft_XXX modify&nbsp;&nbsp;`f_Id` int(10)&nbsp;&nbsp;comment &#039;自增Id&#039;;
</textarea><br/><br/><br/>添加一个自增长字段并且添在最前面用first，如下:<br/>ALTER TABLE `object_video_upload`&nbsp;&nbsp;ADD `id` INT(32) NOT NULL AUTO_INCREMENT COMMENT &#039;auto_increase comment&#039; first;<br/><br/>如果我在一个表上两个字段指定auto_increment呢？<br/>mysql&gt; create table tab_auto_incr(a int not null auto_increment,b int not null auto_increment,primary key (a),unique key (b)); <br/>ERROR 1075 (42000): Incorrect table definition; there can be only one auto column and it must be defined as a key//是：Innodb:<br/>InnoDb引擎中对auto_increment的误解:http://jiuchen.sinaapp.com/136.html<br/>结论3：在InnoDB中，auto_increment至少需要单独为索引字段（主键也是索引的一种）。<br/>结论4：在InnoDB中，auto_increment可以和其他字段组成联合索引，但auto_increment必须位于最左侧（和MyISAM不同)。<br/><br/><br/>所以，如果表已经建立好了，想加一个id并为auto_increment的字段得，先建立这个字段（暂还能有auto_increment的属性，否则报错如上），再添加索引，再修改这个字段为auto_increment,操作如下，并实践Ok，发现这个新加的id确实变为自动由1，2，3...这样的值了：<br/><textarea name="code" class="C" rows="15" cols="100">
ALTER TABLE `video_table`&nbsp;&nbsp;ADD `id` INT(64) NOT NULL&nbsp;&nbsp;&nbsp;&nbsp;first;
alter table `video_table` add index id(id);
ALTER TABLE `video_table`&nbsp;&nbsp;modify&nbsp;&nbsp;`id` INT(64) NOT NULL AUTO_INCREMENT&nbsp;&nbsp; first;
-----------------------------------------------------------------------

mysql&gt; ALTER TABLE `video_table`&nbsp;&nbsp;ADD `id` INT(64) NOT NULL&nbsp;&nbsp;&nbsp;&nbsp;first;
Query OK, 162090 rows affected (1 min 7.06 sec)
Records: 162090&nbsp;&nbsp;Duplicates: 0&nbsp;&nbsp;Warnings: 0

mysql&gt; alter table `video_table` add index id(id);
Query OK, 0 rows affected (10.94 sec)
Records: 0&nbsp;&nbsp;Duplicates: 0&nbsp;&nbsp;Warnings: 0

mysql&gt; ALTER TABLE `video_table`&nbsp;&nbsp;modify&nbsp;&nbsp;`id` INT(64) NOT NULL AUTO_INCREMENT&nbsp;&nbsp; first;
Query OK, 162090 rows affected (1 min 10.35 sec)
Records: 162090&nbsp;&nbsp;Duplicates: 0&nbsp;&nbsp;Warnings: 0

</textarea><br/><br/>MYISM:<br/>不行！说明一个表只能有一个auto_increment，且该列必须是primary key或者unique key。<br/>更多：http://blog.csdn.net/feihong247/article/details/7748788<br/><br/><br/><br/><br/><br/># 查看字段注释的方法&nbsp;&nbsp;--show<br/><textarea name="code" class="html" rows="15" cols="100">
show full columns from test1;
</textarea><br/>要想一个字段是AUTO_INCREMENT ,它必须是一个索引，刚才一时心急，搞忘记了，备份下。<br/>其根本是：create table Tbl_File_XXX(select * from Tbl_File_Bak_XXX);&nbsp;&nbsp;这个语句在表Tbl_File_XXX中是不会有索引的。<br/>以后怎么解决这个问题：<br/>create table aaa like Tbl_User<br/>insert into table select xxx<br/><br/>加在最前面FIRST ：<br/>ALTER TABLE `jiu` ADD `11` VARCHAR( 1 ) NOT NULL FIRST ;<br/><br/>测试Ok，索引带过来了：<br/> create table aaa like Tbl_File_Bak;<br/>导入： insert into&nbsp;&nbsp;aaa select * from Tbl_File_Bak;<br/>示例：<br/>=====================================================================<br/>drop table Tbl_File;<br/>create table Tbl_File like Tbl_File_Bak;<br/>insert into&nbsp;&nbsp;Tbl_File select * from Tbl_File_Bak;<br/>source /home/admin/745.txt <br/>=====================================================================<br/><br/>&nbsp;&nbsp; 直接select into 不会复制任何索引和主键,一般先create table like ，然后再select into<br/>&nbsp;&nbsp;&nbsp;&nbsp;<br/>&nbsp;&nbsp;&nbsp;&nbsp;mysql&gt; create table cc like test;<br/>&nbsp;&nbsp;&nbsp;&nbsp;Query OK, 0 rows affected (0.04 sec)<br/><br/>&nbsp;&nbsp;&nbsp;&nbsp;mysql&gt; desc cc;<br/>&nbsp;&nbsp;&nbsp;&nbsp;+---------+-------------+------+-----+---------+-------+<br/>&nbsp;&nbsp;&nbsp;&nbsp;&#124; Field&nbsp;&nbsp; &#124; Type&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&#124; Null &#124; Key &#124; Default &#124; Extra &#124;<br/>&nbsp;&nbsp;&nbsp;&nbsp;+---------+-------------+------+-----+---------+-------+<br/>&nbsp;&nbsp;&nbsp;&nbsp;&#124; id&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&#124; int(5)&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&#124; YES&nbsp;&nbsp;&#124;&nbsp;&nbsp;&nbsp;&nbsp; &#124; NULL&nbsp;&nbsp;&nbsp;&nbsp;&#124;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; &#124;<br/>&nbsp;&nbsp;&nbsp;&nbsp;&#124; name&nbsp;&nbsp;&nbsp;&nbsp;&#124; varchar(20) &#124; YES&nbsp;&nbsp;&#124;&nbsp;&nbsp;&nbsp;&nbsp; &#124; NULL&nbsp;&nbsp;&nbsp;&nbsp;&#124;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; &#124;<br/>&nbsp;&nbsp;&nbsp;&nbsp;&#124; address &#124; varchar(50) &#124; YES&nbsp;&nbsp;&#124;&nbsp;&nbsp;&nbsp;&nbsp; &#124; NULL&nbsp;&nbsp;&nbsp;&nbsp;&#124;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; &#124;<br/>&nbsp;&nbsp;&nbsp;&nbsp;+---------+-------------+------+-----+---------+-------+<br/>&nbsp;&nbsp;&nbsp;&nbsp;3 rows in set (0.02 sec)<br/><br/>&nbsp;&nbsp;&nbsp;&nbsp;mysql&gt; insert into cc (select * from test);&nbsp;&nbsp;<br/>&nbsp;&nbsp;&nbsp;&nbsp;mysql&gt;Query OK, 5 rows affected (0.01 sec)<br/>Over！<br/><br/><br/>create table cs_bak1 as(select * from test) ; //备份表数据一模一样的，但索引没了，默认引擎和编码：服务器默认的存储引擎而不是源表的存储引擎<br/>create table cs_bak like test; //相同的结构来创建一个新表，列名、数据类型、空指和索引也将复制，但是表的内容不会被复制。外键和专用的权限也没有被复制。<br/>参考对比URL：http://phpdeveloper.cn/mysql-mysql%E5%A4%8D%E5%88%B6%E8%A1%A8%E7%9A%84%E4%B8%A4%E7%A7%8D%E6%96%B9%E6%B3%95<br/><br/>select into在Mysql中不适用,不支持：<br/>现在有张表为student,我想将这个表里面的数据复制到一个为dust的新表中去，虽然可以用以下语句进行复制，总觉得不爽，希望各位帮助下我，谢谢。<br/>answer 01:<br/>create table dust select * from student;//用于复制前未创建新表dust的情况下<br/>answer 02:<br/>insert into dust select * from student;//已经创建了新表dust的情况下<br/><br/>现在请各位用select..into..语句实现以上东东，谢谢支持，再次感谢！<br/>网友回复:该回复于2008-09-29 06:37:03被版主删除<br/>网友回复:sqlserver可以那樣寫，但是mySql中貌似不行哦，另外樓主你說的那兩種寫法，應該是最常見的啊<br/>网友回复:create table dust select * from student;<br/>网友回复:楼上的写的是我发的里面的啊，我要的是 select into 语句的啊？<br/><br/><br/>请各位大侠帮忙，谢谢！<br/>网友回复:MySQL不支持Select Into语句直接备份表结构和数据,一些种方法可以代替, 也有其它方法可以处理,总结如下:<br/>方法1:<br/>MYSQL不支持:<br/>Select * Into new_table_name from old_table_name;<br/>替代方法:<br/>Create table new_table_name (Select * from old_table_name);<br/>来源：http://hi.baidu.com/%D3%D2%CA%D6%C4%AA%D4%FA%CC%D8%B5%C4/blog/item/ed236851533190818d5430b3.html<br/><br/><br/>一、<br/>`id` int(11) NOT NULL AUTO_INCREMENT COMMENT &#039;合作伙伴ID&#039;,<br/>PRIMARY KEY (`id`),<br/>UNIQUE KEY `verifycode` (`verifycode`,`eid`)<br/><br/>二、<br/>新加一个字段：<br/>ALTER TABLE `object_partner` ADD `eid` VARCHAR( 16 ) NOT NULL AFTER `coop_type` <br/><br/>三、<br/>把这新加的字段再加为联合索引：<br/>ALTER TABLE `cntv_sns_language`.`object_partner` DROP PRIMARY KEY ,<br/>ADD PRIMARY KEY ( `verifycode` , `eid` ) <br/><br/>四、<br/>添加一个id字段与表开头 FIRST：<br/>ALTER TABLE `object_partner` ADD `id` INT( 11 ) NOT NULL FIRST <br/><br/>五、<br/>给这个id字段加上primary索引（因前面加过primary索引，不能现再加出现下面提示）：<br/>ALTER TABLE `object_partner` ADD `id` INT( 11 ) NOT NULL FIRST <br/><br/>六、给前面第三步的primary联合索引去掉后加上 UNIQUE 索引：<br/>ALTER TABLE `cntv_sns_language`.`object_partner` DROP PRIMARY KEY ,<br/>ADD UNIQUE (<br/>`verifycode` ,<br/>`eid`<br/>)<br/><br/>七、去掉后，给id字段加上前面的primary 索引：<br/>ALTER TABLE `cntv_sns_language`.`object_partner` ADD INDEX ( `id` ) <br/><br/><br/><br/><br/><br/><br/><br/>use 某个DB后：<br/>status<br/>可以看到DB的情况，尤其是乱码的问题等：<br/>默认：<br/>Server characterset:&nbsp;&nbsp;&nbsp;&nbsp;latin1<br/>Db&nbsp;&nbsp;&nbsp;&nbsp; characterset:&nbsp;&nbsp;&nbsp;&nbsp;latin1<br/>Client characterset:&nbsp;&nbsp;&nbsp;&nbsp;latin1<br/>Conn.&nbsp;&nbsp;characterset:&nbsp;&nbsp;&nbsp;&nbsp;latin1<br/>set names utf8 后：<br/>Server characterset:&nbsp;&nbsp;&nbsp;&nbsp;latin<br/>Db&nbsp;&nbsp;&nbsp;&nbsp; characterset:&nbsp;&nbsp;&nbsp;&nbsp;latin<br/>Client characterset:&nbsp;&nbsp;&nbsp;&nbsp;utf8<br/>Conn.&nbsp;&nbsp;characterset:&nbsp;&nbsp;&nbsp;&nbsp;utf8<br/>导入依旧有问题，正确的应该默认就是DB:Utf8,导入才会可能正常：<br/>Server characterset:&nbsp;&nbsp;&nbsp;&nbsp;latin1<br/>Db&nbsp;&nbsp;&nbsp;&nbsp; characterset:&nbsp;&nbsp;&nbsp;&nbsp;utf8<br/>Client characterset:&nbsp;&nbsp;&nbsp;&nbsp;latin1<br/>Conn.&nbsp;&nbsp;characterset:&nbsp;&nbsp;&nbsp;&nbsp;latin1<br/><br/><br/><br/>mysql&gt; ALTER TABLE `Tbl_User_NNN` ADD INDEX ( `FMemo_Extra` ( 16 ) ) ;<br/>Query OK, 3 rows affected (0.12 sec)<br/>Records: 3&nbsp;&nbsp;Duplicates: 0&nbsp;&nbsp;Warnings: 0<br/><br/><br/>添加mysql数据库字段<br/>使用ALTER&nbsp;&nbsp; TABLE&nbsp;&nbsp; [表名]&nbsp;&nbsp; ADD&nbsp;&nbsp; [字段]s语句……<br/><br/>索引<br/><br/>1.普通索引。<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;这是最基本的索引，它没有任何限制。它有以下几种创建方式：<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;（1）创建索引：CREATE INDEX indexName ON tableName(tableColumns(length));如果是CHAR,VARCHAR类型，length可以小于字段实际长度;如果是BLOB 和 TEXT 类型，必须指定length，下同。<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;（2）修改表结构：ALTER tableName ADD INDEX [indexName] ON (tableColumns(length)) <br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;（3）创建表的时候直接指定：CREATE TABLE tableName ( [...], INDEX [indexName] (tableColumns(length)) ;<br/>&nbsp;&nbsp;&nbsp;&nbsp;<br/>&nbsp;&nbsp;&nbsp;&nbsp;2.唯一索引。<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; 它与前面的&quot;普通索引&quot;类似，不同的就是：索引列的值必须唯一，但允许有空值。如果是组合索引，则列值的组合必须唯一。它有以下几种创建方式：<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; （1）创建索引：CREATE UNIQUE INDEX indexName ON tableName(tableColumns(length))<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;（2）修改表结构：ALTER tableName ADD UNIQUE [indexName] ON (tableColumns(length))<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;（3）创建表的时候直接指定：CREATE TABLE tableName ( [...], UNIQUE [indexName] (tableColumns(length));<br/><br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; 实践成功如下：<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<textarea name="code" class="php" rows="15" cols="100">
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; ALTER TABLE `tempsetting` ADD UNIQUE INDEX `settingName`(`settingName`); 
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; CREATE UNIQUE INDEX settingName ON tempsetting(settingName(100))
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; </textarea><br/>&nbsp;&nbsp;&nbsp;&nbsp; 3.主键索引<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; 它是一种特殊的唯一索引，不允许有空值。一般是在建表的时候同时创建主键索引：CREATE TABLE testIndex(i_testID INT NOT NULL AUTO_INCREMENT,vc_Name VARCHAR(16) NOT NULL,PRIMARY KEY(i_testID)); 当然也可以用ALTER命令。<br/><br/><br/><br/>//主键549830479<br/><br/>&nbsp;&nbsp; alter table tabelname add new_field_id int(5) unsigned default 0 not null auto_increment ,add primary key (new_field_id);//增加一个新列549830479<br/><br/>&nbsp;&nbsp; alter table t2 add d timestamp;<br/>&nbsp;&nbsp; alter table infos add ex tinyint not null default &#039;0&#039;;//删除列549830479<br/><br/>&nbsp;&nbsp; alter table t2 drop column c;//重命名列549830479<br/><br/>&nbsp;&nbsp; alter table t1 change a b integer;<br/>//改变列的类型549830479<br/><br/>&nbsp;&nbsp; alter table t1 change b b bigint not null;<br/>&nbsp;&nbsp; alter table infos change list list tinyint not null default &#039;0&#039;;<br/> //重命名表549830479<br/><br/>&nbsp;&nbsp; alter table t1 rename t2;加索引549830479<br/><br/>&nbsp;&nbsp; mysql&gt; alter table tablename change depno depno int(5) not null;<br/>&nbsp;&nbsp; mysql&gt; alter table tablename add index 索引名 (字段名1[，字段名2 …]);<br/>&nbsp;&nbsp; mysql&gt; alter table tablename add index emp_name (name);加主关键字的索引549830479<br/><br/> <br/>&nbsp;&nbsp; mysql&gt; alter table tablename add primary key(id);加唯一限制条件的索引549830479<br/><br/>&nbsp;&nbsp;mysql&gt; alter table tablename add unique emp_name2(cardnumber);删除某个索引549830479<br/><br/>&nbsp;&nbsp; mysql&gt;alter table tablename drop index emp_name;修改表：549830479<br/><br/>增加字段：549830479<br/><br/>&nbsp;&nbsp; mysql&gt; ALTER TABLE table_name ADD field_name field_type;修改原字段名称及类型：549830479<br/><br/>&nbsp;&nbsp; mysql&gt; ALTER TABLE table_name CHANGE old_field_name new_field_name field_type;删除字段：549830479<br/><br/>&nbsp;&nbsp; mysql&gt; ALTER TABLE table_name DROP field_name; <br/><br/>参考：http://flyer2010.iteye.com/blog/1064390
]]>
</description>
</item><item>
<link>http://www.jackxiang.com/post//#blogcomment</link>
<title><![CDATA[[评论] mysql添加用户 alter 语句用法,添加、修改、删除、修改字段存储类型，创建UTF-8的数据库和查看数据库编码等]]></title> 
<author> &lt;user@domain.com&gt;</author>
<category><![CDATA[评论]]></category>
<pubDate>Thu, 01 Jan 1970 00:00:00 +0000</pubDate> 
<guid>http://www.jackxiang.com/post//#blogcomment</guid> 
<description>
<![CDATA[ 
	
]]>
</description>
</item>
</channel>
</rss>