<SQL>《SQL命令(含例句)精心整理版(4)》
《SQL命令(含例句)精心整理版(4)》
- 14 数据库对象
 - 14.1 表
 - 14.2 视图
 - 14.3 存储过程
 - 14.3.1 概念
 - 14.3.2 创建存储过程
 - 14.3.2 调用存储过程
 - 14.3.3 DbVisualizer工具中调用方法
 - 14.3.3 DB2命令行脚本调用方法
 - 14.3.4 DB2中两个存储过程报错.
 
- 15 事务处理
 - 15.1 RANSACTION
 - 15.2 ROLLBACK
 - 15.3 COMMIT
 - 15.4 保留点SAVEPOINT
 
14 数据库对象
14.1 表
1、创建表
	CREATE TABLE OrderItems(order_num  INTEGER  NOT NULL,Order_date DATETIME NOT NULL,Cust_id    CHAR(10) NOT NULL,Quantity   INTEGER  NOT NULL  DAFAULT  1,   -------指定默认值)
 
2、更新表
ALTER TABLE Vendors ADD vend_phone CHAR(20)      -------给Vendors表增加一个名为vend_phone的列,数据类型为CHAR
 
3、删除表
DROP TABLE CustCopy
 
4、重命名表
DB2/MariaDB/MySQL/Oracle/PostgreSQL
RENAME TABLE DB2INST1.TBL_BANKCODE20170822 TO TBL_BANKCODE<注意1>重命名表时,源表不能在任何现有定义(视图或具体化查询表)、触发器、SQL函数或约束中引用。它也不能具有任何生成列(标识列除外),或者不能是父表或从属表。目录条目更新以反映新表名。
<注意2>后面的表不能加schame。
 
SQL Server
sp_rename存储过程
 
SQLite
ALTER TABLE语句
 
14.2 视图
1、创建视图
CREATE VIEW ProductCustomers ASSELECT cust_name,cust_contact,prod_idFROM Customers,Orders,OrderItemsWHERE Customers.cust_id=Orders.cust_idAND OrderItems.order_num=Orders.order_num;
 
2、视图和表一样,必须唯一名。
14.3 存储过程
14.3.1 概念
| 定义 | 说明 | 
|---|---|
| 定义 | 存储过程就是为以后使用而保存的一条或多条SQL语句。 | 
| 说明 | 可将存储过程视为批文件,但作用不仅限于批处理。 | 
| 说明 | 存储过程的优缺点 优点 1-将处理封装在简易单元可以简化复杂的操作。 2-不用要求反复建立一系列的处理步骤,保证了数据的一致性。开发人员使用同一存储过程,则能保证代码的一致性,防止错误。 3-简化对变动的管理。即如果表名、列名等有变化,只需要更改存储过程的代码。 4-存储过程以编译过的形式存储,可以是DBMS 处理命令所需的工作量少,提高性能。 缺点 1-不同DBMS存储过程语法有所不同,编写真正可移至的存储过程几乎是不可能的。不过,存储过程的自我调用(名字以及数据如何传递)可以相对保持可移植。如果需要移植到别的DBMS,至少客户端应用代码不需要移动。 2-编写存储过程比编写SQL语句复杂,需要更高的技能和更丰富的经验。  | 
14.3.2 创建存储过程
CREATE OR REPLACE  PROCEDURE "WHJH"."PR_UPDATE_LAST_STATE" ( )BEGIN --6、开始CALL WHJH.PRO_LOG('PR_HANDLE_CHECK_RESULT',1,9,'更新错误/疑问正式表中的“最终数据状态”');--单位基本情况信息表CALL WHJH.PRO_LOG('PR_HANDLE_CHECK_RESULT',1,91,'更新单位表错误/疑问正式表中的“最终数据状态”');UPDATE WHJH.TBL_BIZCHECK_CUSTINFO_DOU_OFF T SET (LAST_STATE,DEALDATE,DEALTYPE) = (SELECT LAST_STATE,CURRENT DATE,'A' FROM WHJH.TBL_LAST_STATE_TMP A WHERE T.CUSTCODE = A.DATANO fetch first 1 rows only)where exists(SELECT 1 FROM WHJH.TBL_LAST_STATE_TMP A WHERE T.CUSTCODE = A.DATANO);commit;END;
 
