1.添加PRIMARY KEY(主鍵索引)
創(chuàng)新互聯建站-專業(yè)網站定制、快速模板網站建設、高性價比雙牌網站開發(fā)、企業(yè)建站全套包干低至880元,成熟完善的模板庫,直接使用。一站式雙牌網站制作公司更省心,省錢,快速模板網站建設找我們,業(yè)務覆蓋雙牌地區(qū)。費用合理售后完善,十載實體公司更值得信賴。
mysqlALTER TABLE `table_name` ADD PRIMARY KEY ( `column` )
2.添加UNIQUE(唯一索引)
mysqlALTER TABLE `table_name` ADD UNIQUE (
`column`
)
3.添加INDEX(普通索引)
mysqlALTER TABLE `table_name` ADD INDEX index_name ( `column` )
4.添加FULLTEXT(全文索引)
mysqlALTER TABLE `table_name` ADD FULLTEXT ( `column`)
5.添加多列索引
mysqlALTER TABLE `table_name` ADD INDEX index_name ( `column1`, `column2`, `column3` )
1.UNIQUE 關鍵字建唯一索引
mysql CREATE TABLE `wb_blog` (
- `id` smallint(8) unsigned NOT NULL,
- `catid` smallint(5) unsigned NOT NULL DEFAULT '0',
- `title` varchar(80) NOT NULL DEFAULT '',
- `content` text NOT NULL,
- PRIMARY KEY (`id`),
- UNIQUE KEY `catename` (`catid`)
- ) ;
如果建好表了,可以用以下語句建
mysql CREATE UNIQUE INDEX catename ON wb_blog(catid);
2.聯合索引
ALTER TABLE `tasks`
ADD INDEX `testabc` (`title`, `created`) ;
3聯合唯一索引(假設有這個需求,在同一天內不能建兩個tiltle一樣的任務)
ALTER TABLE `tasks`
ADD UNIQUE INDEX `testabc` (`title`, `created`) ;
數據庫建索引的科學性事關數據庫性能,索引也不是越多越好。
MySQL索引類型包括:
(1)普通索引
這是最基本的索引,它沒有任何限制。它有以下幾種創(chuàng)建方式:
◆創(chuàng)建索引
CREATE INDEX indexName ON mytable(username(length)); 如果是CHAR,VARCHAR類型,length可以小于字段實際長度;如果是BLOB和TEXT類型,必須指定 length,下同。
◆修改表結構
ALTER mytable ADD INDEX [indexName] ON (username(length))
◆創(chuàng)建表的時候直接指定
CREATE TABLE mytable( ID INT NOT NULL, username VARCHAR(16) NOT NULL, INDEX [indexName] (username(length)) ); 刪除索引的語法:
DROP INDEX [indexName] ON mytable;
(2)唯一索引
與前面的普通索引類似,不同的就是:索引列的值必須唯一,但允許有空值。如果是組合索引,則列值的組合必須唯一。它有以下幾種創(chuàng)建方式:
◆創(chuàng)建索引
CREATE UNIQUE INDEX indexName ON mytable(username(length))
◆修改表結構
ALTER mytable ADD UNIQUE [indexName] ON (username(length))
◆創(chuàng)建表的時候直接指定
CREATE TABLE mytable( ID INT NOT NULL, username VARCHAR(16) NOT NULL, UNIQUE [indexName] (username(length)) );
(3)主鍵索引
它是一種特殊的唯一索引,不允許有空值。一般是在建表的時候同時創(chuàng)建主鍵索引:
CREATE TABLE mytable( ID INT NOT NULL, username VARCHAR(16) NOT NULL, PRIMARY KEY(ID) ); 當然也可以用 ALTER 命令。記?。阂粋€表只能有一個主鍵。
(4)組合索引
為了形象地對比單列索引和組合索引,為表添加多個字段:
CREATE TABLE mytable( ID INT NOT NULL, username VARCHAR(16) NOT NULL, city VARCHAR(50) NOT NULL, age INT NOT NULL ); 為了進一步榨取MySQL的效率,就要考慮建立組合索引。就是將 name, city, age建到一個索引里:
ALTER TABLE mytable ADD INDEX name_city_age (name(10),city,age); 建表時,usernname長度為 16,這里用 10。這是因為一般情況下名字的長度不會超過10,這樣會加速索引查詢速度,還會減少索引文件的大小,提高INSERT的更新速度。
如果分別在 usernname,city,age上建立單列索引,讓該表有3個單列索引,查詢時和上述的組合索引效率也會大不一樣,遠遠低于我們的組合索引。雖然此時有了三個索引,但MySQL只能用到其中的那個它認為似乎是最有效率的單列索引。
在mysql數據庫中為字段添加索引,意思是對數據庫某個表中一列或若干列值的集合和相應的指向表中物理標識這些值的數據頁進行排序,它是邏輯指針清單。
索引提供指向存儲在表的指定列中的數據值的指針,然后根據指定的排序順序對這些指針排序。數據庫使用索引以找到特定值,然后順指針找到包含該值的行。這樣可以使對應于表的SQL語句執(zhí)行得更快,可快速訪問數據庫表中的特定信息。
擴展資料:
當現有數據中存在重復的鍵值時,大多數數據庫不允許將新創(chuàng)建的唯一索引與表一起保存。數據庫還可能防止添加將在表中創(chuàng)建重復鍵值的新數據。例如,如果在 employee 表中職員的姓 (lname) 上創(chuàng)建了唯一索引,則任何兩個員工都不能同姓。
對某個列建立UNIQUE索引后,插入新記錄時,數據庫管理系統(tǒng)會自動檢查新紀錄在該列上是否取了重復值,在CREATE TABLE 命令中的UNIQE約束將隱式創(chuàng)建UNIQUE索引。