mysql新增索引命令
1.primary key(主鍵索引)
mysql>alter tabletable_name
add primary key (column
)
2.unique(唯一索引)
mysql>alter tabletable_name
add unique (
column
)
3.index(普通索引)
mysql>alter tabletable_name
add index index_name (column
)
4.fulltext(全文索引)
mysql>alter tabletable_name
add fulltext (column
)
5.多列索引
mysql>alter tabletable_name
add index index_name (column1
,column2
,column3
)
mysql主鍵刪除/新增
2修改資料庫和表的字符集
alter database maildb default character set utf8;//修改資料庫的字符集
alter table mailtable default character set utf8;//修改表的字符集
如果您想要把錶預設的字符集和所有字元列(char, varchar, text)改為新的字符集,應使用如下語句:
alter table tbl_name convert to character set charset_name;
警告:前面的操作轉換了字符集之間的列型別。如果您有一列使用一種字符集(如latin1),但是儲存的值實際上使用了其它的字符集(如utf8),這種情況不是您想要的。此時,您必須對這樣的列進行以下操作。
alter table t1 change c1 c1 blob;
alter table t1 change c1 c1 text character set utf8;
這種方法能夠實現此功能的原因是,當您轉換到blob列或從blob列轉換過來時,並沒有發生轉換。
3 mysql的主鍵問題:
mysql的兩種主鍵。primary key 和not null auto_incriment
在建立mysql表時,給乙個字段新增了主鍵primary key
在insert資料時可以不用insert主鍵,mysql會自動新增0,但是在第二次insert時沒有填寫值mysql資料庫還是預設新增0,會導致有重複的主鍵,這是不可以的。所有在定義了primary key時,在insert資料時要給主鍵填寫值。
在建立mysql表時,給乙個字段新增了主鍵not null auto_increment=1;
這也是乙個主鍵。時自增長的以1為開始。這個欄位是可以不用填寫值的,mysql資料庫會自動給填寫值,不會出現primary key的狀況。
alter table tb add primary key(id);
alter table tb change id id int(10) not null auto_increment=1;
4 刪除自增長的主鍵id
先刪除自增長在刪除主鍵
alter table tb change id id int(10);//刪除自增長
alter table tb drop primary key;//刪除主建
mysql主鍵索引 MySQL索引之主鍵索引
在mysql裡,主鍵索引和輔助索引分別是什麼意思,有什麼區別?上次的分享我們介紹了聚集索引和非聚集索引的區別,本次我們繼續介紹主鍵索引和輔助索引的區別。1 主鍵索引 主鍵索引,簡稱主鍵,原文是primary key,由乙個或多個列組成,用於唯一性標識資料表中的某一條記錄。乙個表可以沒有主鍵,但最多只...
mysql非主鍵索引 主鍵索引和非主鍵索引的區別
1.什麼是最左字首原則?以下回答全部是基於mysql的innodb引擎 例如對於下面這一張表 如果我們按照 name 欄位來建立索引的話,採用b 樹的結構,大概的索引結構如下 如果我們要進行模糊查詢,查詢name 以 張 開頭的所有人的id,即 sql 語句為 select id from tabl...
mysql非主鍵索引 主鍵索引和非主鍵索引解析
1.什麼是最左字首原則?以下回答全部是基於mysql的innodb引擎 例如對於下面這一張表 如果我們按照 name 欄位來建立索引的話,採用b 樹的結構,大概的索引結構如下 如果我們要進行模糊查詢,查詢name 以 張 開頭的所有人的id,即 sql 語句為 select id from tabl...