14.3.2 调用存储过程
CALL WHJH.PRO_LOG('PR_HANDLE_CHECK_RESULT',1,9,'更新错误/疑问正式表中的“最终数据状态”');
 
14.3.3 DbVisualizer工具中调用方法
说明:在工具中直接执行存储过程。
 格式:
--/ 存储过程
/
 
注意:
1 END后面不能加;符号
2 CREATE OR REPLACE PROCEDURE “WHJH”.“PR_PER_TIMELESS” ( ) 要去掉OR REPLACE
3 备份旧的存储过程
4 删除旧的存储过程后再执行建立新的存储过程
5 存储过程:stored Procedures
6 存储过程分段只能用脚本执行
14.3.3 DB2命令行脚本调用方法
	db2 -td@ -vf 1.sql
 
注意:
1 sql的执行,需要连接上数据库,每个存储过程上放@隔开。
2 分段的存储过程可以执行。例:P2:BEGIN
14.3.4 DB2中两个存储过程报错.
报错1:缺少权限。缺少方法的权限。
DB21034E  The command was processed as an SQL statement because it was not a 
valid Command Line Processor command.  During SQL processing it returned:
SQL0440N  No authorized routine named "FN_USDREATE" of type "FUNCTION" having 
compatible arguments was found.  LINE NUMBER=109.  SQLSTATE=42884
 
报错2:要创建的存储过程已存在,再次执行时报错。
DB21034E  The command was processed as an SQL statement because it was not a 
valid Command Line Processor command.  During SQL processing it returned:
SQL0454N  The signature provided in the definition for routine 
"TYCJ.SP_DIS_CFA" matches the signature of some other routine that already 
exists in the schema or module.  LINE NUMBER=12.  SQLSTATE=42723
 
15 事务处理
15.1 RANSACTION
定义:
事务(transaction)指一组SQL语句;
事务处理(transaction processing)用来管理必须成批执行的SQL操作,保证数据库不包含不完整的操作结果。
示例:
| 数据库 | 格式 | 
|---|---|
| SQL Server | BEGIN TRANSACTION … COMMIT TRANSACTION  | 
| MariaDB 和 MySQL | START TRANSACTION …  | 
| Oracle | SET TRANSACTION …  | 
| PostgreSQL | BEGIN …  | 
15.2 ROLLBACK
定义:回退(rollback)指撤销指定SQL语句的过程;
 说明:事务处理用来管理INSERT/UPDATE/DELETE语句,不能回退SELECT语句,也不能回退CREATE或DROP操作。
 示例:
DELETE FROM Orders;
ROLLBACK;
 
15.3 COMMIT
定义:提交(commit)指未将存储的SQL语句结果写入数据库表;
 说明:一般SQL语句都是针对数据库表直接执行和编写的,是隐式提交(implicit commit),即提交操作时自动进行的。
 说明:事务处理块中,提交不会隐式进行必须使用COMMIT进行明确的提交。
 示例:
| 数据库 | 格式 | 
|---|---|
| SQL Server | BEGIN TRANSACTION DELETE OrderItems WHERE order_num=12345 DELETE Order WHERE order_num=12345 COMMIT TRANSACTION  | 
| Oracle | SET TRANSACTION DELETE OrderItems WHERE order_num=12345 DELETE Order WHERE order_num=12345 COMMIT  | 
15.4 保留点SAVEPOINT
定义:保留点(SAVEPOINT)指事务处理中设置的临时占位符(placeholder),可以对他发布回退(与回退整个事务处理不同)。
 说明:又称为占位符。
 示例:创建保留点(占位符)delete1
1、SQL Server 
 创建
SAVE TRANSACTION delete1
 
回滚
ROLLBACK TRANSACTION delete1
 
