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

<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 CHAR20-------给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 ServerBEGIN TRANSACTION

COMMIT TRANSACTION
MariaDB 和 MySQLSTART TRANSACTION

OracleSET TRANSACTION
PostgreSQLBEGIN

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 ServerBEGIN TRANSACTION
DELETE OrderItems WHERE order_num=12345
DELETE Order WHERE order_num=12345
COMMIT TRANSACTION
OracleSET 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命令&#xff08;含例句&#xff09;精心整理版&#xff08;4&#xff09;》 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++死锁

死锁是指两个或两个以上的线程在执行过程中&#xff0c;由于竞争资源或者由于彼此通信而造成的一种阻塞的现象&#xff0c;若无外力作用&#xff0c;它们都将无法推进下去。此时称系统处于死锁状态或系统产生了死锁&#xff0c;这些永远在互相等待的状态称为死锁。 死锁通常发生…...

[自学记录02|百人计划]纹理压缩

一、什么是纹理压缩 纹理压缩是为了解决内存、带宽问题&#xff0c;专为在计算机图形渲染系统中存储纹理而使用的图像压缩技术。 1.图片格式和纹理格式的区别 (1)图片格式 图片格式是图片文件的存储格式&#xff0c;通常在磁盘、内存中储存和传输文件时使用&#xff1b;例如…...

C++泛型编程之模板

目录 一、什么是泛型编程 二、函数模板 2.1函数模板的概念 2.2函数模板格式 2.3函数模板的原理 2.5函数模板的实例化 2.6模板参数的匹配原则 三、类模板 3.1类模板的定义格式 3.2 类模板的实例化 四、非类型模板参数 五、模板的特化 5.1模板特化的概念&#xff1a;…...

极氪汽车 APP 系统云原生架构转型实践

作者&#xff1a;极氪汽车 前言 新能源汽车已经成为我国汽车市场再次崛起的关键支柱&#xff0c;随着新能源汽车市场的快速发展&#xff0c;不同类型的品牌造车厂商呈现出百花齐放的态势。极氪汽车是吉利控股集团旗下高端纯电汽车新品牌&#xff0c;2021 年 4 月极氪发布首款…...

一个UDP下载服务器的实现(模拟下载文件)

本期分享的主要是使用UDP实现文件下载功能&#xff0c;需要自己编写服务器和客户端&#xff0c;实现的功能主要有以下几个&#xff1a; &#xff08;1&#xff09;服务器可以为请求的用户下发文件数据&#xff08;前提是服务器得有这个数据文件&#xff09; &#xff08;2&…...

01.hadoop上课笔记之hadoop介绍

1.大数据介绍 可以对未来数据预测 google通过搜索预测流感,足球球员有一 定关联…caict可以得到数据hbase hive林子雨mooc数据要进行挖掘(推断更多信息) 2.大数据是非结构化数据多:声音,图片… 3.大数据影响因素 大多快低 tb pb eb zb 1.硬件 2.网络带宽 4.大数据的特征 数据量…...

小鹏汽车Q1财报:押注G6、大力降本,明年智驾BOM降半

‍作者 | 德新编辑 | 王博 小鹏汽车本周发了Q1财报&#xff0c;数据不好看&#xff0c;以致于在微博端也发了公开信。 那后续呢&#xff1f; 小鹏第二季度指引是&#xff0c;总交付数量约为2.1 - 2.2万辆&#xff0c;收入预计约为45 - 47亿元&#xff1b;四季度&#xff0c…...

VMware ESXi 8.0U1a 发布 - 领先的裸机 Hypervisor

VMware ESXi 8.0U1a 发布 - 领先的裸机 Hypervisor 请访问原文链接&#xff1a;https://sysin.org/blog/vmware-esxi-8-u1/&#xff0c;查看最新版。原创作品&#xff0c;转载请保留出处。 作者主页&#xff1a;sysin.org 2023-06-01, VMware vSphere 8.0U1a 发布。 详见&am…...

Unity的IPreprocessBuild:深入解析与实用案例

Unity IPreprocessBuild Unity IPreprocessBuild是Unity引擎中的一个非常有用的功能&#xff0c;它可以让开发者在构建项目时自动执行一些操作。这个功能可以帮助开发者提高工作效率&#xff0c;减少手动操作的时间和错误率。在本文中我们将介绍Unity IPreprocessBuild的使用方…...

