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

【计算机三级-数据库技术】数据库后台编程技术

内容提要

1、掌握存储过程的定义与使用
2、掌握用户定义函数的创建与使用
3、掌握触发器的定义与使用
4、掌握游标的定义与使用

第一节 存储过程

使用T-SQL语言编写,有两种方式存储:

  • 在客户端存储代码通过客户端程序或SQL命令向DBMS发出操作请求,由DBMS将结果返回给用户程序。
  • 以子程序的形式将程序模块存储在数据库中,供有权限的用户通过调用反复执行。

存储过程:即存储在数据库中供所有用户程序调用的子程序。

在这里插入图片描述
用户自定义存储过程是由用户创建并能完成某特定功能(如查询用户所需数据信息)的存储过程。本节将详细介绍用户自定义的存储过程。
在这里插入图片描述
在这里插入图片描述
2、创建、执行和删除存储过程
存储过程定义包含两个主要组成部分:
①过程名称及其参数的说明
②过程的主体(其中包含执行过程操作的Transact-SQL语句)。

创建存储过程的语法格式如下:
在这里插入图片描述
执行存储过程:
在这里插入图片描述
在这里插入图片描述
删除存储过程:
在这里插入图片描述

第二节 用户自定义函数

  • 用户定义函数:
    类似于编程语言中的函数,其结构与存储过程类似,但函数必须有一个RETURN子句,用于返回函数值。
  • 两类用户定义函数:
    标量函数表值函数。前者返回单个数据值,表值函数返回一个表。

在这里插入图片描述

在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述

第三节 触发器

1、基本概念
触发器:特殊存储过程,在对表中的数据进行
UPDATE、INSERT、DELETE操作时自动触发执行,
常用于保证业务规呗则和数据完整性,增强数据完整性约束能力。

  • SQL Server2008支持三种类型的触发器:
    DML、DDL、登录触发器。

对于更新操作的触发器:
更新 :
①删除原数据
②插入新数据

适用场合

  • 完成比CHECK(只能实现同一表列之间取值约束)约束更复杂的数据约束。
  • 保证数据库性能而维护的非规范化数据。
  • 可实现复杂的商业规则。
  • 评估数据修改前后的表状态,并采取对策。

在这里插入图片描述
在这里插入图片描述
在这里插入图片描述

第四节 游标

1、游标的组成
游标结果集(SELECT返回结果集)与游标当前行指针(指向结果集中某一行)

特点:

  • 定位特定行;
  • 从当前位置检索一行或多行;
  • 支持当前行数据修改;
  • 对修改结果提供不同级别的可见性支持
    在这里插入图片描述
    习题:
    在这里插入图片描述
    在这里插入图片描述在这里插入图片描述
    在这里插入图片描述
    在这里插入图片描述
    在这里插入图片描述
    在这里插入图片描述

相关文章:

【计算机三级-数据库技术】数据库后台编程技术

内容提要 1、掌握存储过程的定义与使用 2、掌握用户定义函数的创建与使用 3、掌握触发器的定义与使用 4、掌握游标的定义与使用 第一节 存储过程 使用T-SQL语言编写,有两种方式存储: 在客户端存储代码通过客户端程序或SQL命令向DBMS发出操作请求&…...

线程的控制

