数据库day04

本文介绍了数据库索引的类型、创建与使用,强调了单值索引、唯一索引和复合索引的作用,以及如何通过EXPLAIN分析查询效率。同时,讲解了视图的创建和使用,为多表查询提供便利。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

索引   重点
为了提高查询效率. 索引会单独生成一张表,要合理的使用索引.
分类:
1,单值索引: 一个索引只包含一个字段
2,唯一索引: 一个索引只包含一个字段,但字段的值不能重复
3,复合索引: 一个索引可以包含着多个字段
使用步骤:
1,创建索引(经常按照指定字段查询) + 使用索引
2,测试
#1.索引:好处是:提高查询效率 坏处是:索引需要单独的一张表
#1.1 查看索引:show index from 表名
SHOW INDEX FROM emp #主键自带索引
#1.2 创建单值索引:一个索引只包含一个字段
CREATE INDEX ename_index ON emp(ename)
#1.3 创建唯一索引:一个索引只包含一个字段,索引列值不能重复
#create unique index uni_index on emp(job)#失败,因为job的值有重复的
CREATE UNIQUE INDEX uni_index ON emp(sal)
#1.4 创建复合索引:一个索引包含着多个字段,遵循最左特性
CREATE INDEX fuhe_index ON emp(job,hiredate,comm)
#1.5 使用索引:背后的故事,按照索引列去查
SELECT * FROM emp WHERE ename='jack' #使用单值索引
SELECT * FROM emp WHERE sal=10000 #使用唯一索引
#使用复合索引,遵循最左特性 //没有左一都失效 
EXPLAIN SELECT * FROM emp WHERE job='总监' #生效
EXPLAIN SELECT * FROM emp WHERE job='总监'AND hiredate='2019-1-1'#生效
EXPLAIN SELECT * FROM emp WHERE hiredate='2019-1-1' #失效    
EXPLAIN SELECT * FROM emp WHERE hiredate='2019-1-1'AND comm=100#失效 
EXPLAIN SELECT * FROM emp WHERE hiredate='2019-1-1' AND job='总监'#生效
#1.6 查询SQL的执行计划/性能(看看用没用索引)
EXPLAIN #possible_keys用到的索引
SELECT * FROM emp WHERE ename='jack'
EXPLAIN
SELECT * FROM emp WHERE sal=10000
#1.7 删除索引
ALTER TABLE emp DROP INDEX fuhe_index

视图  
创建视图
create view 试图名 as 查询SQL语句
create view name_view as select * from emp where ename like '%a%'
使用视图
select * from name_view

select * from deot,emp
多表联查
三种方式
1, 笛卡尔积: 语法 select * from 表名1,表名2,表名3
2, 连接查询
3, 子查询
 

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值