首页
学习
活动
专区
工具
TVP
发布
精选内容/技术社群/优惠产品,尽在小程序
立即前往

如何创建、更新和删除SQL 视图

本章讲解如何创建、更新和删除视图。 ---- SQL CREATE VIEW 语句 在 SQL 中,视图是基于 SQL 语句的结果集的可视化的表。 视图包含和列,就像一个真实的表。...每当用户查询视图时,数据库引擎通过使用视图的 SQL 语句重建数据。 ---- SQL CREATE VIEW 实例 样本数据库 Northwind 拥有一些被默认安装的视图。...更新视图 您可以使用下面的语法来更新视图: SQL CREATE OR REPLACE VIEW 语法 CREATE OR REPLACE VIEW view_name AS SELECT column_name...我们将通过下列 SQL 更新视图: CREATE VIEW [Current Product List] AS SELECT ProductID,ProductName,Category FROM Products...---- SQL 撤销视图 您可以通过 DROP VIEW 命令来删除视图。 SQL DROP VIEW 语法 DROP VIEW view_name

1.5K00

如何写好 5000 SQL 代码

上千SQL 代码常见,且永不过时!...我们几个 SQL 老玩家经常自吹, SQL 是半衰期最长的编程语言。玩会它不用担心失业。 如何去阅读和拆解一个上千SQL 存储过程,有四大步骤 :理解代码,分拆代码,改写代码和保存代码。...拆过无数的代码,从上千缩减到 2 成,也组装过无数的代码,从上百塞成了上千,业务所需。见过最长的 SQL 代码超 5000 ,已简无所简,那就实事求是了。人有分分合合,有生命力的代码也一样。...是在原来的价格基础上直接更新,还是另起一列,承载新价格?这类价格设计,会直接影响对电商促销活动的成果分析。...所以,等你费尽心思写完很长的代码,一定要通过复盘记录下来,放到你的 blog, github, 等你以后碰到类似情况,却想不出来如何解,你可以随时拿出来用上。 写好SQL代码,素质当然远不止这些!

55430
您找到你想要的搜索结果了吗?
是的
没有找到

如何写好 5000 SQL 代码

上千SQL 代码常见,且永不过时!...我之前写过如何去阅读和拆解一个上千SQL 存储过程,详情可见以下两篇文章: 如何提高阅读 SQL 源代码的快感 如何写好上千SQL 存储过程(附代码规范) 这两文中提到了四大步骤:理解代码,...拆过无数的代码,从上千缩减到 2 成,也组装过无数的代码,从上百塞成了上千,业务所需。见过最长的 SQL 代码超 5000 ,已简无所简,那就实事求是了。人有分分合合,有生命力的代码也一样。...如要参考这5000的实战SQL代码,可以关注我的微信公众号【有关SQL】,回复【5000】便可下载。 但装和拆并不是一个逆反的过程!...是在原来的价格基础上直接更新,还是另起一列,承载新价格?这类价格设计,会直接影响对电商促销活动的成果分析。

1K11

如何写好 5000 SQL 代码

上千SQL 代码常见,且永不过时!...我之前写过如何去阅读和拆解一个上千SQL 存储过程,详情可见以下两篇文章: 如何提高阅读 SQL 源代码的快感 如何写好上千SQL 存储过程(附代码规范) 这两文中提到了四大步骤:理解代码,...拆过无数的代码,从上千缩减到 2 成,也组装过无数的代码,从上百塞成了上千,业务所需。见过最长的 SQL 代码超 5000 ,已简无所简,那就实事求是了。人有分分合合,有生命力的代码也一样。...如要参考这5000的实战SQL代码,可以关注我的微信公众号【有关SQL】,回复【5000】便可下载。 但装和拆并不是一个逆反的过程!...是在原来的价格基础上直接更新,还是另起一列,承载新价格?这类价格设计,会直接影响对电商促销活动的成果分析。

59310

MySQL中一条更新SQL如何执行

MySQL 之 -- 一条更新SQL 如何执行,一条更新SQL 语句如何执行执行流程一条 SQL 的执行流程如图所示:(图片来源于网络) 如图所示:MySQL 数据库主要分为两个层级:服务层和存储引擎层服务层...更新 SQL 语句的日志记录 日志记录用到 WAL 技术,全称为 Write-Ahead-logging 关键点为:先写日志,再写磁盘 redo log redo log 是 InnoDB 引擎 中的日志模块...binglog 是逻辑日志,记录的是这个语句的原始逻辑,比如 “给 ID=2 这行的 C 字段加 1” binlog 有两种模式:statement 格式是记录执行的 sql 语句,而 row 格式是记录的内容...执行器先找引擎取 ID=2 这一。ID 是主键,引擎直接用树搜索找到这一。如果 ID=2 这一所在的数据页本来就在内存中,就直接返回给执行器;否则,需要先从磁盘读入内存,然后再返回。...执行器拿到引擎给的行数据,把这个值加上 1,比如原来是 N,现在就是 N+1,得到新的一数据,再调用引擎接口写入这行新数据。

90910

MySQL中一条更新SQL如何执行

MySQL 之 -- 一条更新SQL 如何执行,一条更新SQL 语句如何执行执行流程一条 SQL 的执行流程如图所示:(图片来源于网络) 如图所示:MySQL 数据库主要分为两个层级:服务层和存储引擎层服务层...更新 SQL 语句的日志记录 日志记录用到 WAL 技术,全称为 Write-Ahead-logging 关键点为:先写日志,再写磁盘 redo log redo log 是 InnoDB 引擎 中的日志模块...binglog 是逻辑日志,记录的是这个语句的原始逻辑,比如 “给 ID=2 这行的 C 字段加 1” binlog 有两种模式:statement 格式是记录执行的 sql 语句,而 row 格式是记录的内容...执行器先找引擎取 ID=2 这一。ID 是主键,引擎直接用树搜索找到这一。如果 ID=2 这一所在的数据页本来就在内存中,就直接返回给执行器;否则,需要先从磁盘读入内存,然后再返回。...执行器拿到引擎给的行数据,把这个值加上 1,比如原来是 N,现在就是 N+1,得到新的一数据,再调用引擎接口写入这行新数据。

1.2K10

一条SQL更新语句是如何执行的?

这是图解MySQL的第2篇文章,这篇文章会通过一条SQL更新语句的执行流程让大家清楚地明白: 什么是InnoDB页?缓存页又是什么?为什么这么设计? 什么是表空间?...---- 之前我们讲过了一条SQL查询语句是如何执行的,那么插入(INSERT)、更新(UPDATE)和删除(DELETE)操作的流程又是什么样子呢?...SQL更新语句的执行总结——初版 有了事务日志之后,我们来简单总结一下更新操作的流程,这是一个简化的过程。 name 原值是chanmufeng。...加上两阶段提交之后我们再来看一下SQL更新语句的执行流程。 7....SQL更新语句的执行总结——终版 客户端发送更新命令到MySQL服务器,经过处理连接、解析优化等步骤; Server层向InnoDB存储引擎要id=1的这条记录; 存储引擎先从缓存中查找这条记录,有的话直接返回

51620

MySQL架构(二)SQL 更新语句是如何执行的?

那么在这篇文章中,小鱼将介绍更新语句的执行流程,从中我们又能学到什么呢? SQL更新流程 我们先创建一张表作为演示表,作为演示表只需要一个主键、一个额外字段就可以了。...下面是演示表的创建语句: CREATE TABLE test(ID int primary key, age int); 如果我们需要将 ID=2 目标值自增 1,更新SQL 语句如下。...UPDATE test SET age=age+1 WHERE ID=2; 更新目标值时,得先查找的该行数据,所以也会执行SQL查询语句的流程。 在执行语句前,连接上数据库(连接器)。...最后,执行器负责更新的具体执行,根据索引找到目标,再执行更新。 执行器会先找引擎取出 ID=2 的行数据。因为 ID 是主键索引,引擎直接用索引树搜索找到目标行数据。...譬如:一个事务对表做10万的记录插入,在事务执行过程中,会一直不断的往 Redo Log 顺序写,而这个过程 Binlog 不会记录,直至这个事务提交的时候,才会写入到 Binlog 文件中。

10710

Sql Server 数据库事务与锁,同一事务更新又查询锁的变化,期望大家来解惑!

我有一个People表,有三数据: 如果我们没详细了解数据库事务执行加锁的过程中,会不会有这样一个疑问:如下的这段 SQL 开启了事务,并且在事务中进行了更新和查询操作。...SQL Server数据库引擎使用不同的锁模式锁定资源,这些模式确定并发事务如何访问资源。...确保不会同时对同一资源进行多重更新。 意向 用于建立锁的层次结构。 意向锁包含三种类型:意向共享 (IS)、意向排他 (IX) 和意向排他共享 (SIX)。 架构 在执行依赖于表架构的操作时使用。...确保再次运行查询时其他事务无法插入符合可序列化事务的查询的。 锁兼容性 锁兼容性控制多个事务能否同时获取同一资源上的锁。...(object,page) 准备更新,然后获得上的X排它锁进行更新更新后释放了锁和page锁(EventClass= Lock:released,Mode=0-null)。

1K20

一条查询SQL如何执行的?更新、新增、删除呢?

大部分朋友估计都只知道写sql然后执行,但是并不知道MySQL背后到底是怎么实现的。 八股文中也有这么一道题:在MySQL中,一条SQL到底是如何执行的?...支持级别的锁和表级别的锁。 支持读写并发,写不阻塞读 (MVCC)。 特殊的索引存放方式,可以减少 IO, 提升查询效率。 适合:经常更新的表,存在并发读写或者有事务处理的业务系统。...更新SQL 其实,更新SQL和查询SQL执行流程基本一样,不同的是拿到符合条件的数据后的一些操作。...所以,在回答一句更新SQL的执行过程,这个Buffer Pool一定要讲。...更新SQL执行过程 假设有如下一条更新SQL: update user_info set name ='tinage' where id=1; 除了连接验证、语法解析、优化器等处理以外,还有以下步骤:

29910

MySQL实战 -- 一条SQL更新语句是如何执行的?

; 如果要将 ID=2 这一的值加 1,SQL 语句就会这么写: mysql> update T set c=c+1 where ID=2; 前面我有跟你介绍过 SQL 语句基本的执行链路,这里我再把那张图拿过来...接下来,分析器会通过词法和语法解析知道这是一条更新语句。优化器决定要使用 ID 这个索引。然后,执行器负责具体执行,找到这一,然后更新。...具体来说,当有一条记录需要更新的时候,InnoDB 引擎就会先把记录写到 redo log(粉板)里面,并更新内存,这个时候更新就算完成了。...(1)执行器先找引擎取 ID=2 这一。ID 是主键,引擎直接用树搜索找到这一。如果 ID=2 这一所在的数据页本来就在内存中,就直接返回给执行器;否则,需要先从磁盘读入内存,然后再返回。...然后你会发现,如果需要用这个 binlog 来恢复临时库的话,由于这个语句的 binlog 丢失,这个临时库就会少了这一次更新,恢复出来的这一 c 的值就是 0,与原库的值不同。

80430

01 | 日志系统:一条SQL更新语句是如何执行的?

); 如果要将 ID=2 这一的值加 1,SQL 语句就会这么写: mysql> update T set c=c+1 where ID=2; 前面我有跟你介绍过 SQL 语句基本的执行链路。...3.接下来,分析器会通过词法和语法解析知道这是一条更新语句。 4.优化器决定要使用 ID 这个索引。 5.然后,执行器负责具体执行,找到这一,然后更新。...SQL更新与查询流程不一样的是,更新流程还涉及两个重要的日志模块,它们正是我们今天要讨论的主角:redo log(重做日志)和 binlog(归档日志)。...有两种模式,statement 格式的话是记sql语句, row格式会记录的内容,记两条,更新前的记录和更新后的记录。...3.MySQL如何判断binlog完整性? 如果binlog是statement模式的,最后面会出现一个commit的标识,如下: use `test`/*!

42620

面试官提问:如何通过sql方式将数据库表转列?

一、提问环节 在刚进入 IT 行业的第一年换工作的时候,至今让我印象最深刻的有一个这样的面试题:如何通过 SQL 方式将数据库的转列?...我们想要以下图形式,并以总分排名从高到底进行展示,如何通过 SQL 方式实现呢? 有的同学说,我可以通代码层面来实现,不可否认,代码完全可以实现,只需要封装一个如下形式的数据结构就可以了。...面对这种场景需求,我们多半会采用通过 sql 方式来解决,那么通过 sql 方式破解呢?...其实像这样的转列的查询逻辑非常的普遍,例如刚过去的奥运奖牌排行榜! 还有全球新冠疫情数据排名。...三、小结 本文主要围绕如何通过 sql 的方式,将数据库表中的转列进行显示,希望能帮助到大家!

92220

一条更新SQL在MySQL数据库中是如何执行的

点击关注"故里学Java" 右上角"设为星标"好文章不错过 前边的在《一条SQL查询在MySQL中是怎么执行的》中我们已经介绍了执行过程中涉及的处理模块,包括连接器、分析器、优化器、执行器、存储引擎等。...接下来,分析器会经过语法分析和词法分析,知道了这是一条更新语句后,优化器决定要使用哪一个索引,然后执行器负责具体的执行,先找到这一,然后做更新。...我们知道,redolog写完以后,系统即使崩溃了,也可以将数据恢复,所以在MySQL重启后,这一会被恢复成1。...如果写完buglog之后,redo log还没写完的时候发生 crash,如果这个时候数据库奔溃了,恢复以后这个事务无效,所以这一的值还是0,但是binlog里已经记载了这条更新语句的日志,在以后需要用...binlog来恢复数据的时候,就会多了一个事务出来,执行这条更新语句,将值从0更新成1,与原库中的0就不同了。

3.8K30
领券