MySQL【五】

索引

  • 能让数据库服务器更快地查找和获取表中指定的行。类似于书的目录。
  • 在MySQL中,所有数据类型都可以被索引。
索引的分类
  • 主键索引:方式1:ALTER TABLE 表名 ADD PRIMARY KEY 索引名( 字段名 )

    方式2:创建表的时候指定主键
    ########## 创建名为pk_s的主键索引,主键字段sno ########## alter table s add primary key pk_s(sno);

  • 唯一索引:CREATE UNIQUE INDEX 索引名称 ON 表名(字段名); 或者 ALTER TABLE 表名 ADD UNIQUE (字段名);

  • 组合索引:CREATE INDEX 索引名称 ON 表名(字段1,字段2,字段3); 或者 ALTER TABLE 表名 ADD INDEX 索引名称(字段1,字段2,字段3);
    ########## 创建名为idx_group的组合索引,索引字段addr、sex和dob ########## alter table s add index idx_group(addr,sex,dob);

创建索引
  • 创表时创建普通索引:

CREATE table 表名( 字段声明列表, INDEX [indexName] (字段名) );

  • 建表后创建普通索引:

CREATE INDEX 索引名 on 表名(字段名); 或者 ALTER TABLE 表名 ADD INDEX 索引名称 (字段名);

查看索引

SHOW INDEX FROM 表名 或者 SHOW KEYS FROM 表名

删除索引

ALTER TABLE 表名 DROP INDEX 索引名; 或者 DROP INDEX 索引名 ON 表名

视图

视图就是一个虚拟的表,同真实的数据表一样

视图的分类

简单视图和复杂视图

创建视图

CREATE [OR REPLACE] VIEW <视图名> [<字段名列表>] AS <SELECT语句> [WITH [CASCADED|LOCAL] CHECK OPTION ]

WITH \[CASCADED \| LOCAL CHECK OPTION]:表示视图在更新时保证在视图的权限范围之内;cascade是默认值,表示更新视图的时候,要满足视图和表的相关条件;local表示更新视图的时候,要满足该视图本身定义的条件即可。

sql 复制代码
########## 创建一个名为stavgview的视图,包括所有学生的学号和平均成绩(别名:avg)  ##########
create view stavgview as select sno,avg(score) as avg from sc group by sno;

操作视图

查看视图的结构信息

DESCRIBE 视图名/DESC 视图名;

查看视图定义的文本

SHOW CREATE VIEW 视图名;

删除视图

DROP VIEW IF EXISTS 视图名 [RESTRICT|CASCADE];

删除视图时,只能删除视图的定义,并不会删除数据,CASECADE:表示级联删除。

注意

如果在一个视图中包含了聚合函数、GROUP BY、DISTINCT、UNION(ALL)、HAVING等关键字时,则不能通过该视图进行更新操作。

如果在一个视图中包含了由表达式或常数组成的列,则不能通过该视图进行UPDATE、INSERT操作,但允许执行DELETE操作。

视图定义中包含了子查询,不能更新。

相关推荐
三8443 小时前
redis防御加固与安全基线
数据库·redis·安全·应急响应·防御
lhldsg3 小时前
全民健身解决方案小程序开发:从0到1的技术实战
java·数据库·需求分析
SendTomo3 小时前
【技术交流】从0到1构建一个汉字学习平台:汉字吧(hanzi8.com)的技术架构猜想
redis·mysql·nginx·php·个人开发
一米阳光86613 小时前
软考高级【信息系统项目管理师】高项重要考点(3)高级项目管理-下 助你顺利上岸!
笔记·职场发展·软考·信息系统项目管理师·高级职称
IT大白鼠3 小时前
MySQL 分布式集群系列 · 第四篇——实操部署指南:从零搭建生产级 MySQL NDB 集群
数据库·分布式·mysql
IT大白鼠4 小时前
MySQL 分布式集群系列 · 第三篇——核心原理精讲:NDB 自动分片、多主写入与数据同步
数据库·分布式·mysql
dianziyao_4 小时前
第 4.1 篇:让 Codex 理解你的双链——AI 辅助发现笔记间的关联
人工智能·笔记
Elastic 中国社区官方博客4 小时前
教程:使用 ES|QL 进行威胁狩猎
大数据·运维·数据库·elasticsearch·搜索引擎·全文检索·安全威胁分析
斑马1396 小时前
Linux软件编程学习笔记(十三)——数据库
数据库·oracle