Mysql数据库入门---索引以及小练习

索引

什么是索引?

索引就是一种数据结构,能够帮助我们快速的检索数据库中的数据。

—————————————————————————————————————

索引的优势和劣势

优势:可以提高数据检索的效率,降低数据库的IO成本

劣势:索引会占据磁盘空间

—————————————————————————————————————

索引都有哪些类型?

主键索引:求数据库主动创建,不允许有空值。

单例索引 普通索引:一个索引只包含一个列,一个表可以有多个索引

唯一索引:索引列中的值必须是唯一的,但是允许为空值。

复合索引:同一索引包含多个列

全文索引:只能在文本类型CHAR,VARCGAR,TEXT类型字段上创建全文索引:字段长度比较大时,如果创建普通所引,在进行like模糊查询时效率比较低,这是可以创建全文索引。MYISAM和InnoDB中都可以使用全文索引

二:索引小练习

涉及到的表

#创建tb_user表,用来存放数据
CREATE TABLE tb_user(
id INT,
NAME VARCHAR(10),
phone VARCHAR(20),
email VARCHAR(30),
profession VARCHAR(20),
age INT,
STATUS INT,
entrydate DATE,
INDEX(id)
);
#给tb_user表插入数据
INSERT INTO tb_user(id,NAME,phone,email,profession,age,STATUS,entrydate)
VALUES(1,'韩信','1546656677','[email protected]','会计',25,1,'1997-09-09'),
(2,'妲己','1246656677','[email protected]','化工',22,1,'1997-09-09'),
(3,'闽越','1346656677','[email protected]','国际贸易',45,2,'1997-09-09'),
(4,'廉颇','1446656677','[email protected]','土木工程',56,1,'1997-09-09'),
(5,'姜子牙','1234556677','[email protected]','计算机',85,2,'1997-09-09'),
(6,'蔺相如','1456656677','[email protected]','城市园林',43,2,'1997-09-09'),
(7,'孙悟空','198656677','[email protected]','工程造价',29,1,'1997-09-09'),
(8,'后裔','1798656677','[email protected]','应用数学',30,2,'1997-09-09');

(1)、name字段为姓名字段,该字段的值可能会重复,为该字段创建索引

mysql> create index idx_user_name on tb_user(name);
Query OK, 0 rows affected (0.02 sec)
Records: 0  Duplicates: 0  Warnings: 0

(2).phone手机号字段的值是非空且唯一的,为该字段创建唯一索引

mysql> create unique index idx_user_phone on tb_user(phone);
Query OK, 0 rows affected (0.02 sec)
Records: 0  Duplicates: 0  Warnings: 0

(3).为profession、age、status创建联合索引

mysql> create index idx_user_pri_age_sta on tb_user(profession,age,status);
Query OK, 0 rows affected (0.02 sec)
Records: 0  Duplicates: 0  Warnings: 0

(4)为emal建立合适的索引来提升查询效率

mysql> create index idx_user_email on tb_user(email);
Query OK, 0 rows affected (0.02 sec)
Records: 0  Duplicates: 0  Warnings: 0

最后的显示

Mysql数据库入门---索引以及小练习_第1张图片

 

你可能感兴趣的:(数据库,mysql,java)