程序師世界是廣大編程愛好者互助、分享、學習的平台,程序師世界有你更精彩!
首頁
編程語言
C語言|JAVA編程
Python編程
網頁編程
ASP編程|PHP編程
JSP編程
數據庫知識
MYSQL數據庫|SqlServer數據庫
Oracle數據庫|DB2數據庫
 程式師世界 >> 數據庫知識 >> MYSQL數據庫 >> MySQL綜合教程 >> mysql 修改表/字段 增加/刪除表索引

mysql 修改表/字段 增加/刪除表索引

編輯:MySQL綜合教程

mysql教程 修改表/字段 增加/刪除表索引

create table test (blob_col blob, index(blob_col(10)));在mysql 5.1中,對於myisam和innodb表,前綴可以達到1000字節長。請注意前綴的限制應以字節為單位進行測量,而create table語句中的前綴長度解釋為字符數。當為使用多字節字符集的列指定前綴長度時一定要加以考慮。

還可以創建fulltext索引。該索引可以用於全文搜索。只有myisam存儲引擎支持fulltext索引,並且只為char、varchar和text列。索引總是對整個列進行,不支持局部(前綴)索引

 

加索引
mysql> alter table 表名 add index 索引名 (字段名1[,字段名2 …]);

例子: mysql> alter table employee add index emp_name (name);
加主關鍵字的索引
mysql> alter table 表名 add primary key (字段名);
例子: mysql> alter table employee add primary key(id);
加唯一限制條件的索引
mysql> alter table 表名 add unique 索引名 (字段名);
例子: mysql> alter table employee add unique emp_name2(cardnumber);
mysql alter語法運用:查看某個表的索引
mysql> show index from 表名;

例子: mysql> show index from employee;

刪除某個索引
mysql> alter table 表名 drop index 索引名;

例子: mysql>alter table employee drop index emp_name;

修改表:增加字段:mysql> alter table table_name add field_name field_type;
查看表:mysql> select * from table_name;

修改原字段名稱及類型:mysql> alter table table_name change old_field_name new_field_name field_type;

刪除字段:mysql alter table table_name drop field_name;


最後補充一點

多列索引
mysql可以為多個列創建索引。一個索引可以包括15個列。對於某些列類型,可以索引列的前綴(參見7.4.3節,“列索引”)。

多列索引可以視為包含通過連接索引列的值而創建的值的排序的數組。

mysql按這樣的方式使用多列索引:當你在where子句中為索引的第1個列指定已知的數量時,查詢很快,即使你沒有指定其它列的值。

假定表具有下面的結構:

create table test (    id int not null,    last_name char(30) not null,    first_name char(30) not null,    primary key (id),    index name (last_name,first_name));name索引是一個對last_name和first_name的索引。索引可以用於為last_name,或者為last_name和first_name在已知范圍內指定值的查詢。因此,name索引用於下面的查詢:

select * from test where last_name='widenius'; select * from test    where last_name='widenius' and first_name='michael'; select * from test    where last_name='widenius'    and (first_name='michael' or first_name='monty'); select * from test    where last_name='widenius'    and first_name >='m' and first_name < 'n';然而,name索引不用於下面的查詢:

select * from test where first_name='michael'; select * from test    where last_name='widenius' or first_name='michael';

  1. 上一頁:
  2. 下一頁:
Copyright © 程式師世界 All Rights Reserved