1.》数据库操作相关:
mysql alter 语句用法,添加、修改、删除字段等
//主键
alter table tabelname add new_field_id int(5) unsigned default 0 not null auto_increment ,add
primary key
(new_field_id);
//增加一个新列
alter table t2 add
d timestamp;
alter table infos add
ex tinyint not null default '0';
//增加一个新列到指定位置
alter table t2 add d timestamp after
id;
//删除列
alter table t2 drop
column c;
//重命名列
alter table t1 change
a b integer;
//改变列的类型
alter table t1 change
b b bigint not null;
alter table infos change list list tinyint not null default '0';
//重命名表
alter table t1 rename
t2;
//加索引
mysql> alter table tablename add
index 索引名 (字段名1[,字段名2 …]);
mysql> alter table tablename add
index emp_name (name);
//加主关键字的索引
mysql> alter table tablename add
primary
key(id);
//加唯一限制条件的索引
mysql> alter table tablename add
unique
emp_name2(cardnumber);
//删除某个索引
mysql>alter table tablename drop index
emp_name;
//修改原字段名称及类型:
mysql> ALTER TABLE table_name CHANGE
old_field_name new_field_name field_type;
2》innodb
和myisam
在mysql数据的区别?
myisam属于非事务安全型,innodb和bdb属于事务安全型,在使用上,包括建立表,insert,select等等操作
上有没有什么区别。但是myisam引擎速度比较快、比较简单、而InnoDB支持外键、其速度相对就慢了。
MyISAM 类型的表强调的是性能,其执行数度比InnoDB类型更快,但是不提供事务支持,而InnoDB提供事务
支持已经外部键等高级数据库功能。这样就可以根据数据表不同的用处是用不同的存储类型。另外,MyISAM类
型的二进制数据文件可以在不同操作系统中迁移。也就是可以直接从Windows系统拷贝到linux系统中使用。所
以我一般都是使用myisam,因为这次用的也不是很深入的。
如果把这类型从MyISAM转成InnoDB会不会有问题、但是全文索引失效.
使用两种的选择:
- 如果你的数据执行大量的INSERT或UPDATE,出于性能方面的考虑,应该使用InnoDB表。
- 如果执行大量的 SELECT,MyISAM是更好的选择。若需要使用事务处理,但是原来的数据表使用的是myisam
,就需要改为bdb或者innodb,这样基于 myisam的程序,将类型改为innodb后,其程序不用改动……
3》页面编码中文问题相关:
数据库中文内容如果是gb2312
编码,页面编码是UTF-8
,则必须把字符从gb2312编码成UTF-8: