SQL之视图、变量、存储过程、函数

2023-11-08

视图

虚拟表,和正常表一样使用。
在这里插入图片描述视图的好处:
在这里插入图片描述修改视图:

#方式一:视图不存在就创建,存在就替换
create or replace view name as select ...;
#方式二:
alter view name as select ...;

删除视图:

drop view name1,name2...;

查看视图:

desc name;
show create view name;

安全性:由于对视图进行修改会引起源数据的修改,所以视图有不可更新的规则,如下:
在这里插入图片描述视图与表的对比:
表中的数据占用物理空间,视图中的数据全部来源于表,因此视图中的数据不会再次占用空间,只是视图的逻辑结构会占用很小的物理空间。

变量

一.系统变量分为以下两类:
1.全局变量,作用域:服务器每次重启都会为所有系统变量赋初始值,修改变量后对所有会话有效,但是不能跨重启。
在这里插入图片描述
2.会话变量,作用域:仅仅针对当前会话有效。

二.自定义变量分为以下两类:
1.用户变量,作用域:仅仅针对当前会话有效。
在这里插入图片描述
2.局部变量,作用域:仅仅在定义它的begin end中有效。
在这里插入图片描述
用户变量和局部变量的对比:
在这里插入图片描述

存储过程

在这里插入图片描述在这里插入图片描述在这里插入图片描述空参案例:
在这里插入图片描述IN类型参数案例:
在这里插入图片描述在这里插入图片描述OUT类型参数案例:
在这里插入图片描述在这里插入图片描述在这里插入图片描述删除存储过程:
不支持同时删除多个。
在这里插入图片描述
查看存储过程:
在这里插入图片描述

函数

在这里插入图片描述在这里插入图片描述案例:
在这里插入图片描述
在这里插入图片描述在这里插入图片描述

流程控制结构

分支结构:
在这里插入图片描述
在这里插入图片描述选择结构:
在这里插入图片描述循环结构:
在这里插入图片描述while循环:
在这里插入图片描述
案例:
在这里插入图片描述在这里插入图片描述
loop循环:
在这里插入图片描述repeat循环:
在这里插入图片描述
循环结构对比:
在这里插入图片描述经典案例:
在这里插入图片描述

本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

