mysql索引
1.PRIMARY KEY(主键索引)
mysql> ALTER TABLE `table_name` ADD PRIMARY KEY ( `column` )
2.UNIQUE(唯一索引)
mysql> ALTER TABLE `table_name` ADD UNIQUE ( `column` )
3.INDEX(普通索引)
mysql> ALTER TABLE `table_name` ADD INDEX index_name ( `column` )
4.FULLTEXT(全文索引)
mysql> ALTER TABLE `table_name` ADD FULLTEXT ( `column` )
5.多列索引
mysql> ALTER TABLE `table_name` ADD INDEX index_name ( `column1`, `column2`, `column3` )
6.删除索引
mysql> ALTER TABLE `table_name` DROP INDEX index_name
如果从表中删除了某列,则索引会受到影响。对于多列组合的索引,如果删除其中的某列,则该列也会从索引中删除。如果删除组成索引的所有列,则整个索引将被删除。
mysql导出全部索引
SELECT CONCAT(\'ALTER TABLE `\',TABLE_NAME,\'` \', \'ADD \', IF(NON_UNIQUE = 1, CASE UPPER(INDEX_TYPE) WHEN \'FULLTEXT\' THEN \'FULLTEXT INDEX\' WHEN \'SPATIAL\' THEN \'SPATIAL INDEX\' ELSE CONCAT(\'INDEX `\', INDEX_NAME, \'` USING \', INDEX_TYPE ) END, IF(UPPER(INDEX_NAME) = \'PRIMARY\', CONCAT(\'PRIMARY KEY USING \', INDEX_TYPE ), CONCAT(\'UNIQUE INDEX `\', INDEX_NAME, \'` USING \', INDEX_TYPE ) ) ),\'(\', GROUP_CONCAT(DISTINCT CONCAT(\'`\', COLUMN_NAME, \'`\') ORDER BY SEQ_IN_INDEX ASC SEPARATOR \', \'), \');\') AS \'Show_Add_Indexes\' FROM information_schema.STATISTICS WHERE TABLE_SCHEMA = \'pbq\' GROUP BY TABLE_NAME, INDEX_NAME ORDER BY TABLE_NAME ASC, INDEX_NAME ASC
mysql 删除全部索引
SELECT CONCAT( \'ALTER TABLE `\', TABLE_NAME, \'` \', GROUP_CONCAT( DISTINCT CONCAT( \'DROP \', IF(UPPER(INDEX_NAME) = \'PRIMARY\', \'PRIMARY KEY\', CONCAT(\'INDEX `\', INDEX_NAME, \'`\') ) ) SEPARATOR \', \' ), \';\' ) FROM information_schema.STATISTICS WHERE TABLE_SCHEMA = \'destination_database_name\' GROUP BY TABLE_NAME ORDER BY TABLE_NAME ASC
mysql修改表结构
增加列[add 列名]
①alter table 表名 add 列名 列类型 列参数【加的列在表的最后面】
②alter table 表名 add 列名 列类型 列参数 after 某列【把新列加在某列后面】
③alter table 表名 add 列名 列类型 列参数 first【把新列加在最前面】
删除列[drop 列名]
①alter table 表名 drop 列名
修改列[modife 列名]
①alter table 表名 modify 列名 新类型 新参数【修改列类型】
②alter table 表名 change 旧列名 新列名 新类型 新参数【修改列名和列类型】
查询列
①desc 表名【查询所有列】
②show columns from 表名【效果和desc一样】
③show create table 表名【查看表的创建代码】