当前位置: 首页 > news >正文

【数据库原理复习】索引 视图 sql语句

这里写目录标题

  • 视图
    • 视图特点
    • 视图定义
    • 优点
  • 索引
    • 相关sql
    • 三种索引区别解释

视图

视图特点

  • 只是虚表,并不实际存放数据,所有数据都来自于基本表
  • 建立在一个或几个基本表或视图之上
  • 基本表数据变化视图也随之变化
  • 只保存视图定义等之类东西

视图定义

# 定义视图,视图展现的就是子查询的结果
# 子查询不允许有order by 或者 distinct
CREATE VIEW view_name[(<列名> [,<列名>....])]
AS <子查询>
[WITH CHECK OPTION];			# 自动执行检查操作# e.g.
CREATE VIEW IS_Student
as
select Sno, Sname, Sage
from Student
where Sdept = 'IS'
with check option;# 插入操作:自动添加Sdept = 'IS'
# 修改操作同上
# 删除操作同上
# 如果Sdept不为IS拒绝操作
# 如果没有提供Sdept自动添加# 删除视图
DROP VIEW view_name [cascade]

其余操作增删查改操作与基本表相同

优点

  • 简化用户操作
  • 以多种角度看待数据
  • 提供一定的逻辑独立性
  • 有一定的安全性
  • 适当视图有利用更清晰的表达

索引

索引目的:加快查询速度
一般 primary key unique会自动为其建立索引
索引类别:

  • unique 唯一索引
  • cluster 聚集索引
  • noncluster 非唯一索引

相关sql

# 建立索引
CREATE [UNIQUE][CLUSTER] INDEX <索引名称>
ON <表名> (<列名>[,<列名>......])# 删除索引
DROP INDEX <索引名>

三种索引区别解释

一张表只能有一个聚集索引,可以有许多个非聚集索引
数据库表里面的数据比作比作一本字典。聚集索引相当于决定了字典中第一章第二章的排列顺序。添加非聚集索引相当于为其添加了一个目录。相当于字典以偏旁为规则排列了字典的内容,但是可以有拼音目录,笔画目录来查找这个字。

聚集索引能够大大加快group by等块查找语句的速度。因为数据库底层使用B+与HASH进行存储,在操作系统中,文件以分页进行存储。当以某个字段顺序进行存储时候,查找这个字段,也就是将这个字段所在页调入内存查找,而这个页也包含了这个字段值的附近值,所以进行块查找时候就不需要大量进行IO操作,只需要找内存里的页即可。

而为什么添加索引能够加快查找速度?

  • 因为原来在物理存放时候,可能按照其他某个字段进行聚集存放,但是如果按照这个字段进行查找就只能进行顺序查找。如果为这个字段建立了索引,相当于根据这个字段添加了一个目录,查找速度就上去了。在物理结构当中,应该是添加了一个B+树的除了叶子节点上部分。而且如果这个字段不是unique字段,那么有可能会有重复,SqlServer会为这个字段添加一个hash值,做到一一对应,然后再进行一个B+树。

SqlServer默认为主键添加聚集索引

相关文章:

【数据库原理复习】索引 视图 sql语句

这里写目录标题视图视图特点视图定义优点索引相关sql三种索引区别解释视图 视图特点 只是虚表&#xff0c;并不实际存放数据&#xff0c;所有数据都来自于基本表建立在一个或几个基本表或视图之上基本表数据变化视图也随之变化只保存视图定义等之类东西 视图定义 # 定义视图…...

【HDFS】IPC重试

1、IPC重试和dfs.client.retry重试的区别2、IPC重试的相关参数汇总及含义3、 IPC重试相关源码、原理简单总结一句话: IPC重试是因为连接问题而进行重试; 客户端重试是因为RPC在服务端处理发生异常,客户端根据指定的策略进行重试。 接下来让我们深入一下源码,因为每一部分源…...

Revit导出CAD图纸操作及批量导出

