1、索引
索引是存放在模式(schema)中的一个数据库对象,索引的作用就是提高对表的检索查询速度,
索引是通过快速访问的方法来进行快速定位数据,从而减少了对磁盘的读写操作。
索引是数据库的一个对象,它不能独立存在,必须对某个表对象进行依赖。
提示:索引保存在information_schema数据库里的STATISTICS表中。
创建索引方式:
自动:当表上定义主键约束、唯一、外键约束时,该表会被系统自动添加上索引。
手动:手动在相关表或列上增加索引,提高查询速度。
删除索引方式:
自动:当表对象被删除时,该表上的索引自动被删除
手动:手动删除指定表对象的相关列上的索引
索引类似于书籍的目录,可以快速定位到相关的数据,一个表可以有多个索引。
创建索引:
create index idx_temp_name on temp(name);
组合索引:
create index idx_temp_name$pwd on temp(name, pwd);
删除索引:
drop index idx_temp_name on temp;
2、视图
视图就是一个表或多个表的查询结果,它是一张虚拟的表,因为它并不能存储数据。
视图的作用、优点:
限制对数据的访问
让复杂查询变得简单
提供数据的独立性
可以完成对相同数据的不同显示
创建、修改视图
create or replace view view_temp
as
select name, age from temp;
通常我们并不对视图的数据做修改操作,因为视图是一张虚拟的表,它并不存储实际数据。如果想让视图不被修改,可以用with check option来完成限制。
create or replace view view_temp
as
select * from temp
with check option;
修改视图:
alter view view_temp
as
select id, name from temp;
删除视图:
drop view view_temp;
显示创建语法:
show create view v_temp;
3、 DML语句
DML主要针对数据库表对象的数据而言的,一般DML完成:
插入新数据
修改已添加的数据
删除不需要的数据
1、 insert into 插入语句
insert into temp values(null, ‘jack’, 25);
主键自增可以不插入,所以用null代替
指定列
insert into temp(name, age) values(‘jack’, 22);
在表面后面带括号,括号中写列名,values中写指定列名的值即可。当省略列名就表示插入全部数据,
注意插入值的顺序和列的顺序需要保持一致。
Set方式插入,也可以指定列
insert into temp set id = 7, name = 'jason';
MySQL中外键的table的外键引用列可以插入数据可以为null,不参照主表的数据。
使用子查询插入数据
insert into temp(name) select name from classes;
多行插入
insert into temp values(null, ‘jack’, 22), (null, ‘jackson’ 23);
2、 update 修改语句
update主要完成对数据的修改操作,可以修改一条或多条数据。修改多条或指定条件的数据,需要用where条件来完成。
修改所有数据
update temp set name = ‘jack2’;
所有的数据的name会被修改,如果修改多列用“,”分开
update temp set name = ‘jack’, age = 22;
修改指定条件的记录需要用where
update temp set name = ‘jack’ where age > 22;
3、 delete 删除语句
删除table中的数据,可以删除所有,带条件可以删除指定的记录。
删除所有数据
delete from temp;
删除指定条件数据
delete from temp where age > 20;