htmlCSS-----CSS选择器(下)

目录 前言&#xff1a; 2.高级选择器 &#xff08;1&#xff09;子代选择器 &#xff08;2&#xff09;伪类选择器 &#xff08;3&#xff09;后代选择器 &#xff08;4&#xff09;兄弟选择器 相邻兄弟选择器 通用兄弟选择器 &#xff08;5&#xff09;并集选择器 &am…...

RDK X3 Module发布,全新软硬件平台加速实现量产级产品落地

机器人开发是一段美妙的旅程。GEEKROS创始人杨状状是地平线社区的一名开发者&#xff0c;热衷于鼓捣各类机器人&#xff0c;2022年&#xff0c;状状第一时间就拿到了地平线旭日X3派&#xff08;简称旭日X3派&#xff09;&#xff0c;基于TogetheROS™.Bot机器人操作系统&#x…...

【面试实战】Redis缓存设计

文章目录 Redis缓存出现的问题🙎‍♂️面试官:什么是缓存雪崩?🙎‍♂️面试官:怎样解决缓存雪崩?🙎‍♂️面试官:什么是缓存击穿?🙎‍♂️面试官:怎样解决缓存击穿?🙎‍♂️面试官:什么是缓存穿透?🙎‍♂️面试官:怎样解决缓存穿透?🙎‍♂️面试官:…...

如何解决js定时器不准确问题

为什么会出现定时器不准确呢&#xff1f; 这个其实就得提到js执行机制了&#xff0c;叫做事件循环Eventloop 循环机制中&#xff0c;异步事件 setInterval 到时后会把回调函数放入消息队列中Event Queue&#xff0c;主线程的宏任务执行完毕后依次执行消息队列的微任务&#xff…...

学习笔记——vue中使用el-dropdown组件报错

今天在工作中&#xff0c;发现使用el-select做的下拉框&#xff0c;下拉菜单展开后&#xff0c;鼠标点击下拉框之外的区域时&#xff0c;下拉菜单没有收起。然后&#xff0c;我打开控制台&#xff0c;发现了这个错误。 Uncaught TypeError: Cannot read properties of null (re…...

Java之旅(八)

Java 条件运算符 Java 条件运算符用于根据一个条件表达式的布尔值来决定程序执行的流程。条件运算符有三种类型&#xff1a;if、else 和 switch。 if 语句的一般格式如下&#xff1a; if (condition) {// 条件为 true 执行的代码块 } 其中&#xff0c;condition 是一个 bool…...

华为OD机试真题(Java),四则运算(100%通过+复盘思路)

一、题目描述 输入一个表达式(用字符串表示),求这个表达式的值。 保证字符串中的有效字符包括[‘0’-‘9’],‘+’,‘-’, ‘*’,‘/’ ,‘(’, ‘)’,‘[’, ‘]’,‘{’ ,‘}’。且表达式一定合法。 数据范围:表达式计算结果和过程中满足∣val∣≤1000 ,字符串长度满…...

HTML表单标签form分析

说明&#xff1a;在html的标签中&#xff0c;表单标签与后台联系密切&#xff0c;像用户登录、注册&#xff0c;都是用到页面的表单标签&#xff0c;用户将信息填入到表单中&#xff0c;提交到后端业务中校验处理&#xff0c;再将结果反馈给前端页面。 表单内的标签分别有&…...

Qt 项目文件Pri详解

在Qt项目中&#xff0c;pri文件(.pri)是一种类似于makefile的文件&#xff0c;用于定义Qt项目中的编译规则。通常可以用pri文件来配置Qt库、头文件、源文件、链接库等信息&#xff0c;这样可以把这些信息定义在一个文件中&#xff0c;避免在每个工程中都进行重复配置&#xff0…...

Keil 5 MDK 发律师函警告了,如何用STCubeIDE开发标准库的程序(STM32F103C8T6为例)

用STCubeIDE进行标准库开发 1、CubeIDE介绍 https://www.stmcu.com.cn/ecosystem/Cube/STM32CubeIDE 2、CubeIDE下载 点击上面的链接&#xff0c;登录即可下载 3、搭建Demo工程 新建一个工作空间 创建一个工程 选择芯片-STM32F103C8T6 填写工程信息 添加标准库到工程 标…...