一、Revit如何导出CAD格式图纸 1.打开Revit模型。 2.项目浏览器&#xff0c;图纸(全部)&#xff0c;鼠标右键点击&#xff0c;新建图纸。 3.选择自己需要的图纸大小&#xff0c;点击“确定”&#xff0c;即可创建一张图纸。 4.找到想要导出的图纸标高或者立面&#xff0c;例如&…...

【批处理脚本】-3.4-goto命令详解

"><--点击返回「批处理BAT从入门到精通」总目录--> 共4页精讲(列举了所有goto的用法,图文并茂,通俗易懂) 在从事“嵌入式软件开发”和“Autosar工具开发软件”过程中,经常会在其集成开发环境IDE(CodeWarrior,S32K DS,Davinci,EB Tresos,ETAS…)中,…...

超详细CentOS7 NAT模式(无图形化界面即最小安装)网络配置

在此附上CentOS7&#xff08;无图形化界面最小安装&#xff09;安装教程 超详细VMware CentOS7&#xff08;无图形化界面最小安装&#xff09;安装教程 打开VMware—>点击编辑---->选择虚拟网络编辑器 打开虚拟网络编辑器后如下图所示&#xff1a; 从下图中我们看到标…...

【可信平台】开证问题汇总--1.无采购入库记录,2.箱码无产出记录