互斥 概念 互斥:在多线程中对临界资源(公共资源)的排他性访问。 互斥机制 >>互斥锁 >>保证临界资源的访问控制。 通过使用互斥锁,可以确保某一时刻只有一个线程能够访问临界资源,从而避免竞争条件(race condition…...

WPS宏实现Sheet页拆分功能

源表格首列名称中一样的分别创建该名称的Sheet页,首先把首列复制导致Sheet2页,根据去重后的值创建新的Sheet页,把源表格数据复制到新建的Sheet页,遍历删除不需要的留下需要的就完成了。 function JIn521() { //设置工作…...

【图像超分】论文精读:AdaBM: On-the-Fly Adaptive Bit Mapping for Image Super-Resolution

第一次来请先看这篇文章:【超分辨率(Super-Resolution)】关于【超分辨率重建】专栏的相关说明,包含专栏简介、专栏亮点、适配人群、相关说明、阅读顺序、超分理解、实现流程、研究方向、论文代码数据集汇总等) 文章目录 前言Abstract1. Introduction2. Related works3. Pr…...

深信服应届生客户经理面试经验分享

吉祥知识星球http://mp.weixin.qq.com/s?__bizMzkwNjY1Mzc0Nw&mid2247485367&idx1&sn837891059c360ad60db7e9ac980a3321&chksmc0e47eebf793f7fdb8fcd7eed8ce29160cf79ba303b59858ba3a6660c6dac536774afb2a6330#rd 《网安面试指南》http://mp.weixin.qq.com/s?…...

什么是应用交付控制器(ADC)

什么是应用交付控制器(ADC) 应用交付控制器(ADC)是一种网络设备,可帮助管理和优化面向最终用户的基于web的应用程序和服务的交付,根据服务器可用性、网络拥塞和用户位置等因素,将传入的web流量…...

旅游管理系统

TOC springboot0748旅游管理系统 第1章 绪论 1.1课题背景 计算机的普及和互联网时代的到来使信息的发布和传播更加方便快捷。用户可以通过计算机上的浏览器访问多个应用系统,从中获取一些可以满足用户需求的管理系统。网站系统有时更像是一个大型“展示平台”&a…...

AVI-Talking——能通过语音生成很自然的 3D 说话面孔

概述 论文地址:https://arxiv.org/pdf/2402.16124v1.pdf 逼真的人脸三维动画在娱乐业中至关重要,包括数字人物动画、电影视觉配音和虚拟化身的创建。以往的研究曾试图建立动态头部姿势与音频节奏之间的关联模型,或使用情感标签或视频剪辑作…...

走进虚拟机逃逸技术之VMware Escape漏洞CVE-2023-20872复现

走进虚拟机逃逸技术之VMware Escape漏洞CVE-2023-20872复现 技术分享 技术分享 起初,为了学习虚拟机逃逸相关技术,也为了搞懂硬件虚拟化。于是请教了某巨佬后告诉我一本书,看完之后为了验证我理解到的硬件虚拟化及虚拟化逃逸原理是否正确&am…...

leetcode118. 杨辉三角,老题又做

leetcode118. 杨辉三角 给定一个非负整数 numRows,生成「杨辉三角」的前 numRows 行。 在「杨辉三角」中,每个数是它左上方和右上方的数的和。 示例 1: 输入: numRows 5 输出: [[1],[1,1],[1,2,1],[1,3,3,1],[1,4,6,4,1]] 示例 2: 输入: numRows 1…...

进程(一)(22)

1.进程是什么 进程是程序执行的过程,会去分配内存资源,cpu的调度。正在运行的程序叫进程。 并发:同一时刻可以同时完成多个任务。 进程: 是操作系统对正在运行的程序的抽象。进程不仅包括程序的代码,还包括程序的执行状态、内存…...

Excel“取消工作表保护”忘记密码并恢复原始密码

文章目录 1.前言2.破解步骤3. 最终效果4.参考文献 1.前言 有时候别人发来的Excel中有些表格不能编辑,提示如下,但是又不知道原始密码 2.破解步骤 1、打开您需要破解保护密码的Excel文件; 2、依次点击菜单栏上的视图—宏----录制宏&#xf…...

WPS关闭后,进程依然在后台运行的解决办法

问题 wps启动后 在启动wps后,什么都不做,打开进程管理器,发现居然运行了3个wps进程: win10只会显示wps进程: win11显示比较准确: 关闭后 在关闭wps,再去任务管理器查看,发现在…...

SQL每日一练-0816

今日SQL题:计算每个项目的年度收入增长率 难度系数:🌟☆☆☆☆☆☆☆☆☆ 1、题目要求 计算每个项目每年的收入总额,并计算项目收入环比增长率。找出每年收入增长率最高的项目。输出结果显示年份、项目ID、项目名称、项…...

直方图均衡化

概念 直方图均衡化是图像处理领域中利用图像直方图对对比度进行调整的方法,通过拉伸像素强度分布范围来增强图像对比度。 原理 均衡化指的是把一个分布 (给定的直方图) 映射 到另一个分布 (一个更宽更统一的强度值分布),从而令强度值分布会在整个范围内…...

Golang | Leetcode Golang题解之第342题4的幂

题目: 题解: func isPowerOfFour(n int) bool {return n > 0 && n&(n-1) 0 && n%3 1 }...

数学建模学习(116):全面解析梯度下降算法及其在机器学习中的应用与优化

文章目录 1.梯度下降简介1.1 梯度下降的数学原理1.2 学习率的选择2 梯度下降变体3.梯度下降优化器3.1 动量法(Momentum)3.2 AdaGrad3.3 RMSprop3.4 Adam3.5 Python 使用不同优化器训练线性回归模型4.案例:使用梯度下降优化加利福尼亚房价预测模型4.1. 数据准备4.2. 模型训练…...

[mysql][sql]mysql查询表大小

select table_schema as 数据库, table_name as 表名, table_rows as 记录数, truncate(data_length/1024/1024, 2) as 数据容量(MB), truncate(index_length/1024/1024, 2) as 索引容量(MB) from information_schema.tables where 11 and table_schemadb001 order by table_ro…...

8.16 mysql主从数据库(5.7版本)与python的交互及mycat

mysql数据库基本操作: [rootm ~]# tar -xf mysql-5.7.44-linux-glibc2.12-x86_64.tar.gz 解压压缩包 [rootm ~]# ls anaconda-ks.cfg mysql-5.7.44-linux-glibc2.12-x86_64 mysql-5.7.44-linux-glibc2.12-x86_64.tar.gz [rootm ~]# cp -r mysql-5.7.44-lin…...

项目问题 | CentOS 7停止维护导致yum失效的解决办法

目录 centos停止维护意味着yum相关源伴随失效。 报错: 解决方案:将图中四个文件替换掉/etc/yum.repos.d/目录下同名文件 资源提交在博客头部,博客结尾也提供文件源码内容 CentOS-Base.repo CentOS-SCLo-scl.repo CentOS-SCLo-scl-rh.rep…...

从零搭建AI办公助手:OpenClaw+百川2-13B-4bits七日实践计划

从零搭建AI办公助手:OpenClaw百川2-13B-4bits七日实践计划 1. 为什么选择这个组合? 去年冬天,当我第一次听说OpenClaw这个开源自动化框架时,内心是充满怀疑的。作为一个长期被各种"智能助手"忽悠的技术从业者&#xf…...

Ubuntu 24.04镜像源配置全攻略:从原理到实战(含常见报错解决)

Ubuntu 24.04镜像源深度解析与高效配置实战 最近在帮朋友配置新装的Ubuntu 24.04时,发现这个版本在软件源管理上做了重大调整——从传统的sources.list文件变成了结构化更强的sources.d目录配置方式。这个变化让不少习惯了旧版本的用户感到困惑,也让我意…...

Verilog实战精要:从语法基础到高效状态机设计

1. Verilog语法基础:从硬件思维出发 第一次接触Verilog时,很多人会把它当成普通编程语言来学,结果发现处处碰壁。我当年在FPGA项目上栽的第一个跟头,就是把阻塞赋值用在了时钟触发的always块里,导致仿真结果和实际硬件…...

注册表CLSID权限控制技术:通过权限管理实现IDM永久试用

注册表CLSID权限控制技术:通过权限管理实现IDM永久试用 【免费下载链接】IDM-Activation-Script IDM Activation & Trail Reset Script 项目地址: https://gitcode.com/gh_mirrors/id/IDM-Activation-Script 问题引入:IDM试用期管理的技术困境…...

告别C盘爆炸!手把手教你将Dify+Docker数据盘迁移到D盘(附.ENV配置详解)

告别C盘爆炸!手把手教你将DifyDocker数据盘迁移到D盘(附.ENV配置详解) Windows系统盘空间告急是许多开发者的共同烦恼,尤其是当你开始使用Docker部署AI开发环境时。C盘空间像被黑洞吞噬一样迅速消失,系统运行速度也随之…...

CTF是什么?一文带你读懂网络安全大赛

CTF是什么?一文带你读懂网络安全大赛 前言 随着大数据、人工智能的发展,人们步入了新的时代,逐渐走上科技的巅峰。 科技是一把双刃剑,网络安全不容忽视,人们的隐私在大数据面前暴露无遗,账户被盗、资金损失…...

OpenClaw安全方案:nanobot本地模型的数据隐私保护实践

OpenClaw安全方案:nanobot本地模型的数据隐私保护实践 1. 为什么选择本地化部署 去年夏天,我接手了一个特殊项目——为一家小型会计师事务所设计自动化财务文档处理方案。最初考虑使用云端AI服务时,客户明确提出了数据隐私的硬性要求&#…...

空洞骑士模组管理终极指南:Scarab如何让复杂模组安装变得简单快速

空洞骑士模组管理终极指南:Scarab如何让复杂模组安装变得简单快速 【免费下载链接】Scarab An installer for Hollow Knight mods written in Avalonia. 项目地址: https://gitcode.com/gh_mirrors/sc/Scarab 对于《空洞骑士》玩家来说,模组&…...

DeepSeek LintCode 3866.有效子数组的数量 public int validSubarrays(int[] nums)

这是关于LintCode 3866 “有效子数组的数量”的问题。这是一个典型的单调栈应用问题,需要计算数组中所有满足特定条件的子数组数量。 问题理解 有效子数组的定义: 对于数组 nums 中的某个子数组 nums[i..j](i ≤ j),如…...

Connect to Oracle Database with JDBC Driver

1. Overview The Oracle Database is one of the most popular relational databases. In this tutorial, we’ll learn how to connect to an Oracle Database using a JDBC Driver. 2. The Database To get us started, we need a database. If we don’t have access to …...