【数据库——MySQL】(10)视图和索引
目录
- 1. 视图
- 1.1 创建视图
- 1.2 查询视图
- 2. 索引
- 2.1 索引的分类
- 2.2 索引的建立
- 参考书籍
1. 视图
1.1 创建视图
基础语法:
CREATE [OR REPLACE] VIEW 视图名[(列名表)]ASSELECT语句[WITH CHECK OPTION]
说明:
- 在默认情况下,将在当前数据库创建新视图,否则采用“数据库名.视图名”的形式。视图名必须遵循标识符命名规则,不能与已有的表或视图同名。如果创建视图前不确定是否已有同名视图存在,可加上“
OR REPLACE
”替换可能存在的同名视图。若视图列名与SELECT
语句输出项名相同,则可以省略列名表。 SELECT
语句是用来创建视图的查询语句,可在其中查询已经存在的一个或以上的表或视图WITH CHECK OPTION
:指出在可更新视图上所进行的修改都要符合SELECT
语句所指定的限制条件,这样可以确保数据修改后,仍可通过视图看到修改的数据。- 如果与视图相关联的表或视图被删除,则该视图将不能再使用。
【例】创建视图显示所有逾期未归还的借阅信息(包括借阅人姓名,借阅人类别,书名,借出日期,应归还日期,逾期时长)。
这里还是用的 library
数据库,数据库的获取见前面的文章,除非文章例子特别说明使用其它的数据库之外,默认都是使用 library
数据库,后续将不再对此进行说明~
use library;
# 删除视图
drop view if exists Overdue_view;
# 创建视图
CREATE VIEW `library`.`Overdue_view` AS SELECTborrower.`name` AS 借阅人姓名, borrower.category AS 借阅人类别, book.`name` AS 书名, information.leadDate AS 借出日期, information.returnDate AS 应归还日期,TO_DAYS(NOW()) - TO_DAYS(information.returnDate) AS '逾期时长(天)'
FROMbookINNER JOINinformationON book.id = information.bookidINNER JOINborrowerON information.borrowerid = borrower.id
WHERE returnDateReality IS NULL AND TO_DAYS(NOW()) - TO_DAYS(information.returnDate) > 0;
视图如下:
说明:
- 因为视图采用
SELECT
输出项作为列名,所以视图名后没有定义列名。 - 对定义的视图查询所有记录和输出所有项,效果与执行定义的查询语句效果相同。输出项名称与定义该视图时
SELECT
输出项名称相同。
1.2 查询视图
【例】查询逾期未归还天数超过 220 天的借阅人信息。
SELECT id, `name`, category, tel, email FROM borrowerWHERE `name` IN (SELECT `借阅人姓名` FROM overdue_viewWHERE `逾期时长(天)` > 220);
由于逾期时长是当前时间减去借书时间得到的,所以大家运行的结果可能会比我的结果多出几条记录!
视图的插入、修改以及删除和表的操作类似,基本上只是将关键字 DATABASE
改为关键字 VIEW
,关键字不区分大小写,但是建议关键字都使用大写,便于代码的查阅!
2. 索引
索引相当于书籍的目录,方便 MySQL
快速查找数据,从而提高效率!但是注意最好在数据量大的时候才建立索引,而要经常修改的表则不建议建立索引!
2.1 索引的分类
MySQL 8.0
支持的主要索引有如下几种。
- 普通索引(
INDEX
)。这是最基本的索引类型,索引列不一定唯一和非空,可以在任何数据类型的列上创建。 - 唯一性索引(
UNIQUE
)。一个表索引列的所有值不能重复,即必须是唯一的。 - 主键索引(
PRIMARY KEY
)。主键索引是一种特殊的唯一性非空索引,一般在创建表时通过“PRIMARY KEY
”关键字指定,每个表只能有一个主键索引。 - 多列索引。可在多个列上创建的索引,它同时关联表的多个列,但查询时只有在条件中使用多列索引的第一列,多列索引才会真正发挥作用。
- 全文索引(
FULLTEXT
)。在定义这种索引的列上支持值的全文检索,允许在这些索引列中插入重复值和空值。全文索引只能在char
、varchar
或text
类型的列上创建。 - 空间索引(
SPATIAL
)。这是MySQL
支持的专门针对空间数据类型列的索引,空间类型列的值不能为空。
2.2 索引的建立
我建议大家用可视化界面,如 Navicat
来创建索引(方便),因此代码创建语句这里就不展示了。
可以在左侧的表上右键选择设计表,即可在索引栏里面创建、修改、删除索引了~
JSON
数据索引 和 空间数据索引这里不进行介绍,感兴趣的同学可以阅读相关书籍。
参考书籍
《MySQL实用教程(第4版)》
上一篇文章:【数据库——MySQL】(9)函数、查询练习及讲解
相关文章:

