语法:ALTER TABLE 表名字 ADD PRIMARY KEY ( 字段名字 )
- -- 给 user 表中的 id字段 添加主键索引(PRIMARY key)
- ALTER TABLE `user` ADD PRIMARY key (id);
3、唯一索引(UNIQUE)
语法:ALTER TABLE 表名字 ADD UNIQUE (字段名字)
- -- 给 user 表中的 creattime 字段添加唯一索引(UNIQUE)
- ALTER TABLE `user` ADD UNIQUE (creattime);
4、全文索引(FULLTEXT)
语法:ALTER TABLE 表名字 ADD FULLTEXT (字段名字)
- -- 给 user 表中的 description 字段添加全文索引(FULLTEXT)
- ALTER TABLE `user` ADD FULLTEXT (description);
5、添加多列索引
语法: ALTER TABLE table_name ADD INDEX index_name ( column1, column2, column3)
- -- 给 user 表中的 name、city、age 字段添加名字为name_city_age的普通索引(INDEX)
- ALTER TABLE user ADD INDEX name_city_age (name(10),city,age);
6、建立索引的时机
在WHERE和JOIN中出现的列需要建立索引,但也不完全如此:
- MySQL只对<,<=,=,>,>=,BETWEEN,IN使用索引
- 某些时候的LIKE也会使用索引。
- 在LIKE以通配符%和_开头作查询时,MySQL不会使用索引。
- -- 此时就需要对city和age建立索引,
- -- 由于mytable表的userame也出现在了JOIN子句中,也有对它建立索引的必要。
- SELECT t.Name FROM mytable t LEFT JOIN mytable m ON t.Name=m.username WHERE m.age=20 AND m.city='上海';
- SELECT * FROM mytable WHERE username like'admin%'; -- 而下句就不会使用:
- SELECT * FROM mytable WHERE Name like'%admin'; -- 因此,在使用LIKE时应注意以上的区别。
十、创建后表的修改
1、添加列
语法:alter table 表名 add 列名 列数据类型 [after 插入位置];
示例:
- -- 在表students的最后追加列 address:
- alter table students add address char(60);
- -- 在名为 age 的列后插入列 birthday:
- alter table students add birthday date after age;
- -- 在名为 number_people 的列后插入列 weeks:
- alter table students add column `weeks` varchar(5) not null default "" after `number_people`;
2、修改列
语法:alter table 表名 change 列名称 列新名称 新数据类型;
- -- 将表 tel 列改名为 telphone:
- alter table students change tel telphone char(13) default "-";
- -- 将 name 列的数据类型改为 char(16):
- alter table students change name name char(16) not null;
- -- 修改 COMMENT 前面必须得有类型属性
- alter table students change name name char(16) COMMENT '这里是名字';
- -- 修改列属性的时候 建议使用modify,不需要重建表
- -- change用于修改列名字,这个需要重建表
- alter table meeting modify `weeks` varchar(20) NOT NULL DEFAULT '' COMMENT '开放日期 周一到周日:0~6,间隔用英文逗号隔开';
- -- `user`表的`id`列,修改成字符串类型长度50,不能为空,`FIRST`放在第一列的位置
- alter table `user` modify COLUMN `id` varchar(50) NOT NULL FIRST ;
3、删除列
(编辑:好传媒网)
【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容!
|