作者:zccst
alter的主要作用是修改已经建立的表结构。主要是那些由于权限或历史原因,不能drop后重新创建的情况。
[size=medium]一、修改引擎[/size]
[color=red]alter table table_name engine=innodb;[/color]
[size=medium]二、修改库、表、字段的字符集[/size]
修改数据库字符集:
ALTER DATABASE db_name DEFAULT CHARACTER SET character_name [COLLATE ...];
把表默认的字符集和所有字符列(CHAR,VARCHAR,TEXT)改为新的字符集:
ALTER TABLE tbl_name CONVERT TO CHARACTER SET character_name [COLLATE ...]
[color=red]如:ALTER TABLE logtest CONVERT TO CHARACTER SET utf8 COLLATE utf8_general_ci;[/color]
只是修改表的默认字符集:
ALTER TABLE tbl_name DEFAULT CHARACTER SET character_name [COLLATE...];
如:ALTER TABLE logtest DEFAULT CHARACTER SET utf8 COLLATE utf8_general_ci;
修改字段的字符集:
ALTER TABLE tbl_name CHANGE c_name c_name CHARACTER SET character_name [COLLATE ...];
如:ALTER TABLE logtest CHANGE title title VARCHAR(100) CHARACTER SET utf8 COLLATE utf8_general_ci;
查看数据库编码:
SHOW CREATE DATABASE db_name;
查看表编码:
SHOW CREATE TABLE tbl_name;
查看字段编码:
SHOW FULL COLUMNS FROM tbl_name;
[size=medium]三、重命名表[/size]
ALTER TABLE 【表名字】 RENAME 【表新名字】
[size=medium]四、修改列[/size]
1,修改为自增
[color=red]alter table network_section_list change `id` `id` int(11) not null auto_increment;[/color]
2:删除表中主键
Alter TABLE 【表名字】 drop primary key
3:添加主键
ALTER TABLE sj_resource_charges ADD CONSTRAINT PK_SJ_RESOURCE_CHARGES PRIMARY KEY (resid,resfromid)
4:删除列
ALTER TABLE 【表名字】 DROP 【列名称】
5:增加列
ALTER TABLE 【表名字】 ADD 【列名称】 INT NOT NULL COMMENT '注释说明'
6:修改列的类型信息
ALTER TABLE 【表名字】 CHANGE 【列名称】【新列名称(这里可以用和原来列同名即可)】 BIGINT NOT NULL COMMENT '注释说明'
7:重命名列
ALTER TABLE 【表名字】 CHANGE 【列名称】【新列名称】 BIGINT NOT NULL COMMENT '注释说明'
[size=medium]五、修改索引[/size]
1:添加索引
ALTER TABLE sj_resource_charges add index INDEX_NAME (name);
2: 添加唯一限制条件索引
ALTER TABLE sj_resource_charges add unique emp_name2(cardnumber);
3: 删除索引
alter table tablename drop index emp_name;
alter的主要作用是修改已经建立的表结构。主要是那些由于权限或历史原因,不能drop后重新创建的情况。
[size=medium]一、修改引擎[/size]
[color=red]alter table table_name engine=innodb;[/color]
[size=medium]二、修改库、表、字段的字符集[/size]
修改数据库字符集:
ALTER DATABASE db_name DEFAULT CHARACTER SET character_name [COLLATE ...];
把表默认的字符集和所有字符列(CHAR,VARCHAR,TEXT)改为新的字符集:
ALTER TABLE tbl_name CONVERT TO CHARACTER SET character_name [COLLATE ...]
[color=red]如:ALTER TABLE logtest CONVERT TO CHARACTER SET utf8 COLLATE utf8_general_ci;[/color]
只是修改表的默认字符集:
ALTER TABLE tbl_name DEFAULT CHARACTER SET character_name [COLLATE...];
如:ALTER TABLE logtest DEFAULT CHARACTER SET utf8 COLLATE utf8_general_ci;
修改字段的字符集:
ALTER TABLE tbl_name CHANGE c_name c_name CHARACTER SET character_name [COLLATE ...];
如:ALTER TABLE logtest CHANGE title title VARCHAR(100) CHARACTER SET utf8 COLLATE utf8_general_ci;
查看数据库编码:
SHOW CREATE DATABASE db_name;
查看表编码:
SHOW CREATE TABLE tbl_name;
查看字段编码:
SHOW FULL COLUMNS FROM tbl_name;
[size=medium]三、重命名表[/size]
ALTER TABLE 【表名字】 RENAME 【表新名字】
[size=medium]四、修改列[/size]
1,修改为自增
[color=red]alter table network_section_list change `id` `id` int(11) not null auto_increment;[/color]
2:删除表中主键
Alter TABLE 【表名字】 drop primary key
3:添加主键
ALTER TABLE sj_resource_charges ADD CONSTRAINT PK_SJ_RESOURCE_CHARGES PRIMARY KEY (resid,resfromid)
4:删除列
ALTER TABLE 【表名字】 DROP 【列名称】
5:增加列
ALTER TABLE 【表名字】 ADD 【列名称】 INT NOT NULL COMMENT '注释说明'
6:修改列的类型信息
ALTER TABLE 【表名字】 CHANGE 【列名称】【新列名称(这里可以用和原来列同名即可)】 BIGINT NOT NULL COMMENT '注释说明'
7:重命名列
ALTER TABLE 【表名字】 CHANGE 【列名称】【新列名称】 BIGINT NOT NULL COMMENT '注释说明'
[size=medium]五、修改索引[/size]
1:添加索引
ALTER TABLE sj_resource_charges add index INDEX_NAME (name);
2: 添加唯一限制条件索引
ALTER TABLE sj_resource_charges add unique emp_name2(cardnumber);
3: 删除索引
alter table tablename drop index emp_name;