【数据库——MySQL】(10)视图和索引
目录 1. 视图1.1 创建视图1.2 查询视图 2. 索引2.1 索引的分类2.2 索引的建立 参考书籍 1. 视图 1.1 创建视图 基础语法: CREATE [OR REPLACE] VIEW 视图名[(列名表)]ASSELECT语句[WITH CHECK OPTION]说明: 在默认情况下,将在当前数据库创…...

No servers available for service: renren…。 Gateway 网关报503错误 ,已解决
目录 环境配置问题描述loadbalancer的作用 环境配置 问题描述 配置spring cloud gateway使用端口访问就可以,使用lb:// 就报503 gateway:routes:- id: admin_routeuri: lb://gulimall-admin # uri: http://localhost:8080predicates:- Path/api/**filter…...

【Spring Cloud】深入理解 Eureka 注册中心的原理、服务的注册与发现
文章目录 前言一、微服务调用出现的问题1.1 服务消费者如何获取服务提供者的地址信息?1.2 如果有多个服务提供者,消费者该如何选择?1.3 消费者如何得知服务提供者的健康状态? 二、什么是 Eureka2.1 Eureka 的核心概念2.2 Eureka 的…...
添加路径到头文件默认搜索路径
在linux环境下写代码,出现函数是从其他文件引用的,需要把该文件的搜索路径添加到当前文件。 注意,除非必要,一般不建议这样做。比较好的方式是写入到CMakeLists或者Makefile中。 一次性生效,命令行输入即可ÿ…...

掌动智能:替代JMeter的压力测试工具有哪些
JMeter是一个广泛使用的开源压力测试工具,但在实际应用中,也有一些其他优秀的替代品可供选择。本文将介绍几个可替代JMeter的压力测试工具,它们在功能、性能和易用性方面都具有独特优势,可以满足不同压力测试需求的选择。 一、Gat…...

Casper Network 构建企业级区块链生态的野望
Casper Network 是基于 Layer1 且图灵完备 Wasm 的智能合约平台,它由唯一可操作的 CBC-Casper Proof-of-Stake (PoS) 共识算法(称为 Highway)支持,该网络是一个无需许可、去中心化的公共区块链。 Casper Network 主网在 2021 年 4…...

TiDB 7.1.0 LTS 特性解读丨关于资源管控 (Resource Control) 应该知道的 6 件事
TiDB 7.1.0 LTS 在前段时间发布,相信很多同学都已经抢先使用了起来,甚至都已然经过一系列验证推向了生产环境。面对 TiDB 7.1 若干重要特性,新 GA 的资源管控 (Resource Control) 是必须要充分理解、测试的一个重量级特性。对于常年奋斗在一线…...

Django Web开发入门基础
官方有很详细的文档,但是看过几遍之后如果要翻找还是有点麻烦,本文算作是学习笔记,提取一些关键点记录下来,另附上官方教程 编写你的第一个 Django 应用 注: 文中的指令使用py,是在Windows上,ma…...

