中文字幕av专区_日韩电影在线播放_精品国产精品久久一区免费式_av在线免费观看网站

溫馨提示×

溫馨提示×

您好,登錄后才能下訂單哦!

密碼登錄×
登錄注冊×
其他方式登錄
點擊 登錄注冊 即表示同意《億速云用戶服務條款》

MySQL索引概述

發布時間:2020-06-05 17:46:22 來源:網絡 閱讀:830 作者:期待美好 欄目:MySQL數據庫

MySQL索引概述
索引的優點:
1.通過創建唯一性索引,可以保證數據庫表中每一行數據的唯一性。
2.可以加快數據的檢索速度。
索引缺點:
1.當對表中的數據進行增加、刪除和修改的時候,索引也要動態的維護,降低了數據的維護速度。
2.索引需要占據物理空間。

索引的類型:
1.INDEX:普通索引
2.PRIMARY KEY:主鍵
3.UNIQUE:唯一索引
4.FOREIGN KEY:外鍵
5.FULLTEXT:群文索引

1.INDEX:普通索引
1.1一個表中可以有多個INDEX字段。
1.2字段的值允許有重復,且可以賦NULL值。
1.3經常把做查詢條件的字段設置為INDEX字段。
1.4INDEX字段的KEY標志是MUL。

insert into 庫名.表名 values(值列表); #插入表記錄
select * from 庫名.表名; 查看表的所有記錄

例:建表的時候指定索引字段
-INDEX(字段1),INDEX(字段2)...
mysql>create database ku;
mysql>create table ku.abc(
>id    int(2) not null,
>name  varchar(4)  not null,
>age   int(3)  not null,
>index(name),index(age)               
>);

mysql>desc ku.abc;
Field  Type  Null  Key   Default   Extra
..   ..     ..      MUL    ..     ..

mysql>insert into ku.abc values(1,"wang",23);
mysql>select * from ku.abc;

在已有創建的表中設置INDEX字段
格式:create index 索引名 on 庫名.表名(字段);

刪除指定表的索引字段
格式:drop index 索引名 on 庫名.表名;

例:
mysql>create index  xixi on ku.abc(id);
mysql>drop  index  xixi on ku.abc;

查看表的索引信息
格式:show index from 庫名.表名;

例:
mysql>show index from ku.abc\G;
......
Index_type: BTREE(默認使用B樹算法)
......

默認使用的索引類型:BTREE(二叉樹) hash B+Tree

2.PRIMARY KEY:主鍵
2.1一個表中只能有一個primary key字段
2.2對應字段的值不允許有重復,且不允許賦NULL值。
2.3如果有多個字段都作為primary key,稱為復合主鍵,必須一起創建。
2.4主鍵字段的KEY標志是PRI。
2.5通常與AUTO_INCREMENT連用。
2.6經常把表中能夠唯一標示記錄的字段設置為主鍵字段。(如記錄編號字段)

注釋:
主鍵與auto_increment 連用
字段值自動增長 +1
主鍵 并且 數值類型

例:建表的時候指定主鍵字段
-PRIMARY KEY(字段名)
mysql>create table ku.abc2(
>id  int(3)  auto increment,
>name  varchar(5)  not null,
>age   int(2)  not null,
>primary key(id)
>);

mysql>desc ku.abc2;
 Field  Type  Null  Key  Default    Extra
..    ..    ..     PRI     ..      ..

mysql>insert into ku.abc2 values(2,"wang",23);
mysql>select * from ku.abc2;

在已創建的表中設置PRIMARY KEY字段
格式:alter table 庫名.表名 ADD PRIMARY KEY(字段名);

刪除指定表的PRIMARY KEY字段
格式:alter table 庫名.表名 DROP PRIMARY KRY;
注意:如果有自增屬性(AUTO_INCREMENT),必須先刪除。

例:
mysql>alter tabel ku.abc2  drop primary key;
mysql>alter table ku.abc2 add primary key(id);

3.UNIQUE:唯一索引
3.1一個表中可以有多個UNIQUE字段。
3.2對應字段的值不允許有重復。
3.3UNIQUE字段的KEY標志是UNI。
3.4UNIQUE字段的值允許為NULL,當將其修改為不允許為NULL時,則此字段限制于主鍵相同,KEY會變為PRI。

例:建表的時候指定UNIQUE字段
-UNIQUE(字段1),UNIQUE(字段2)...
mysql>create table ku.abc3(
>id char(6),
>name  varchar(4)  not null,
>age int(3)  not null,
>unique(id),unique(name),unique(age)
>);

mysql>desc ku.abc3;
Field   Type    Null      Key    Default   Extra
..     ..    YES    UNI     ..      ..

mysql>insert into ku.abc3 values(3,"wang",23);
mysql>insert into ku.abc values(4,"lisi",23);
mysql>select * from ku.abc3;

在已創建的表中設置UNIQUE字段
格式:create unique index unique字段名 on 庫名.表名(字段名);

刪除指定表的UNIQUE字段
格式:drop index unique字段名 on 庫名.表名(字段名);

例:
mysql>drop  index name on  ku.abc3; #于刪除INDEX索引的方法相同。
mysql>create unique  index name on ku.abc3(age);

4.FOREIGN KEY:外鍵
4.1讓當前表字段的值在另一個表字段的值中的范圍內選擇。

外鍵的使用條件:
1.表的存儲引擎必須是innodb。
2.兩表的字段類型要一致。
3.被參照字段必須要是主鍵類型(PRIMARY KEY)。

基本用法:
格式:foreign key(表A的字段名) references 表B(字段名)
on update cascade on delete cascade #參照表為B,即從B表字段的值中的范圍內選擇。

例:
提示:被參照字段必須要是主鍵類型(PRIMARY KEY)。
mysql>create table  ku.abc4(
>id  int(4),
>name char(5),
>foreign key(name),
>references  abc3(name),
>on update  cascade
>on  delete cascade
>engine=innodb
>);

刪除外鍵字段
格式:alter table 表名 drop foreign key 約束名;

例:
mysql>show create table  ku.abc4\G;
...
CONSTRAINT `xxx`    #`xxx`里面是約束名
.....

mysql>alter table ku.abc4 drop foreigen key xxx ;
向AI問一下細節

免責聲明:本站發布的內容(圖片、視頻和文字)以原創、轉載和分享為主,文章觀點不代表本網站立場,如果涉及侵權請聯系站長郵箱:is@yisu.com進行舉報,并提供相關證據,一經查實,將立刻刪除涉嫌侵權內容。

AI

宁国市| 黔东| 玉门市| 龙胜| 茶陵县| 贡嘎县| 阳谷县| 珲春市| 阜宁县| 芒康县| 常州市| 英德市| 滦南县| 乐平市| 临澧县| 晴隆县| 新宾| 泽州县| 平阴县| 炉霍县| 长子县| 齐齐哈尔市| 景泰县| 永昌县| 财经| 息烽县| 洞口县| 聊城市| 深泽县| 称多县| 宜章县| 和林格尔县| 玉田县| 邵东县| 游戏| 德安县| 潼关县| 靖西县| 和静县| 丹东市| 怀集县|