亚洲香蕉成人av网站在线观看_欧美精品成人91久久久久久久_久久久久久久久久久亚洲_热久久视久久精品18亚洲精品_国产精自产拍久久久久久_亚洲色图国产精品_91精品国产网站_中文字幕欧美日韩精品_国产精品久久久久久亚洲调教_国产精品久久一区_性夜试看影院91社区_97在线观看视频国产_68精品久久久久久欧美_欧美精品在线观看_国产精品一区二区久久精品_欧美老女人bb

首頁 > 數據庫 > MySQL > 正文

MySQL中KEY、PRIMARY KEY、UNIQUE KEY、INDEX 的區別

2024-07-24 13:14:04
字體:
來源:轉載
供稿:網友

對于題目中提出的問題,可以拆分來一步步解決。在 MySQL 中 KEY 和 INDEX 是同義。那這個問題就可以簡化為 PRIMARY KEY,UNIQUE KEY 和 INDEX 的區別。而這三者也正好是索引的劃分,主鍵索引,唯一索引和普通索引(INDEX)。

使用 INDEX 來加速從數據庫中讀取數據。INDEX 通常加在那些 JOIN, WHERE,和 ORDER BY 子句的列上。

創建索引時,需要確保該索引是應用在 SQL 查詢語句的條件(一般作為 WHERE 子句的條件)。 實際上,索引也是一張表,該表保存了主鍵與索引字段,并指向實體表的記錄。

索引也有它的缺點:雖然索引提高了查詢速度,卻會降低更新表的速度,如對表進行INSERT、UPDATE和DELETE。因為更新表時,MySQL不僅要保存數據,還要保存一下索引文件。

MySQL 中 KEY 與 INDEX 區別

KEY 通常是 INDEX 同義詞。如果關鍵字屬性 PRIMARY KEY 在列定義中已給定,則 PRIMARY KEY 也可以只指定為KEY。這么做的目的是與其它數據庫系統兼容。 PRIMARY KEY 是一個唯一 KEY,此時,所有的關鍵字列必須定義為NOT NULL。如果這些列沒有被明確地定義為NOT NULL,MySQL應隱含地定義這些列。

KEY 即鍵值,是關系模型理論中的一部份,比如有主鍵(PRIMARY KEY),外鍵(Foreign KEY)等,用于數據完整性檢否與唯一性約束等。而 INDEX 則處于實現層面,比如可以對表個的任意列建立索引,那么當建立索引的列處于SQL語句中的Where條件中時,就可以得到快速的數據定位,從而快速檢索。至于UNIQUE INDEX,則只是屬于INDEX中的一種而已,建立了UNIQUE INDEX表示此列數據不可重復,猜想MySQL對UNIQUE INDEX類型的索引可以做進一步特殊優化吧。

于是,在設計表的時候,KEY只是要處于模型層面的,而當需要進行查詢優化,則對相關列建立索引即可。

KEY

KEY 是數據庫的物理結構,包含兩層含義,一是約束,偏重于約束和規范數據庫的結構完整性,二是索引,輔助查詢。
•primary key 有兩個作用,一是約束作用(constraint),用來規范一個存儲主鍵和唯一性,但同時也在此key上建立了一個index;
•unique key 也有兩個作用,一是約束作用(constraint),規范數據的唯一性,但同時也在這個key上建立了一個index;
•foreign key也有兩個作用,一是約束作用(constraint),規范數據的引用完整性,但同時也在這個key上建立了一個index;

可見,key是同時具有constraint和index的意義.

INDEX

INDEX 也是數據庫的物理結構,但他只有輔助查詢作用,它會在創建時占用另外的空間。索引分為前綴索引、全文索引等。索引只是索引,不會去約束索引字段的行為。

PRIMARY KEY 和 UNIQUE KEY 的區別

PRIMARY KEYs(主鍵) 和 UNIQUE KEYs(唯一鍵約束) 是類似的, PRIMARY KEY通常是一列,也有可能多列,通常由他來決定一行數據(row)。 一張表只能有一個 PRIMARY KEY,但可以有很多 UNIQUE KEY。 當給一列設置為 UNIQUE KEY 之后,不能有兩行在該列上有相同的數據。 PRIMARY KEY 不允許有 NULL值,但是 UNIQUE KEY 可以。