这里面的问题主要有两类, 批号无采购入库记录箱码无产出记录批号无采购入库记录 第一个问题,以批号 W200263242022100600018 为例。 MES里入库明细里能查到可信平台集成报错: 入库数量>采购数量 再看下入库明细里的情况: 可信平台集成提示物料库存不存在。(没有入库记…...

RolePred: Open-Vocabulary Argument Role Prediction for Event Extraction 论文解读

Open-Vocabulary Argument Role Prediction for Event Extraction 论文&#xff1a;2211.01577.pdf (53yu.com) 代码&#xff1a;yzjiao/RolePred: Source code for EMNLP findings paper “Open-Vocabulary Argument Role Prediction for Event Extraction” (github.com) 期…...

【数据结构】链表相关题目(简单版)

&#x1f680;write in front&#x1f680; &#x1f4dc;所属专栏&#xff1a; 初阶数据结构 &#x1f6f0;️博客主页&#xff1a;睿睿的博客主页 &#x1f6f0;️代码仓库&#xff1a;&#x1f389;VS2022_C语言仓库 &#x1f3a1;您的点赞、关注、收藏、评论&#xff0c;是…...

通信原理 | FFT/STFT 你真的学会了吗?

文章目录 原理FFT的例子1必须要理解的点函数FFT返回值的数据结构具有对称性单边谱和双边谱变换后到频域后的横坐标和纵坐标是什么?FFT的例子2FFT的例子3短时傅里叶变换(STFT)原理 傅里叶告诉我们,现实中的任和信号波形都可以视为一系列正弦信号的叠加。 那对于一个给定的信…...

Qt使用API实现鼠标点击操作

前段时间,工作需要进行数据录入,每次都要点击3次按钮,想让鼠标自行点击,只要下位机接入,就自动点击按钮把数据读出,录入到服务端,并且进行检测,说干就干,没有经验,那只有面向百度编程. 根据查到的资料,可以使用WinAPI进行鼠标模似.可以使用的函数有两个,一个是SendMessageA(),…...

JavaWeb学习-Tomcat

常用的Web服务器 ①IIS&#xff1a;Microsoft的Web服务器产品为Internet Information Services &#xff08;IIS&#xff09;&#xff0c;IIS 是允许在公共Intranet或Internet上发布信息的Web服务器。ⅡS是目前最流行的Web服务器产品之一&#xff0c;很多著名的网站都是建立在…...

【蓝牙系列】蓝牙5.4到底更新了什么(2)

【蓝牙系列】蓝牙5.4到底更新了什么&#xff08;2&#xff09; 一、 背景 上一篇文章讲了蓝牙5.4的PAwR特征&#xff0c;非常适合应用在电子货架标签&#xff08;ESL&#xff09;领域&#xff0c; 但是实际应用场景中看&#xff0c;只有PAwR特性是不够的&#xff0c;如何保证广…...

js中window自带的四舍五入toFixed方法中的坑以及解决办法

Hello&#xff0c;各位&#xff0c;我胡汉三~啊呸&#xff0c;我又回来啦&#xff0c;还改了名&#xff0c;换了头像&#xff0c;哈哈哈&#xff01;时隔这么长时间不更新了&#xff0c;太忙了&#xff0c;平时笔记都记在了自己的电脑上&#xff0c;从今天起&#xff0c;继续更…...

JeecgBoot 3.5.0 版本发布,开源的企业级低代码平台

项目介绍 JeecgBoot是一款企业级的低代码平台&#xff01;前后端分离架构 SpringBoot2.x&#xff0c;SpringCloud&#xff0c;Ant Design&Vue3&#xff0c;Mybatis-plus&#xff0c;Shiro&#xff0c;JWT 支持微服务。强大的代码生成器让前后端代码一键生成! JeecgBoot引领…...

行测-判断推理-图形推理-样式规律-空间重构-四面体和八面体

B很明显就是对的&#xff0c;可以看到就选B走人A选项&#xff1a;横线的右边应该是菱形&#xff0c;而不是竖线&#xff0c;排除AC选项&#xff1a;菱形的左边应该是横线&#xff0c;而不是竖线&#xff0c;排除CD选项&#xff1a;横线脚底下踩的应该是三角形砖&#xff0c;而不…...

HTML5新特性

HTML5 简介 HTML5 是下一代 HTML 标准。 HTML5在HTML4.01的基础上新增了一些特性&#xff0c;从而可以让我们能够更快捷更方便的开发应用&#xff0c;同时去掉了一些 “糟粕”。 现在的主流浏览器基本都支持HTML5。 在一个HTML5 文档中的第一行&#xff0c;我们需要使用<…...

TDengine Schemaless(无模式写入)常见问题的原因及故障排除

Tips&#xff1a;使用版本&#xff1a;3.0.2.6 &#xff08;一&#xff09;TDengine ERROR (80003002): Invalid data format 格式化问题&#xff1b;如缺少必要的组成格式&#xff08;时间戳、超级表等&#xff09;&#xff0c;或有字符串未作修饰符修饰&#xff0c;类似的还…...

【前端八股文】浏览器系列:浏览器渲染、前端路由、前端缓存(HTTP缓存)、缓存存储(HTTP缓存存储、本地存储)

文章目录渲染步骤DOM树与render树回流与重绘前端路由hash模式history模式两种模式对比前端缓存HTTP缓存强缓存协商缓存一般哪些文件对应哪些缓存HTTP缓存总结缓存存储HTTP缓存存储本地存储参考本系列目录&#xff1a;【前端八股文】目录总结 是以《代码随想录》八股文为主的笔记…...

SpiderFlow爬虫获取网页节点

SpiderFlow爬虫获取网页节点 一、SpiderFlow 文档地址&#xff1a;https://www.spiderflow.org/ 二、问题&#xff1a;获取一篇文章的标题、来源、发布时间、正文、下载附件该怎么获取&#xff1f; 举例&#xff1a;【公示】第三批智能光伏试点示范名单公示 三、抓取网页步骤…...

“微服务架构:优点、缺点及实现方式“

微服务是一种软件开发架构&#xff0c;它将应用程序拆分成小型、独立的服务单元。每个服务单元都是自给自足的&#xff0c;它们可以独立地进行开发、测试和部署。这种架构的好处是它可以使软件更容易维护、扩展和更新&#xff0c;同时还可以提高开发团队的灵活性和效率。在本文…...

装饰模式(Decorator Pattern)重构java邮件发奖系统实战

前言 现在我们有个如下的需求&#xff0c;设计一个邮件发奖的小系统&#xff0c; 需求 1.数据验证 → 2. 敏感信息加密 → 3. 日志记录 → 4. 实际发送邮件 装饰器模式&#xff08;Decorator Pattern&#xff09;允许向一个现有的对象添加新的功能&#xff0c;同时又不改变其…...

微软PowerBI考试 PL300-选择 Power BI 模型框架【附练习数据】

微软PowerBI考试 PL300-选择 Power BI 模型框架 20 多年来&#xff0c;Microsoft 持续对企业商业智能 (BI) 进行大量投资。 Azure Analysis Services (AAS) 和 SQL Server Analysis Services (SSAS) 基于无数企业使用的成熟的 BI 数据建模技术。 同样的技术也是 Power BI 数据…...

Day131 | 灵神 | 回溯算法 | 子集型 子集

Day131 | 灵神 | 回溯算法 | 子集型 子集 78.子集 78. 子集 - 力扣&#xff08;LeetCode&#xff09; 思路&#xff1a; 笔者写过很多次这道题了&#xff0c;不想写题解了&#xff0c;大家看灵神讲解吧 回溯算法套路①子集型回溯【基础算法精讲 14】_哔哩哔哩_bilibili 完…...

定时器任务——若依源码分析

分析util包下面的工具类schedule utils&#xff1a; ScheduleUtils 是若依中用于与 Quartz 框架交互的工具类&#xff0c;封装了定时任务的 创建、更新、暂停、删除等核心逻辑。 createScheduleJob createScheduleJob 用于将任务注册到 Quartz&#xff0c;先构建任务的 JobD…...

laravel8+vue3.0+element-plus搭建方法

创建 laravel8 项目 composer create-project --prefer-dist laravel/laravel laravel8 8.* 安装 laravel/ui composer require laravel/ui 修改 package.json 文件 "devDependencies": {"vue/compiler-sfc": "^3.0.7","axios": …...

在web-view 加载的本地及远程HTML中调用uniapp的API及网页和vue页面是如何通讯的?

uni-app 中 Web-view 与 Vue 页面的通讯机制详解 一、Web-view 简介 Web-view 是 uni-app 提供的一个重要组件&#xff0c;用于在原生应用中加载 HTML 页面&#xff1a; 支持加载本地 HTML 文件支持加载远程 HTML 页面实现 Web 与原生的双向通讯可用于嵌入第三方网页或 H5 应…...

【Go语言基础【13】】函数、闭包、方法

文章目录 零、概述一、函数基础1、函数基础概念2、参数传递机制3、返回值特性3.1. 多返回值3.2. 命名返回值3.3. 错误处理 二、函数类型与高阶函数1. 函数类型定义2. 高阶函数&#xff08;函数作为参数、返回值&#xff09; 三、匿名函数与闭包1. 匿名函数&#xff08;Lambda函…...

并发编程 - go版

1.并发编程基础概念 进程和线程 A. 进程是程序在操作系统中的一次执行过程&#xff0c;系统进行资源分配和调度的一个独立单位。B. 线程是进程的一个执行实体,是CPU调度和分派的基本单位,它是比进程更小的能独立运行的基本单位。C.一个进程可以创建和撤销多个线程;同一个进程中…...

抽象类和接口(全)

一、抽象类 1.概念&#xff1a;如果⼀个类中没有包含⾜够的信息来描绘⼀个具体的对象&#xff0c;这样的类就是抽象类。 像是没有实际⼯作的⽅法,我们可以把它设计成⼀个抽象⽅法&#xff0c;包含抽象⽅法的类我们称为抽象类。 2.语法 在Java中&#xff0c;⼀个类如果被 abs…...

【堆垛策略】设计方法

堆垛策略的设计是积木堆叠系统的核心&#xff0c;直接影响堆叠的稳定性、效率和容错能力。以下是分层次的堆垛策略设计方法&#xff0c;涵盖基础规则、优化算法和容错机制&#xff1a; 1. 基础堆垛规则 (1) 物理稳定性优先 重心原则&#xff1a; 大尺寸/重量积木在下&#xf…...