Baumer工业相机堡盟工业相机如何通过BGAPI SDK设置相机的图像剪切(ROI)功能(C#)
Baumer工业相机堡盟工业相机如何通过BGAPI SDK设置相机的图像剪切(ROI)功能(C#) Baumer工业相机Baumer工业相机的图像剪切(ROI)功能的技术背景CameraExplorer如何使用图像剪切(ROI)功…...

LetCode算法题---第2天
注:大佬解答来自LetCode官方题解 80.删除有序数组的重复项Ⅱ 1.题目 2.个人解答 var removeDuplicates function (nums) {let res [];for (let index 0; index < nums.length; index) {let num 0;if (res.includes(nums[index])) {for (let i 0; i < res.length; …...
Leetcode.2571 将整数减少到零需要的最少操作数
题目链接 Leetcode.2571 将整数减少到零需要的最少操作数 rating : 1649 题目描述 给你一个正整数 n n n ,你可以执行下述操作 任意 次: n n n 加上或减去 2 2 2 的某个 幂 返回使 n n n 等于 0 0 0 需要执行的 最少 操作数。 如果 x 2 i x 2^…...

微前端无界 项目使用记录
1预期目标和场景 一个vue框架开发的应用,需要使用另一个系统的页面。 通俗来说,就是在一个web应用中独立的运行另一个web应用 2 技术支持 微前端处理方案:无界 无界官网: https://wujie-micro.github.io/doc/guide/ CSDN 参考…...

CDH 6.3.2升级Flink到1.17.1版本
CDH:6.3.2 原来的Flink:1.12 要升级的Flink:1.17.1 操作系统:CentOS Linux 7 一、Flink1.17编译 build.sh文件: #!/bin/bash set -x set -e set -vFLINK_URLsed /^FLINK_URL/!d;s/.*// flink-parcel.properties FLI…...

基于谷歌Transeformer构建人工智能问答系统
目录 1 项目背景 2 关键技术 2.1 Transeformer模型 2.2 Milvus向量数据库 3 系统代码实现 3.1 运行环境构建 3.2 数据集介绍 3.3 预训练模型下载 3.4 代码实现 3.4.1 创建向量表和索引 3.4.2 构建向量编码模型 3.4.3 数据向量化与加载 3.4.4 构建检索web 3.5 运行结…...

【2023年11月第四版教材】第15章《风险管理》(合集篇)
第15章《风险管理》(合集篇) 1 章节说明2 管理基础2.1 风险的属性2.2 风险的分类★★★2.3 风险成本★★★2.4 管理新实践 3 管理过程4 管理ITTO汇总★★★5 过程1-规划风险管理6 过程2-识别风险6.1 识别风险★★★6.2 数据收集★★★6.3 数据分析★★★…...
python常见面试题四
解释 Python 中的魔术方法 (magic methods)。 答:魔术方法是以双下划线 __ 开头和结尾的方法,用于在特定条件下自动调用。例如,__init__ 是用于初始化对象的魔术方法。 解释 Python 中的装饰器 (decorator)。 答:装饰器是一种特殊…...

stm32无人机-飞行力学原理
惯性导航,是一种无源导航,不需要向外部辐射或接收信号源,就能自主进行确定自己在什么地方的一种导航方法。 惯性导航主要由惯性器件计算实现,惯性器件包括陀螺仪和加速度计。一般来说,惯性器件与导航物体固连…...

Java括号匹配
目录 一、题目描述 二、题解 一、题目描述 给定一个只包括 (,),{,},[,] 的字符串 s ,判断字符串是否有效。 有效字符串需满足: 左括号必须用相同类型的右括号闭合。左括号必须以正确的顺序闭…...

自动化测试-友好的第三方库
目录 mock furl coverage deepdiff pandas jsonpath 自动化测试脚本开发中,总是会遇到各种数据处理,例如MOCK、URL处理、JSON数据处理、结果断言等,也会遇到所采用的测试框架不能满足当前需求,这些问题都需要我们自己动手解…...

基于微信小程序的火锅店点餐订餐系统设计与实现(源码+lw+部署文档+讲解等)
文章目录 前言系统主要功能:具体实现截图论文参考详细视频演示为什么选择我自己的网站自己的小程序(小蔡coding)有保障的售后福利 代码参考源码获取 前言 💗博主介绍:✌全网粉丝10W,CSDN特邀作者、博客专家、CSDN新星计…...
【网络】每天掌握一个Linux命令 - iftop
在Linux系统中,iftop是网络管理的得力助手,能实时监控网络流量、连接情况等,帮助排查网络异常。接下来从多方面详细介绍它。 目录 【网络】每天掌握一个Linux命令 - iftop工具概述安装方式核心功能基础用法进阶操作实战案例面试题场景生产场景…...

调用支付宝接口响应40004 SYSTEM_ERROR问题排查
在对接支付宝API的时候,遇到了一些问题,记录一下排查过程。 Body:{"datadigital_fincloud_generalsaas_face_certify_initialize_response":{"msg":"Business Failed","code":"40004","sub_msg…...

51c自动驾驶~合集58
我自己的原文哦~ https://blog.51cto.com/whaosoft/13967107 #CCA-Attention 全局池化局部保留,CCA-Attention为LLM长文本建模带来突破性进展 琶洲实验室、华南理工大学联合推出关键上下文感知注意力机制(CCA-Attention),…...
C++:std::is_convertible
C++标志库中提供is_convertible,可以测试一种类型是否可以转换为另一只类型: template <class From, class To> struct is_convertible; 使用举例: #include <iostream> #include <string>using namespace std;struct A { }; struct B : A { };int main…...

抖音增长新引擎:品融电商,一站式全案代运营领跑者
抖音增长新引擎:品融电商,一站式全案代运营领跑者 在抖音这个日活超7亿的流量汪洋中,品牌如何破浪前行?自建团队成本高、效果难控;碎片化运营又难成合力——这正是许多企业面临的增长困局。品融电商以「抖音全案代运营…...
linux 下常用变更-8
1、删除普通用户 查询用户初始UID和GIDls -l /home/ ###家目录中查看UID cat /etc/group ###此文件查看GID删除用户1.编辑文件 /etc/passwd 找到对应的行,YW343:x:0:0::/home/YW343:/bin/bash 2.将标红的位置修改为用户对应初始UID和GID: YW3…...

《基于Apache Flink的流处理》笔记
思维导图 1-3 章 4-7章 8-11 章 参考资料 源码: https://github.com/streaming-with-flink 博客 https://flink.apache.org/bloghttps://www.ververica.com/blog 聚会及会议 https://flink-forward.orghttps://www.meetup.com/topics/apache-flink https://n…...

如何理解 IP 数据报中的 TTL?
目录 前言理解 前言 面试灵魂一问:说说对 IP 数据报中 TTL 的理解?我们都知道,IP 数据报由首部和数据两部分组成,首部又分为两部分:固定部分和可变部分,共占 20 字节,而即将讨论的 TTL 就位于首…...
Python ROS2【机器人中间件框架】 简介
销量过万TEEIS德国护膝夏天用薄款 优惠券冠生园 百花蜂蜜428g 挤压瓶纯蜂蜜巨奇严选 鞋子除臭剂360ml 多芬身体磨砂膏280g健70%-75%酒精消毒棉片湿巾1418cm 80片/袋3袋大包清洁食品用消毒 优惠券AIMORNY52朵红玫瑰永生香皂花同城配送非鲜花七夕情人节生日礼物送女友 热卖妙洁棉…...
C++.OpenGL (14/64)多光源(Multiple Lights)
多光源(Multiple Lights) 多光源渲染技术概览 #mermaid-svg-3L5e5gGn76TNh7Lq {font-family:"trebuchet ms",verdana,arial,sans-serif;font-size:16px;fill:#333;}#mermaid-svg-3L5e5gGn76TNh7Lq .error-icon{fill:#552222;}#mermaid-svg-3L5e5gGn76TNh7Lq .erro…...