MySQL鍵值 索引

2021-09-26 15:50:41 字數 3255 閱讀 4110

索引是什麼?

索引就是對資料表中的若干字段進行排序的方法,類似於對一本書做目錄,有了目錄就可以快速定位資料的具體位置。

索引的優點:

通過建立唯一性索引,可以保證資料庫表中每一行資料的唯一性

可以加快資料的檢索速度

索引的缺點:

當對表中的資料進行增加、刪除和修改的時候,索引也要動態的維護,會降低資料庫的寫速度

索引需要佔額外的物理空間

鍵值的型別

鍵值含義

index

普通索引

unique

唯一索引

fulltext

全文索引

primary key

主鍵foreign key

外來鍵主鍵擁有唯一索引的全部功能,全文索引效能太差,不建議使用。

簡單索引index

乙個表中可以有多個index欄位

欄位的值允許有重複,切可以賦null值

經常把做查詢條件的字段設定為index欄位

index欄位的key標誌是mul

案例 : 建立資料表並為id欄位和name欄位新增index普通索引

mysql> create table school.into(

id int(8) not null,

name varchar(6),

*** enum('male','female'),

age int(3) default 1,

index(id),index(name)

);

向已有的資料表中建立或刪除索引

mysql> create index age on school.info(age);		#為age欄位新增名為age的普通索引
刪除資料表中的索引

mysql> drop index nome on school.info			#刪除info表中名為name的索引
檢視資料表中的索引資訊

mysql> show index from school.info\g;			#檢視info表中的索引資訊
主鍵索引primary key

乙個表中只能有乙個primary key主鍵字段

對應的字段的值不允許有重複,且不允許null值

如果有多個欄位都作為primary key,稱為復合主鍵,必須一起建立。

主鍵欄位的key標誌是pri

通常與auto_increment連用

經常把表中能夠唯一標識記錄的字段設定為主鍵欄位

建立主鍵的方法一

mysql> create table school.student(

stu_id char(9),

name char(5),

primary key(stu_id));

建立主鍵的方法二

mysql> create table school.student2(

id char(9) primary key,

name char(5));

建立主鍵的方法三 , 向已存在的資料表中建立主鍵索引

alter table school.student add primary key(id);
刪除資料表的主鍵索引

mysql> alter table school.student drop primary key;
mysql> create table school.book(

姓名 char(20),

單位 char(20),

技能 int(100),

primary key(姓名,單位));

注 : 姓名和單位可以單獨重複,但是都重複會搞錯

mysql> create table school.demo(

id int(100) auto_increment primary key, #id序號在不輸入的情況下預設從上乙個id號自動加1

name char(10));

當乙個資料表同時有自增長和主鍵時,一定要通過 alter 將自增長刪除後才可以刪除主鍵,無法直接刪除主鍵。

讓當前表字段的值在另乙個表中某個字段值的範圍內選擇。

使用外來鍵的條件: 表儲存引擎必須是innodb(預設就是)

欄位的型別必須一致

被參照字段必須是索引型別中的一種(primary key)

foreign key (表a的欄位名稱)

references (表b的欄位名稱)

on update casecade #同步更新

on delete casecade #同步刪除

a表

mysql> create table press.author(

姓名 char(10) primary key,

位址 char(10)

);

b表

mysql> create table press.book(

書名 char(20),

作者 char(10),

foreign key(作者) references press.author(姓名)

on update cascade on delete cascade);

mysql> alter press.book add foreig key(作者) references press.author(姓名) on update cascade on delete cascade;
mysql> show create table press.book\g;
刪除外來鍵

mysql> alter table press.book drop foreign key 外鍵名

MySQL鍵值 什麼是索引

什麼是索引 就是對資料表中的若干字段進行排序的方法,類似於對一本書做目錄,有了目 錄就可以快速定位資料的具體位置。索引的優點 通過建立唯一性索引,可以保證資料庫表中每一行資料的唯一性 可以加快資料的檢索速度 索引的缺點 當對表中的資料進行增加 刪除和修改的時候,索引也要動態的維護,會降低資料庫 的寫...

MySQL 鍵值的使用

鍵值的種類 普通索引 index 唯一索引 unique 主鍵 primary key 外來鍵 foreign key 全文索引 fulltext 普通索引介紹 用來給字段值排隊,加快對資料庫查詢的速度,配置後占用物理儲存空間 主要型別有 btree b tree hash。使用規則 乙個表可以有多...

mysql 索引 手冊 MySQL 索引

mysql 索引 mysql索引的建立對於mysql的高效執行是很重要的,索引可以大大提高mysql的檢索速度。打個比方,如果合理的設計且使用索引的mysql是一輛蘭博基尼的話,那麼沒有設計和使用索引的mysql就是乙個人力三輪車。索引分單列索引和組合索引。單列索引,即乙個索引只包含單個列,乙個表可...