更新:
UPDATE tablename SET field1 = value1, field2 = value2 ... WHERE CONDITION;
例: update class set teacher = '如花老师' where id=1;//将id=1的数据的teacher列的值改为如花老师
-
索引优点
可以提高检索数据的速度。
-
索引缺点
创建和维护索引需要耗费时间,耗费时间的数量随着数据量的增加而增加;索引需要占用物理空间,每一
个索引要占一定的物理空间;增加、删除和修改数据时,要动态地维护索引,造成数据的维护速度降低了。
普通索引(INDEX|KEY):
ASC表示升序,DESC表示降序,默认升序;
mysql>
create database school;
#
创建数据库
school
mysql>
use school;
#
选择数据库
school
mysql>
create table class(id int, name varchar(128) UNIQUE, teacher varchar(64), INDEX
index_no(id DESC));
#
创建表
class,
并建立为
id
字段索引
mysql>
show create table class;
#
查看表结构
mysql>
insert into class values(1, '
一班
', 'Martin');
#
插入记录
1
mysql>
insert into class values(1, '
二班
', 'Rock');
#
插入记录
2
mysql>
select * from class where id > 0 ;
#
根据
id
查询记录,结果将降序排列
已存在的表中添加索引:
方法1:
CREATE INDEX indexname ON tablename (propname [(length)] [ASC|DESC]);
方法2:
ALTER TABLE tablename ADD INDEX | KEY indexname (propname [(length)] [ASC|DESC]);
索引查询:EXPLAIN
输出结果:
key
:
实际使用的索引。如果为 NULL,则没有使用索引
possible_keys:
显示可能应用在这张表中的索引,一个或多个。查询涉及到的字段上若存在索引,则该索引
将被列出,但不一定被查询实际使用
key_len:
表示索引中使用的字节数,可通过该列计算查询中使用的索引的长度。
此值越短越好
!
唯一性索引:UNIQUE INDEX
全文索引:
mysql>
create database school;
#
创建数据库
school
mysql>
use school;
#
选择数据库
school
mysql>
create
table
class(id
int,
name
varchar(128)
UNIQUE,
teacher
varchar(64),comment
varchar(1024),FULLTEXT
INDEX
index_comm(comment));
#
创建表
class,
并建立为
comment
字段为全文索引
mysql>
insert into class values(1,'1
班
','Martin','
我是一个兵,来自老百姓
!');
#
插入记录
1
mysql>
insert into class values(2,'2
班
','Rock','
此班主任毕业自唐僧系
');
#
插入记录
2
mysql>
insert into class values(3,'3
班
','Janny','I''m Miss Zhang.');
#
插入记录
3
mysql>
select * from class where match(comment) AGAINST('
我是一个兵
');
#
利用全文检
索索引快速查询记录
中文索引:
配置文件 my.ini(Windows 10 默认路径: C:\ProgramData\MySQL\MySQL Server 8.0) 中增加如下配置 项,同时重启 MySQL80 服务:
[mysqld]
ngram_token_size=2
多列索引:
多列索引,是指在创建索引时所关联的字段不是一个字段,而是多个字段,虽然可以通过所关联的字段进 行查询,但是只有查询条件中使用了所关联字段中的第一个字段,多列索引才会被使用。