修改表 `ALTER TABLE table_name ADD PRIMARY KEY(column_name, …)

總結,相同點:
•PRIMARY KEY 和 UNIQUE KEY 都是用來保證列上數據的為原型
•都可以在一列或者多列上加

差異點:
•同一張表 PRIMARY KEY 只能有一個, UNIQUE KEY可以有多個

PRIMARY KEY 不能有空值, UNIQUE KEY 可以有。如果 PRIMARY KEY 的1個或多個列為NULL,在增加PRIMARY KEY時,列自動更改為 NOT NULL 。而UNIQUE KEY 對列沒有要求是通過參考索引實施的,如果插入的值均為NULL,則根據索引的原理,全NULL值不被記錄在索引上,所以插入全NULL值時,可以有重復的,而其他的則不能插入重復值。

alter table t add constraint uk_t_1 UNIQUE (a,b); insert into t (a ,b ) values (null,1); # 不能重復 insert into t (a ,b ) values (null,null);#可以重復

在MySQL中,對于一個PRIMARY KEY的列,MySQL已經自動對其建立了UNIQUE INDEX,無需重復再在上面建立索引了。

網上關于 PRIMARY KEY 和 UNIQUE INDEX 的一段解釋:

Note that “PRIMARY” is called PRIMARY KEY not INDEX.
KEY is something on the logical level, describes your table and database design (i.e. enforces referential integrity …)
INDEX is something on the physical level, helps improve access time for table operations.
Behind every PK there is (usually) UNIQUE INDEX created (automatically).

操作索引

建立索引會占用磁盤空間的索引文件。
CREATE INDEX IndexName ON mytable(username(length));

如果是 CHAR,VARCHAR 類型,length 可以小于字段實際長度;如果是 BLOB 和 TEXT類型,必須指定 length。

在創建表時創建索引:

CREATE TABLE mytable(  ID INT NOT NULL,   username VARCHAR(15) NOT NULL, INDEX [INDEXName] (username(length)) );

刪除索引


DROP INDEX [INDEXName] ON mytable;


注:相關教程知識閱讀請移步到MYSQL教程頻道。
發表評論 共有條評論
用戶名: 密碼:
驗證碼: 匿名發表
亚洲香蕉成人av网站在线观看_欧美精品成人91久久久久久久_久久久久久久久久久亚洲_热久久视久久精品18亚洲精品_国产精自产拍久久久久久_亚洲色图国产精品_91精品国产网站_中文字幕欧美日韩精品_国产精品久久久久久亚洲调教_国产精品久久一区_性夜试看影院91社区_97在线观看视频国产_68精品久久久久久欧美_欧美精品在线观看_国产精品一区二区久久精品_欧美老女人bb
欧美午夜精品久久久久久人妖| 91精品久久久久久久久不口人| 国产精品看片资源| 亚洲国产一区自拍| 日韩av不卡在线| 久久国产精彩视频| 国产亚洲一区精品| 色诱女教师一区二区三区| 亚洲人成在线一二| 国产精品网红直播| 午夜精品久久久99热福利| 色视频www在线播放国产成人| 欧美日韩美女在线观看| 亚洲白拍色综合图区| 色噜噜狠狠色综合网图区| 欧美精品videos性欧美| 亚洲精品久久久久久久久久久久久| 国产欧美日韩视频| 久久亚洲精品网站| 国产日韩欧美夫妻视频在线观看| 日韩在线视频二区| 欧美午夜激情在线| 国产成人午夜视频网址| 国产精品十八以下禁看| 色视频www在线播放国产成人| 国产精品大陆在线观看| 日韩av片永久免费网站| 欧美成人在线网站| 日韩中文字幕亚洲| 美女性感视频久久久| 欧美午夜视频在线观看| 亚洲美女黄色片| 一本大道亚洲视频| 欧美亚洲一级片| 亚洲国产精品资源| 国产一区二区黑人欧美xxxx| 欧美亚洲国产成人精品| 国产欧美欧洲在线观看| 国产一区二区三区视频在线观看| 日本亚洲欧洲色α| 久久精品在线播放| 久久天天躁夜夜躁狠狠躁2022| 亚洲成色999久久网站| 亚洲护士老师的毛茸茸最新章节| 欧美理论在线观看| 69av在线播放| 免费97视频在线精品国自产拍| 精品国产精品三级精品av网址| 国产精品视频导航| 亚洲第一页自拍| 黄色一区二区三区| 亚洲最新av在线| 狠狠综合久久av一区二区小说| 国产69精品久久久久9999| 亚洲色图在线观看| 亚洲精品资源美女情侣酒店| 九九精品在线播放| 日韩av在线播放资源| 综合网日日天干夜夜久久| 欧美日韩国产一中文字不卡| 亚洲乱码国产乱码精品精天堂| 成人激情春色网| 亚洲精品国精品久久99热| 国产精品丝袜白浆摸在线| 亚洲综合色av| 亚洲成人黄色网址| 国产69精品久久久久9999| 国产成人精品久久二区二区91| 91久久久亚洲精品| 日韩av色综合| 欧美一区二区大胆人体摄影专业网站| 亚洲毛片在线观看| 亚洲男人天堂手机在线| 国产色婷婷国产综合在线理论片a| 亚洲一区二区三区sesese| 最近2019中文字幕大全第二页| 久久精品国亚洲| 欧美精品久久久久久久久| 国产精品偷伦一区二区| 日韩精品在线免费播放| 51ⅴ精品国产91久久久久久| 亚洲国产中文字幕在线观看| 97热精品视频官网| 久久影院资源网| 欧美在线不卡区| 一区二区欧美日韩视频| 成人网中文字幕| 日本久久精品视频| 欧美影院成年免费版| 国产欧美日韩亚洲精品| 欧美在线视频一区二区| 久久久久久久国产精品| 人人做人人澡人人爽欧美| 亚洲自拍偷拍在线| 国产主播喷水一区二区| 欧美成人免费全部| 中文字幕9999| 69久久夜色精品国产69乱青草| 欧美精品一区在线播放| 欧美日韩激情视频8区| 欧美性xxxx极品hd满灌| 欧美在线激情视频| 琪琪亚洲精品午夜在线| 97超级碰在线看视频免费在线看| 茄子视频成人在线| 欧美日韩亚洲网| 国产综合香蕉五月婷在线| 韩国精品美女www爽爽爽视频| 亚洲石原莉奈一区二区在线观看| 91久久久亚洲精品| 久久久www成人免费精品| 国产精品人成电影在线观看| 一区二区三区国产在线观看| 欧美精品videosex极品1| 日韩av第一页| 国模私拍一区二区三区| 欧美色视频日本高清在线观看| 伊人久久男人天堂| 欧美一区二粉嫩精品国产一线天| 欧美日韩黄色大片| 亚洲乱码国产乱码精品精天堂| 欧日韩在线观看| 91国产精品91| 久久精品视频在线| 久久成年人免费电影| 亚洲国产精品va| 日韩精品在线观看视频| 欧美夫妻性视频| 欧美午夜xxx| 亚洲精品999| 国产激情久久久久| 亚洲成人久久久| 亚洲免费一级电影| 久久久久久久影视| 国产精品狠色婷| 亚洲美女av黄| 正在播放亚洲1区| 91精品久久久久久久久久久久久| 韩国精品美女www爽爽爽视频| 久久久999精品| 精品国产乱码久久久久久婷婷| 亚洲欧美制服第一页| 26uuu另类亚洲欧美日本老年| 日韩毛片在线观看| 日韩欧美精品网址| 韩国视频理论视频久久| 亚洲成人av在线播放| 久热99视频在线观看| 国产精品综合久久久| 亚洲电影成人av99爱色| 精品激情国产视频| 久久激情视频免费观看| 久久影院免费观看| 欧美日韩精品二区| 欧美裸体xxxxx| 亚洲男女自偷自拍图片另类| 国产一区二区丝袜| 日韩欧美国产免费播放| 91国产美女视频| 色偷偷88888欧美精品久久久| 国产精品国产亚洲伊人久久| 国产精品久久999| 日韩欧美国产骚| 亚洲精品国产福利|