SQL之视图、变量、存储过程、函数 的相关文章

  • 具有 LINQ 支持的最完整的 ORM?

    我正在寻找一个提供完整或接近完整的 LINQ 支持的 ORM LINQ 到 SQL 支持 LINQ 内部的所有内容 Contains Math Log 等 在不创建新数据上下文的情况下无法预先加载关系属性 ADO NET 实体框架 糟糕的
  • 在 Oracle 中使用触发器记录对表的更改

    我的一门课有一个项目 当我们的两个表发生更改时 我们需要创建一个日志 插入 更新 删除 我们需要使用Oracle触发器和PL SQL 在日志文件中 我们需要记录用户ID 日期时间 IP地址和事件 插入 更新 删除 我知道如何设置触发器 但我
  • 如何将自定义类型数组传递给 Postgres 函数

    我有一个自定义类型 CREATE TYPE mytype as id uuid amount numeric 13 4 我想将它传递给具有以下签名的函数 CREATE FUNCTION myschema myfunction id uuid
  • 是否允许在流水线 PL/SQL 表函数中使用 SELECT?

    管道函数的文档指出 在 SQL 语句 通常是SELECT 并且在大多数示例中 管道函数用于数据生成或转换 接受客户作为参数 但不发出任何 DML 语句 现在 从技术上讲 可以使用 SELECT 而不会出现 Oracle 中的任何错误 ORA
  • SQL - 为每条记录调用存储过程

    我正在寻找一种方法来为 select 语句的每条记录调用存储过程 SELECT SomeIds SELECT spro Id FROM SomeTable as spro INNER JOIN Address addr ON addr Id
  • 在 Postgres 中的数组字段上应用聚合函数?

    是否可以对整数 字段 或其他数字数组 中的所有值应用聚合 如 avg stddev CREATE TABLE widget measurement integer insert into widget measurement values
  • SQL Group BY,每个组的前 N ​​个项目

    我有一个 SQL 查询 可以获取给定商店中销量最高的 5 件商品 SELECT TOP 5 S UPCCode SUM TotalDollarSales FROM Sales S WHERE S StoreId 1 GROUP BY S U
  • 如何在动态查询中将行值连接到列名

    我正在开发一个允许配置问题和答案的应用程序 目前最多可以有 20 个答案 但也可能更少 我的结构如下 问题 ID FormId QuestionText AnswerField 1 1 Name Answer01 2 1 Address A
  • 案例陈述以确定我是否应该结合

    我目前想做某种条件联合 给出以下示例 SELECT age name FROM users UNION SELECT 25 AS age Betty AS name 假设我只想在 用户 计数 gt 2 时合并第二个语句 否则不合并两者 总之
  • 使用包含空值列的 WHERE 子句的更新语句

    我正在使用另一个表中的数据更新一个表上的列 这WHERE子句基于多个列 并且某些列为空 根据我的想法 这个空值是什么throwing off你的标准UPDATE TABLE SET X Y WHERE A B陈述 See 这个 SQL 小提
  • 与 FOREIGN KEY 约束冲突

    我有两张桌子 学术界 CREATE TABLE dbo R ACADEMIE ID ACADEMIE dbo IDENTIFIANT NOT NULL LC ACADEMIE CODE dbo LIBELLE COURT NOT NULL
  • 如何在 SQLite 中获取最后插入的 ID?

    SQLite 中是否有任何内置函数可以获取最后插入的行 ID 例如 在 mysql 中我们有LAST INSERT ID 这种功能 对于 sqlite 任何可用于执行相同过程的函数 请帮我 Thanks SQLite 这可以使用SQLite
  • MySQL 中的 UDF 性能

    我注意到 当查询在 SELECT 或 WHERE 子句中调用 UDF 时 MySQL 查询执行时间的性能会呈指数级下降 有问题的 UDF 查询本地表以返回标量值 因此它们不仅执行算术表达式 而且充当相关子查询 我通过简单地删除 UDF 并使
  • 使用 Powershell SQL 将数据提取到 Excel

    我想使用 powershell 将数据从 SQL Server 提取到新的 excel 文件 对于小型数据集 我的代码可以工作 但某些表的行数超过 100 000 行 这将需要很长时间 我不在 SQl 服务器中使用该实用程序的原因是因为我想
  • 部署 dacpac 所需的权限

    我正在尝试使用 sqlpackage exe 在租户上部署 dacpac 目前 我正在向将部署此功能的帐户授予 SysAdmin 或 db owner 权限 并且它工作正常 但在生产中 如果目标租户数据库属于其他应用程序 我可能无法获得这些
  • 计算树中值的总和(递归查询)

    我在表员工 id name parentid 中有树结构 并且该表可以嵌套 employees 与另一个具有列 id employeeid quantity 的 Sales 表是一对多关系 每个员工都有销售数量 我想计算每个员工以及儿童员工
  • 按时间戳聚合

    搜索引擎优化 gt 搜索引擎优化 gt 付费 1 付费 gt 付费 gt 联盟 gt 付费 1 SEO gt 会员 1我有一个查询 结果包含客户 ID 号 营销渠道 时间戳和购买日期的数据 所以 结果可能看起来像这样 id marketin
  • 在 SQL Server SELECT 语句中使用 CASE 时消除 NULL

    我有一份大而混乱的报告要写 它连接了 5 个表 一个表中有一列用于多个不同的值 本质上是一个 标签 列 其中标签根据用户想要使用的各种元数据的类型以创造性的方式使用 因此 我对报告的查询返回 3 个几乎相同的行 仅 标签 列有所不同 例如
  • Mysql 在给定日期时间范围内插入随机日期时间

    使用 SQL 我可以在给出范围的列中插入随机日期时间值吗 例如 给定一个范围2010 04 30 14 53 27 to 2012 04 30 14 53 27 我对范围部分感到困惑 因为我刚刚做了这个 INSERT INTO someta
  • 如何在分层类别树中找到我的节点及其祖先的所有兄弟节点?

    这是我的桌子 CREATE TABLE IF NOT EXISTS Category Name varchar 25 NOT NULL lft INT UNSIGNED NOT NULL rgt INT UNSIGNED NOT NULL

随机推荐

  • corrupted double-linked list: 0x086a6c50(内存问题)

    新增了一段代码 程序就直接异常了 但是新增的代码没什么问题 但是在qt里面只显示异常也看不出是什么原因导致的 在终端运行了下 就提示有这个错误了 上网搜了一下 是内存的问题 通常有以下容易犯的内存问题 1 内存重复释放 出现double f
  • HTTP快速入门+(请求消息数据格式)+ 防盗链分析

    HTTP 概念 Hyper Text Transfer Protocol 超文本传输协议 传输协议 定义了 客户端和服务器端通信时 发送数据的格式 特点 1 基于TCP IP的高级协议 2 默认端口号 80 3 基于请求 响应模型的 一次请
  • struts2的国际化[三种语言的动态切换]

    一 创建三个资源文件 crms zh CN properties crms en US properties crms zh TW properties 二 struts2的配置文件
  • 远程桌面遇到的问题

    1 Remote Desktop Services服务灰色无法启动 Win R 打开运行 键入 services msc 打开服务界面 找到 Remote Desktop Services 服务 双击打开 确认服务名称为 TermServi
  • Verilog学习心得之三-----task与function的区别

    task和function说明语句分别用来定义任务和函数 特点 1 利用任务和函数可以把一个很大的程序模块分解成许多小的任务和函数 便于理解和调用 2 输入 输出和总线信号的值可以传入 传出任务和函数 3 任务和函数往往还是在程序模块中在不
  • LVGL 源码分析大全

    LVGL 源码分析大全目录 1 概述 2 已完成源码分析文章列表 2 1 硬件抽像层 hal 2 2 核心框架 core misc 2 3 定制功能 2 4 内部接口 2 5 案例讲解 2 6 其它 3 样式 4 组件 5 主题 6 开发环
  • Linux的10个最危险的命令

    Linux命令行佷有用 很高效 也很有趣 但有时候也很危险 尤其是在你不确定你自己在正在做什么时候 这篇文章将会向你介绍十条命令 但你最好不要尝试着去使用 当然 以下命令通常都是在root权限下才能将愚蠢发挥到无可救药 在普通用户身份下 破
  • Docker关闭容器命令(docker stop)

    关闭容器 一定要是容器的名称 也就是 NAMES 下面的名称 关闭容器 docker stop 容器名称 非root用户 关闭容器 sudo docker stop 容器名称
  • Android Studio在build时一直停在:gradle: download maven-metadata.xml

    AndroidStudio在gradle build时 一直停在 gradle download maven metadata xml 解决 如果使用阿里云maven 看看使用的是不是旧版的maven 如果是 则更新为新版本的仓库地址 新版
  • Ubuntu18.04 安装速腾聚创最新驱动RSLidar_SDK采集XYZIRT格式的激光点云数据 --SLAM不学无术小问题

    Ubuntu18 04 安装速腾聚创最新驱动RSLidar SDK采集XYZIRT格式的激光点云数据 新款驱动支持RS16 RS32 RSBP RS128 RS80 RSM1 B3 RSHELIOS等型号 注意 该教程旨在引导安装 可能现在
  • C#相等性比较

    本文阐述C 中相等性比较 其中主要集中在下面两个方面 和 运算符 什么时候它们可以用于相等性比较 什么时候它们不适用 如果不使用 那么它们的替代方式是什么 什么时候 需要自定一个类型的相等性比较逻辑 在阐述相等性比较 以及如何自定义相等性比
  • npm常用命令

    一 npm更新所有依赖最新版本 安装组件 npm install g npm check updates 查看所有依赖最新版本 ncu 更新所有依赖到最新版本 ncu u 二 查看单个依赖版本 npm info 依赖包名称 version
  • 【ChatGPT本地部署-- ChatGLM】

    这里写自定义目录标题 ChatGPT本地部署 ChatGLM 转载 一 什么是ChatGLM 二 本地部署 三 模型与ChatGPT和GPT4AII 效果对比 ChatGPT本地部署 ChatGLM 转载 目录 一 什么是ChatGLM 二
  • golang cli_Go CLI教程:财富克隆

    golang cli I ve written two CLI app tutorials to build gololcat and gocowsay In both I used fortune as the input generat
  • 解决smplayer中文字幕乱码

    首先 打开选项 gt 首选项 选择字幕选项卡 找到 默认字符编码 选项 在下拉框中选择 简体中文 cp936 再打开 字体和颜色 页卡 上边 选择 系统字体 在下拉选框中选择一种简体中文字体 转载于 https www cnblogs co
  • 追忆我那为之奋斗了5年的地方

    虽然已经下定决心离开 但是当邮件发出那一刻 我的手还是忍不住的发抖 心跳在不停的加速 这毕竟是我工作了5年的地方 这里有我熟悉的面孔 直到过了几分钟 Boss回了个信息 过来下 我才深吸一口气 缓缓的走向他的办公室 追忆 初入职顺利过关斩将
  • Linux 编译安装 openssl库

    Linux 编译安装 openssl库 如果是不需要特定版本的openssl库的安装非常简单 直接sudo apt install opensll即可 而且像Ubuntu这种应该是自带了openssl库的 运行openssl version
  • vmware启动虚拟机黑屏解决办法

    以管理员身份在命令提示符窗口中输入 netsh winsock reset 然后重启计算机即可解决
  • stm32每周学习报告2.0

    STM32 通用定时器简介 STM32 的通用定时器是一个通过可编程预分频器 PSC 驱动的 16 位自动装载计数器 CNT 构成 STM32 的通用定时器可以被用于 测量输入信号的脉冲长度 输入捕获 或者产生输出波 形 输出比较和 PWM
  • SQL之视图、变量、存储过程、函数

    视图 虚拟表 和正常表一样使用 视图的好处 修改视图 方式一 视图不存在就创建 存在就替换 create or replace view name as select 方式二 alter view name as select 删除视图 d