完整
BEGIN TRANSACTIONINSERT INTO Customers(cust_id,cust_name) VALUES('1000000010','Toys Emporium');SAVE TRANSACTION StartOrder;INSERT INTO Orders(order_num,order_date,cust_id) VALUES(20100,'2001/12/1','1000000010');IF @@ERROR <> 0 ROLLBACK TRANSACTION StartOrder;INSERT INTO OrderItems(order_num,order_item,prod_id,quantity,item_price) VALUES(20100,1,'BR01',100,5.49);IF @@ERROR <> 0 ROLLBACK TRANSACTION StartOrder;INSERT INTO OrderItems(order_num,order_item,prod_id,quantity,item_price) VALUES(20100,2,'BR03',100,10.99);IF @@ERROR <> 0 ROLLBACK TRANSACTION StartOrder;COMMIT TRANSACTION
 
2、MariaDB、MySQL和Oracle 
 创建
SACEPOINT delete1
 
回滚
ROLLBACK TO delete1
相关文章:
<SQL>《SQL命令(含例句)精心整理版(4)》
《SQL命令(含例句)精心整理版(4)》 14 数据库对象14.1 表14.2 视图14.3 存储过程14.3.1 概念14.3.2 创建存储过程14.3.2 调用存储过程14.3.3 DbVisualizer工具中调用方法14.3.3 DB2命令行脚本调用方法14.3.4 DB2中两个存储过程报错…...
C++死锁
死锁是指两个或两个以上的线程在执行过程中,由于竞争资源或者由于彼此通信而造成的一种阻塞的现象,若无外力作用,它们都将无法推进下去。此时称系统处于死锁状态或系统产生了死锁,这些永远在互相等待的状态称为死锁。 死锁通常发生…...
[自学记录02|百人计划]纹理压缩
一、什么是纹理压缩 纹理压缩是为了解决内存、带宽问题,专为在计算机图形渲染系统中存储纹理而使用的图像压缩技术。 1.图片格式和纹理格式的区别 (1)图片格式 图片格式是图片文件的存储格式,通常在磁盘、内存中储存和传输文件时使用;例如…...
C++泛型编程之模板
目录 一、什么是泛型编程 二、函数模板 2.1函数模板的概念 2.2函数模板格式 2.3函数模板的原理 2.5函数模板的实例化 2.6模板参数的匹配原则 三、类模板 3.1类模板的定义格式 3.2 类模板的实例化 四、非类型模板参数 五、模板的特化 5.1模板特化的概念:…...
极氪汽车 APP 系统云原生架构转型实践
作者:极氪汽车 前言 新能源汽车已经成为我国汽车市场再次崛起的关键支柱,随着新能源汽车市场的快速发展,不同类型的品牌造车厂商呈现出百花齐放的态势。极氪汽车是吉利控股集团旗下高端纯电汽车新品牌,2021 年 4 月极氪发布首款…...
一个UDP下载服务器的实现(模拟下载文件)
本期分享的主要是使用UDP实现文件下载功能,需要自己编写服务器和客户端,实现的功能主要有以下几个: (1)服务器可以为请求的用户下发文件数据(前提是服务器得有这个数据文件) (2&…...
01.hadoop上课笔记之hadoop介绍
1.大数据介绍 可以对未来数据预测 google通过搜索预测流感,足球球员有一 定关联…caict可以得到数据hbase hive林子雨mooc数据要进行挖掘(推断更多信息) 2.大数据是非结构化数据多:声音,图片… 3.大数据影响因素 大多快低 tb pb eb zb 1.硬件 2.网络带宽 4.大数据的特征 数据量…...
小鹏汽车Q1财报:押注G6、大力降本,明年智驾BOM降半
作者 | 德新编辑 | 王博 小鹏汽车本周发了Q1财报,数据不好看,以致于在微博端也发了公开信。 那后续呢? 小鹏第二季度指引是,总交付数量约为2.1 - 2.2万辆,收入预计约为45 - 47亿元;四季度,…...
VMware ESXi 8.0U1a 发布 - 领先的裸机 Hypervisor
VMware ESXi 8.0U1a 发布 - 领先的裸机 Hypervisor 请访问原文链接:https://sysin.org/blog/vmware-esxi-8-u1/,查看最新版。原创作品,转载请保留出处。 作者主页:sysin.org 2023-06-01, VMware vSphere 8.0U1a 发布。 详见&am…...
Unity的IPreprocessBuild:深入解析与实用案例
Unity IPreprocessBuild Unity IPreprocessBuild是Unity引擎中的一个非常有用的功能,它可以让开发者在构建项目时自动执行一些操作。这个功能可以帮助开发者提高工作效率,减少手动操作的时间和错误率。在本文中我们将介绍Unity IPreprocessBuild的使用方…...
htmlCSS-----CSS选择器(下)
目录 前言: 2.高级选择器 (1)子代选择器 (2)伪类选择器 (3)后代选择器 (4)兄弟选择器 相邻兄弟选择器 通用兄弟选择器 (5)并集选择器 &am…...
RDK X3 Module发布,全新软硬件平台加速实现量产级产品落地
机器人开发是一段美妙的旅程。GEEKROS创始人杨状状是地平线社区的一名开发者,热衷于鼓捣各类机器人,2022年,状状第一时间就拿到了地平线旭日X3派(简称旭日X3派),基于TogetheROS™.Bot机器人操作系统&#x…...
【面试实战】Redis缓存设计
文章目录 Redis缓存出现的问题🙎♂️面试官:什么是缓存雪崩?🙎♂️面试官:怎样解决缓存雪崩?🙎♂️面试官:什么是缓存击穿?🙎♂️面试官:怎样解决缓存击穿?🙎♂️面试官:什么是缓存穿透?🙎♂️面试官:怎样解决缓存穿透?🙎♂️面试官:…...
如何解决js定时器不准确问题
为什么会出现定时器不准确呢? 这个其实就得提到js执行机制了,叫做事件循环Eventloop 循环机制中,异步事件 setInterval 到时后会把回调函数放入消息队列中Event Queue,主线程的宏任务执行完毕后依次执行消息队列的微任务ÿ…...
学习笔记——vue中使用el-dropdown组件报错
今天在工作中,发现使用el-select做的下拉框,下拉菜单展开后,鼠标点击下拉框之外的区域时,下拉菜单没有收起。然后,我打开控制台,发现了这个错误。 Uncaught TypeError: Cannot read properties of null (re…...
Java之旅(八)
Java 条件运算符 Java 条件运算符用于根据一个条件表达式的布尔值来决定程序执行的流程。条件运算符有三种类型:if、else 和 switch。 if 语句的一般格式如下: if (condition) {// 条件为 true 执行的代码块 } 其中,condition 是一个 bool…...
华为OD机试真题(Java),四则运算(100%通过+复盘思路)
一、题目描述 输入一个表达式(用字符串表示),求这个表达式的值。 保证字符串中的有效字符包括[‘0’-‘9’],‘+’,‘-’, ‘*’,‘/’ ,‘(’, ‘)’,‘[’, ‘]’,‘{’ ,‘}’。且表达式一定合法。 数据范围:表达式计算结果和过程中满足∣val∣≤1000 ,字符串长度满…...
HTML表单标签form分析
说明:在html的标签中,表单标签与后台联系密切,像用户登录、注册,都是用到页面的表单标签,用户将信息填入到表单中,提交到后端业务中校验处理,再将结果反馈给前端页面。 表单内的标签分别有&…...
Qt 项目文件Pri详解
在Qt项目中,pri文件(.pri)是一种类似于makefile的文件,用于定义Qt项目中的编译规则。通常可以用pri文件来配置Qt库、头文件、源文件、链接库等信息,这样可以把这些信息定义在一个文件中,避免在每个工程中都进行重复配置࿰…...
Keil 5 MDK 发律师函警告了,如何用STCubeIDE开发标准库的程序(STM32F103C8T6为例)
用STCubeIDE进行标准库开发 1、CubeIDE介绍 https://www.stmcu.com.cn/ecosystem/Cube/STM32CubeIDE 2、CubeIDE下载 点击上面的链接,登录即可下载 3、搭建Demo工程 新建一个工作空间 创建一个工程 选择芯片-STM32F103C8T6 填写工程信息 添加标准库到工程 标…...
【大模型RAG】拍照搜题技术架构速览:三层管道、两级检索、兜底大模型
摘要 拍照搜题系统采用“三层管道(多模态 OCR → 语义检索 → 答案渲染)、两级检索(倒排 BM25 向量 HNSW)并以大语言模型兜底”的整体框架: 多模态 OCR 层 将题目图片经过超分、去噪、倾斜校正后,分别用…...
深入剖析AI大模型:大模型时代的 Prompt 工程全解析
今天聊的内容,我认为是AI开发里面非常重要的内容。它在AI开发里无处不在,当你对 AI 助手说 "用李白的风格写一首关于人工智能的诗",或者让翻译模型 "将这段合同翻译成商务日语" 时,输入的这句话就是 Prompt。…...
【Linux】shell脚本忽略错误继续执行
在 shell 脚本中,可以使用 set -e 命令来设置脚本在遇到错误时退出执行。如果你希望脚本忽略错误并继续执行,可以在脚本开头添加 set e 命令来取消该设置。 举例1 #!/bin/bash# 取消 set -e 的设置 set e# 执行命令,并忽略错误 rm somefile…...
【WiFi帧结构】
文章目录 帧结构MAC头部管理帧 帧结构 Wi-Fi的帧分为三部分组成:MAC头部frame bodyFCS,其中MAC是固定格式的,frame body是可变长度。 MAC头部有frame control,duration,address1,address2,addre…...
【入坑系列】TiDB 强制索引在不同库下不生效问题
文章目录 背景SQL 优化情况线上SQL运行情况分析怀疑1:执行计划绑定问题?尝试:SHOW WARNINGS 查看警告探索 TiDB 的 USE_INDEX 写法Hint 不生效问题排查解决参考背景 项目中使用 TiDB 数据库,并对 SQL 进行优化了,添加了强制索引。 UAT 环境已经生效,但 PROD 环境强制索…...
【碎碎念】宝可梦 Mesh GO : 基于MESH网络的口袋妖怪 宝可梦GO游戏自组网系统
目录 游戏说明《宝可梦 Mesh GO》 —— 局域宝可梦探索Pokmon GO 类游戏核心理念应用场景Mesh 特性 宝可梦玩法融合设计游戏构想要素1. 地图探索(基于物理空间 广播范围)2. 野生宝可梦生成与广播3. 对战系统4. 道具与通信5. 延伸玩法 安全性设计 技术选…...
智能分布式爬虫的数据处理流水线优化:基于深度强化学习的数据质量控制
在数字化浪潮席卷全球的今天,数据已成为企业和研究机构的核心资产。智能分布式爬虫作为高效的数据采集工具,在大规模数据获取中发挥着关键作用。然而,传统的数据处理流水线在面对复杂多变的网络环境和海量异构数据时,常出现数据质…...
如何在网页里填写 PDF 表格?
有时候,你可能希望用户能在你的网站上填写 PDF 表单。然而,这件事并不简单,因为 PDF 并不是一种原生的网页格式。虽然浏览器可以显示 PDF 文件,但原生并不支持编辑或填写它们。更糟的是,如果你想收集表单数据ÿ…...
安宝特方案丨船舶智造的“AR+AI+作业标准化管理解决方案”(装配)
船舶制造装配管理现状:装配工作依赖人工经验,装配工人凭借长期实践积累的操作技巧完成零部件组装。企业通常制定了装配作业指导书,但在实际执行中,工人对指导书的理解和遵循程度参差不齐。 船舶装配过程中的挑战与需求 挑战 (1…...
【无标题】路径问题的革命性重构:基于二维拓扑收缩色动力学模型的零点隧穿理论
路径问题的革命性重构:基于二维拓扑收缩色动力学模型的零点隧穿理论 一、传统路径模型的根本缺陷 在经典正方形路径问题中(图1): mermaid graph LR A((A)) --- B((B)) B --- C((C)) C --- D((D)) D --- A A -.- C[无直接路径] B -…...
