国产探花免费观看_亚洲丰满少妇自慰呻吟_97日韩有码在线_资源在线日韩欧美_一区二区精品毛片,辰东完美世界有声小说,欢乐颂第一季,yy玄幻小说排行榜完本

首頁 > 數據庫 > MySQL > 正文

Mysql索引概論

2024-07-24 12:36:03
字體:
來源:轉載
供稿:網友
  Mysql索引概述
 
  索引介紹
 
  索引是對記錄集的多個字段進行排序的方法。
  類似于書的目錄
  索引類型包括:Btree,B+tree,hash
  索引優缺點
 
   索引優點-通過創建唯一性索引,可以保證數據庫中每一行數據的唯一性-可以加快數據的檢索速度
  索引缺點-當對表中的數據進行增加,刪除和修改的時候,索引也要動態的維護,降低數據的維護速度-索引需要占物理空間
  MySQL鍵值類型
 
  鍵值類型
 
  INDEX:普通索引
  UNIQUE: 唯一索引
  FULLTEXT: 全文索引
  PRIMARY KEY: 主鍵
  POREIGN KEY: 外鍵
  INDEX普通索引
 
  基本概念-一個表中只能有一個primary key 字段-對應的字段值不允許有重復,且不允許賦NULL值-如果有多個字段都作為primary key,稱為復合主鍵,必須一起創建-主鍵字段的KEY標志是PRI-通常與AUTO_INCREMENT 連用-經常把表中能夠唯一標識記錄的字段設置為主鍵字段【記錄編號字段】
  建表的時候指定主鍵字段-primary key(字段名)
  mysql> create table test2(
      -> id int(3) auto_increment,
      -> name varchar(4) not null,
      -> age int(2) not null,
      -> primary key(id)
      -> );
  Query OK, 0 rows affected (0.05 sec)
  mysql> desc test2;
  +-------+------------+------+-----+---------+----------------+
  | Field | Type       | Null | Key | Default | Extra          |
  +-------+------------+------+-----+---------+----------------+
  | id    | int(3)     | NO   | PRI | NULL    | auto_increment |
  | name  | varchar(4) | NO   |     | NULL    |                |
  | age   | int(2)     | NO   |     | NULL    |                |
  +-------+------------+------+-----+---------+----------------+
  3 rows in set (0.00 sec
  在已有的表中設置primary key字段-alter table 表名 add primary key(字段名);
  mysql> desc test2;
  +-------+------------+------+-----+---------+-------+
  | Field | Type       | Null | Key | Default | Extra |
  +-------+------------+------+-----+---------+-------+
  | id    | int(3)     | NO   |     | NULL    |       |
  | name  | varchar(4) | NO   |     | NULL    |       |
  | age   | int(2)     | NO   |     | NULL    |       |
  +-------+------------+------+-----+---------+-------+
  3 rows in set (0.01 sec)
  mysql> alter table test2 add primary key(name);
  Query OK, 0 rows affected (0.05 sec)
  Records: 0  Duplicates: 0  Warnings: 0
  mysql> desc test2;
  +-------+------------+------+-----+---------+-------+
  | Field | Type       | Null | Key | Default | Extra |
  +-------+------------+------+-----+---------+-------+
  | id    | int(3)     | NO   |     | NULL    |       |
  | name  | varchar(4) | NO   | PRI | NULL    |       |
  | age   | int(2)     | NO   |     | NULL    |       |
  +-------+------------+------+-----+---------+-------+
  3 rows in set (0.00 sec)
  移除表中的PRIMARY KEY字段-alter table 表名 drop primary key;(如果有auto_increment則需要先移除再移除主鍵,移除auto_incrememt為對該字段type重新賦值)
  ysql> desc test2;
  +-------+------------+------+-----+---------+-------+
  | Field | Type       | Null | Key | Default | Extra |
  +-------+------------+------+-----+---------+-------+
  | id    | int(3)     | NO   | PRI | NULL    |       |
  | name  | varchar(4) | NO   |     | NULL    |       |
  | age   | int(2)     | NO   |     | NULL    |       |
  +-------+------------+------+-----+---------+-------+
  3 rows in set (0.00 sec)
  mysql> alter table test2 drop primary key;
  Query OK, 0 rows affected (0.31 sec)
  Records: 0  Duplicates: 0  Warnings: 0
  mysql> desc test2;
  +-------+------------+------+-----+---------+-------+
  | Field | Type       | Null | Key | Default | Extra |
  +-------+------------+------+-----+---------+-------+
  | id    | int(3)     | NO   |     | NULL    |       |
  | name  | varchar(4) | NO   |     | NULL    |       |
  | age   | int(2)     | NO   |     | NULL    |       |
  +-------+------------+------+-----+---------+-------+
  3 rows in set (0.01 sec)
  foreign key 外鍵
 
  基本概念-讓當前表字段的值在另一個表中字段值得范圍內選擇。
  使用外鍵的條件-表的存儲引擎必須是innodb-字段類型要一致-被參照字段必須要是索引類型的一種(primary key)。

(編輯:武林網)

發表評論 共有條評論
用戶名: 密碼:
驗證碼: 匿名發表
主站蜘蛛池模板: 烟台市| 丰顺县| 南丹县| 大英县| 准格尔旗| 乌审旗| 成安县| 五莲县| 唐海县| 资溪县| 盈江县| 杂多县| 南通市| 枣阳市| 台前县| 榆林市| 泽普县| 长顺县| 南木林县| 将乐县| 开封市| 瑞昌市| 新营市| 邛崃市| 筠连县| 清水河县| 莲花县| 娄底市| 远安县| 专栏| 楚雄市| 小金县| 宜丰县| 阳春市| 邻水| 吉林省| 徐汇区| 深圳市| 中江县| 阳西县| 乌拉特前旗|