当前位置:网站首页>MySQL数据库————视图和索引
MySQL数据库————视图和索引
2022-07-30 19:16:00 【心随而动】
系列文章目录

文章目录
前言
前面几节学习的是MySQL基础的操作语言,本节将要学习MySQL中比较重要的一节,视图和索引.
一、视图
视图的作用:
视图相当于是给查询语句起别名,方便查询。
视图关键字:view;
1.视图的创建
①.创建视图的基本格式
create view <视图名> as <查询语句>; -- 视图的本质就是用<视图名>来代替<查询语句>,相当于给查询语句起别名.
②.视图的创建举例
如:对以下查询语句创建视图select * from class; create view v_c as select * from class; -- 创建了一个视图,名字叫做V_C,用于代替查询语句“select * from class”
2.视图的使用
①.视图使用的基本格式:
select <属性名> from<视图名>;
如:select * from v_c; -- 查询视图中所有的属性;
②.试图代替复杂的语句
我们在查询语句的时候会发现,如果我们查询的属性过多,如果要多次查询,那么每次都需要写很长的代码,用视图代替,就可以极大的减少代码量。
例如:select S.s_name 学生姓名,C.c_name 班级名称 ,T.t_name 教师姓名 from student S left join class C on S.s_cid=C.c_id left join teacher T on C.c_tid=T.t_id;
可以用视图代替:create view v_strname as select S.s_name 学生姓名,C.c_name 班级名称 ,T.t_name 教师姓名 from student S left join class C on S.s_cid=C.c_id left join teacher T on C.c_tid=T.t_id
查询此视图:select * from;
3.视图的修改
修改视图的基本格式:alter view<视图名> as <查询语句>;
–让视图名代替另一个查询语句;
4.视图的删除
删除视图的基本格式:drop view <视图名>;
二.索引
1.普通索引
①.创建普通索引
创建普通索引的基本格式:create index 索引名 on 表名<字段1,字段2·······>
例如:
create index IND_SAGE on student(s_age);
-- 对student数据表的s_age创建一个普通索引,索引名为IND_SAGE;
select s_age from student;
-- 对于查询属性,创建一个索引,会大大的提高查询的效率,数据量越多越明显;
②.以修改表的方式添加索引
索引的基本格式:alter table <表名> add index <索引名(属性)>;
例如:alter table student add index S_ID(s_id); -- 以修改表的方式为student表的s_id属性添加索引;
③.查看表中的所有索引
基本格式:show index from <表名>;
例如:show index from student; -- 查询student数据表中的索引
如果我们没有建立索引,那么查询的结果是不是就没有索引喃,其实依然可能会有索引,因为如果建立了主键和外键,则系统会自动建立主键索引。
例如:
⑤.删除索引
基本格式:drop index <索引名> on <表名>;
如:drop index IND_SEX on student;
2.唯一索引
唯一索引关键字:unique index;
对添加了唯一索引的字段进行查询,查询效率会提高。
唯一索引和唯一约束有关,给某属性添加唯一索引后,不允许属性的值重复;
①.创建唯一约束
基本格式:create unique index <索引名> on <表名(属性名)>;
例如:create unique index S_ID on student(s_id);
②.以修改表的形式添加唯一索引
基本格式:alter table <表名> add unique(属性);
例如:alter table student add unique(s_id);-- 给student数据表中的s_id属性添加一个唯一索引;
3.主键索引/外键索引
前面我们提到了主键索引和外键索引在主键被建立或者外键被建立的时候就会自动建立主键索引或者外键索引;
由于主键和外键索引会自动建立,所以不需要我们去人为实现,只需要建立外键和主键即可。
前面已经讲解过主键和外键的建立,这里不做过多的介绍。
4.全文索引
全文索引的关键字:fulltext index
对添加了全文索引的字符串或者文本类型的数据查询的时候,查询效率会加快。
①.创建表的时候创建
基本格式:create fulltext index <索引名> on <表名(属性名)>;
②.修改表的方式添加全文索引
基本格式:alter table <表名> add fulltext index fullind_<索引名>(属性名);
全文索引相对而言用的比较少,其只限于对字符串和文本类型数据添加;
5.空间索引
空间索引是对空间数据类型(点,线,面,立体图形)建立的索引,由于空间索引应用不广泛,一般不会使用,所以不做详细讲解。
6.索引的优缺点
①.优点:使用索引可以大大提高查询的效率;
②.缺点:定义了索引的字段与普通字段相比,索引会占用额外的磁盘空间,由于存储的数据结构有差异,对数据进行增加,删除,修改等操作的时候,建立的索引的字段就需要动态维护,所以增加了DBMS的工作负担,并且降低了数据库的可维护性。
边栏推荐
- 开心的聚餐
- Alibaba Cloud Martial Arts Headline Event Sharing
- MindSpore:数据处理问题
- NC | 西湖大学陶亮组-TMPRSS2“助攻”病毒感染并介导索氏梭菌出血毒素的宿主入侵...
- Range.CopyFromRecordset 方法 (Excel)
- 中集世联达工业级成熟航运港口人工智能AI产品规模化应用,打造新一代高效能智慧港口和创新数字港口,全球港航人工智能能领军者中集飞瞳
- Node encapsulates a console progress bar plugin
- 【剑指 Offe】剑指 Offer 18. 删除链表的节点
- The Meta metaverse division lost 2.8 billion in the second quarter!Still want to keep betting?Metaverse development has yet to see a way out!
- MindSpore:【resnet_thor模型】尝试运行resnet_thor时报Could not convert to
猜你喜欢

C# wpf borderless window add shadow effect

nlohmann json 使用指南【visual studio 2022】

【Pointing to Offer】Pointing to Offer 22. The kth node from the bottom in the linked list

生物医学论文有何价值 论文中译英怎样翻译效果好

Node encapsulates a console progress bar plugin

【MindSpore1.2.0-rc1产品】num_workers问题

JS提升:Promise中reject与then之间的关系

MindSpore:对image作normalize的目的是什么?

The Meta metaverse division lost 2.8 billion in the second quarter!Still want to keep betting?Metaverse development has yet to see a way out!

NC | Tao Liang Group of West Lake University - TMPRSS2 "assists" virus infection and mediates the host invasion of Clostridium sothrix hemorrhagic toxin...
随机推荐
高并发秒杀项目总结
2种手绘风格效果比较,你更喜欢哪一种呢?
MindSpore:数据处理问题
【网站放大镜效果】两种方式实现
Entering the applet for the first time
第一次进入小程序判断
MYSQL (Basic) - An article takes you into the wonderful world of MYSQL
实体中增加操作方法
SimpleOSS第三方库libcurl与引擎libcurl错误解决方法
谷歌AlphaFold近日宣称预测出地球上几乎所有蛋白质结构
The advanced version of the Niu Ke brushing series (team competition, sorting subsequences, inverting strings, deleting common characters, repairing pastures)
Scala学习:breakable
[TypeScript]编译配置
MongoDB打破了原则引入SQL?
MindSpore:npu 多卡训练自定义数据集如何给不同npu传递不同数据
Node encapsulates a console progress bar plugin
Read the "Language Model" in one article
延时队列优化 (2)
牛客刷题系列之进阶版(组队竞赛,排序子序列,倒置字符串, 删除公共字符,修理牧场)
Correct pose of Vulkan open feature