铭豹扩展坞 USB转网口 突然无法识别解决方法

当 USB 转网口扩展坞在一台笔记本上无法识别,但在其他电脑上正常工作时,问题通常出在笔记本自身或其与扩展坞的兼容性上。以下是系统化的定位思路和排查步骤,帮助你快速找到故障原因: 背景: 一个M-pard(铭豹)扩展坞的网卡突然无法识别了,扩展出来的三个USB接口正常。…...

深度学习在微纳光子学中的应用

深度学习在微纳光子学中的主要应用方向 深度学习与微纳光子学的结合主要集中在以下几个方向&#xff1a; 逆向设计 通过神经网络快速预测微纳结构的光学响应&#xff0c;替代传统耗时的数值模拟方法。例如设计超表面、光子晶体等结构。 特征提取与优化 从复杂的光学数据中自…...

【机器视觉】单目测距——运动结构恢复

ps&#xff1a;图是随便找的&#xff0c;为了凑个封面 前言 在前面对光流法进行进一步改进&#xff0c;希望将2D光流推广至3D场景流时&#xff0c;发现2D转3D过程中存在尺度歧义问题&#xff0c;需要补全摄像头拍摄图像中缺失的深度信息&#xff0c;否则解空间不收敛&#xf…...

实现弹窗随键盘上移居中

实现弹窗随键盘上移的核心思路 在Android中&#xff0c;可以通过监听键盘的显示和隐藏事件&#xff0c;动态调整弹窗的位置。关键点在于获取键盘高度&#xff0c;并计算剩余屏幕空间以重新定位弹窗。 // 在Activity或Fragment中设置键盘监听 val rootView findViewById<V…...

Java面试专项一-准备篇

一、企业简历筛选规则 一般企业的简历筛选流程&#xff1a;首先由HR先筛选一部分简历后&#xff0c;在将简历给到对应的项目负责人后再进行下一步的操作。 HR如何筛选简历 例如&#xff1a;Boss直聘&#xff08;招聘方平台&#xff09; 直接按照条件进行筛选 例如&#xff1a…...

CMake控制VS2022项目文件分组

我们可以通过 CMake 控制源文件的组织结构,使它们在 VS 解决方案资源管理器中以“组”(Filter)的形式进行分类展示。 🎯 目标 通过 CMake 脚本将 .cpp、.h 等源文件分组显示在 Visual Studio 2022 的解决方案资源管理器中。 ✅ 支持的方法汇总(共4种) 方法描述是否推荐…...

GC1808高性能24位立体声音频ADC芯片解析

1. 芯片概述 GC1808是一款24位立体声音频模数转换器&#xff08;ADC&#xff09;&#xff0c;支持8kHz~96kHz采样率&#xff0c;集成Δ-Σ调制器、数字抗混叠滤波器和高通滤波器&#xff0c;适用于高保真音频采集场景。 2. 核心特性 高精度&#xff1a;24位分辨率&#xff0c…...

基于Java+MySQL实现(GUI)客户管理系统

客户资料管理系统的设计与实现 第一章 需求分析 1.1 需求总体介绍 本项目为了方便维护客户信息为了方便维护客户信息&#xff0c;对客户进行统一管理&#xff0c;可以把所有客户信息录入系统&#xff0c;进行维护和统计功能。可通过文件的方式保存相关录入数据&#xff0c;对…...

MFC 抛体运动模拟:常见问题解决与界面美化

在 MFC 中开发抛体运动模拟程序时,我们常遇到 轨迹残留、无效刷新、视觉单调、物理逻辑瑕疵 等问题。本文将针对这些痛点,详细解析原因并提供解决方案,同时兼顾界面美化,让模拟效果更专业、更高效。 问题一:历史轨迹与小球残影残留 现象 小球运动后,历史位置的 “残影”…...

scikit-learn机器学习

# 同时添加如下代码, 这样每次环境(kernel)启动的时候只要运行下方代码即可: # Also add the following code, # so that every time the environment (kernel) starts, # just run the following code: import sys sys.path.append(/home/aistudio/external-libraries)机…...