mysql 主鍵 索引

2021-07-26 12:59:55 字數 1831 閱讀 1313

mysql新增索引命令

1.primary key(主鍵索引)

mysql>alter tabletable_nameadd primary key (column)

2.unique(唯一索引)

mysql>alter tabletable_nameadd unique (

column)

3.index(普通索引)

mysql>alter tabletable_nameadd index index_name (column)

4.fulltext(全文索引)

mysql>alter tabletable_nameadd fulltext (column)

5.多列索引

mysql>alter tabletable_nameadd 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...