我的编程空间,编程开发者的网络收藏夹
学习永远不晚

PostgreSQL数据库事务插入删除及更新操作的方法

短信预约 -IT技能 免费直播动态提醒
省份

北京

  • 北京
  • 上海
  • 天津
  • 重庆
  • 河北
  • 山东
  • 辽宁
  • 黑龙江
  • 吉林
  • 甘肃
  • 青海
  • 河南
  • 江苏
  • 湖北
  • 湖南
  • 江西
  • 浙江
  • 广东
  • 云南
  • 福建
  • 海南
  • 山西
  • 四川
  • 陕西
  • 贵州
  • 安徽
  • 广西
  • 内蒙
  • 西藏
  • 新疆
  • 宁夏
  • 兵团
手机号立即预约

请填写图片验证码后获取短信验证码

看不清楚,换张图片

免费获取短信验证码

PostgreSQL数据库事务插入删除及更新操作的方法

这篇文章主要介绍了PostgreSQL数据库事务插入删除及更新操作的方法的相关知识,内容详细易懂,操作简单快捷,具有一定借鉴价值,相信大家阅读完这篇PostgreSQL数据库事务插入删除及更新操作的方法文章都会有所收获,下面我们一起来看看吧。

INSERT

使用INSERT语句可以向表中插入数据。

创建一个表:

CREATE TABLE ProductIns(product_id      CHAR(4)      NOT NULL, product_name    VARCHAR(100) NOT NULL, product_type    VARCHAR(32)  NOT NULL, sale_price      INTEGER      DEFAULT 0, purchase_price  INTEGER      , regist_date     DATE         , PRIMARY KEY (product_id));

向表中插入数据:

INSERT语句格式:

里面的(列1,列2,…)称为列清单;(值1,值2,…)称为值清单。列清单和值清单个数要保持一致。

INSERT INTO <表名> (列1,列2,...) VALUES (值1,值2,...);
INSERT INTO ProductIns (product_id, product_name, product_type, sale_price, purchase_price, regist_date) VALUES ('0001', 'T恤' ,'衣服', 1000, 500, '2222-09-20');

对表的所有列进行INSERT时,可省略列清单。从左到右将值清单里面数据赋给每一列。

INSERT INTO ProductIns VALUES ('0005', '铁锅', '厨房用具', 6800, 5000, '2222-01-15');

插入NULL,直接在值清单里面写NULL就行,前提是插入NULL的列不能设置NOT NULL约束。

INSERT INTO ProductIns VALUES ('0006', '勺子', '厨房用具', 500, NULL, '2222-09-20');

插入默认值:

前面创建ProductIns表设置sale_price默认值为0。在创建表的时候,设定了默认值,使用INSERT语句插入默认值的方法如下。

--显式方法设置默认值INSERT INTO ProductIns VALUES ('0007', '筷子', '厨房用具', DEFAULT, 790, '2222-04-28');

隐式方法设置默认值,在列清单和值清单里面,省略设置为默认值的列。

如果省略未设置为默认值的列,该列的值将被置为NULL。这一列如果是NOT NULL约束,将报错。

--隐式方法设置默认值INSERT INTO ProductIns (product_id, product_name, product_type, purchase_price, regist_date) VALUES ('0007', '筷子', '厨房用具', 790, '2222-04-28');

从其他表中复制数据:

创建一张和Product结构相同的表。

CREATE TABLE ProductCopy(product_id      CHAR(4)      NOT NULL, product_name    VARCHAR(100) NOT NULL, product_type    VARCHAR(32)  NOT NULL, sale_price      INTEGER      , purchase_price  INTEGER      , regist_date     DATE         , PRIMARY KEY (product_id));

可以像下面把Product表中数据插入到ProductCopy表里。INSERT语句里面的SELECT语句,可以使用WHERE子句、GROUP BY子句等等。

INSERT INTO ProductCopy (product_id, product_name, product_type, sale_price, purchase_price, regist_date)SELECT product_id, product_name, product_type, sale_price, purchase_price, regist_date  FROM Product;

使用包含GROUP BY子句的SELECT语句进行插入:

创建一个以商品种类汇总的表。

CREATE TABLE ProductType(product_type        VARCHAR(32)  NOT NULL, sum_sale_price      INTEGER      , sum_purchase_price  INTEGER      , PRIMARY KEY (product_type));

通过下面,得到一个根据商品种类分组的表,并且计算出每个种类的价格的和。

INSERT INTO ProductType (product_type, sum_sale_price, sum_purchase_price)SELECT product_type, SUM(sale_price), SUM(purchase_price)  FROM Product GROUP BY product_type;

PostgreSQL数据库事务插入删除及更新操作的方法

DELETE

DROP TABLE语句,将表删除。

DELETE语句,删除表里面的数据。

DELETE语句的对象是行,不是列,无法只删除部分列的数据。

删除全部数据行:

格式DELETE FROM <表名>;例子DELETE FROM Product;

删除部分数据行:

格式DELETE FROM <表名>WHERE <条件>;例子DELETE FROM ProductWHERE sale_price >= 2000;

UPDATE

UPDATE语句用于改变表中数据。

格式:

UPDATE <表名>SET <列名> = <表达式>;

改变regist_date列的所有数据。

UPDATE Product   SET regist_date = '2222-02-02';

修改后效果如下。

PostgreSQL数据库事务插入删除及更新操作的方法

更新部分数据行:

UPDATE <表名>SET <列名> = <表达式>WHERE <条件>;
UPDATE Product   SET sale_price = sale_price * 10 WHERE product_type = '厨房用具';

将列更新为NULL:

前提是这个列没有设置NOT NULL约束和主键约束。

UPDATE Product   SET regist_date = NULL WHERE product_id = '0008';

同时更新多个列:

-- 使用逗号,所有DBMS中均可使用UPDATE Product   SET sale_price = sale_price * 10,       purchase_price = purchase_price / 2 WHERE product_type = '厨房用具';
-- 列表形式,在某些DBMS中无法使用UPDATE Product   SET (sale_price, purchase_price) = (sale_price * 10, purchase_price / 2) WHERE product_type = '厨房用具';

事务

事务transaction,需要在同一处理单元中执行的一系列更新处理的集合。

有时候要对一个表进行多个处理。比如为了某件事,需要把a的价格增加,把b的价格减少,此时,多个处理是作为同一个处理单元执行的。这个时候就可以用事务来处理。

格式:

事务开始语句;DML语句1;DML语句2;...事务结束语句;

例子:

其中,用户需要明确指出事务的结束。结束事务的指令有COMMIT、ROLLBACK。

COMMIT,提交事务包含的更新处理。一旦提交,无法恢复事务开始前的状态。

ROLLBACK,取消事务包含的更新处理,相当于放弃保存,恢复事务开始前的状态。

事务在数据库连接建立时,已经悄悄开始。

不使用开始语句情况下,SQL Server、PostgreSQL、MySQL里面默认使用自动提交模式,每条SQL语句就是一个事务。

Oracle里面,是直到用户执行COMMIT或者ROLLBACK,算一个事务。

--PostgreSQLBEGIN TRANSACTION;    UPDATE Product       SET sale_price = sale_price + 1000     WHERE product_name = 'T恤';    UPDATE Product       SET sale_price = sale_price - 1000     WHERE product_name = '裤子';COMMIT;

DBMS的事务遵循ACID特性。

原子性Atomicity,事务结束时,其中的更新处理要么都执行(COMMIT),要么都不执行(ROLLBACK)。

一致性Consistency,事务中的处理,要满足数据库设置的约束,如主键约束、NOT NULL约束。

隔离性Isolation,不同事务之间互不干扰。一个事务向表中添加数据,没提交前,别的事务看不到新添加的数据。

持久性Durability,事务结束后,该时间点的数据状态会被保存。如果由于系统故障数据丢失,也能用一些方法恢复。

关于“PostgreSQL数据库事务插入删除及更新操作的方法”这篇文章的内容就介绍到这里,感谢各位的阅读!相信大家对“PostgreSQL数据库事务插入删除及更新操作的方法”知识都有一定的了解,大家如果还想学习更多知识,欢迎关注编程网行业资讯频道。

免责声明:

① 本站未注明“稿件来源”的信息均来自网络整理。其文字、图片和音视频稿件的所属权归原作者所有。本站收集整理出于非商业性的教育和科研之目的,并不意味着本站赞同其观点或证实其内容的真实性。仅作为临时的测试数据,供内部测试之用。本站并未授权任何人以任何方式主动获取本站任何信息。

② 本站未注明“稿件来源”的临时测试数据将在测试完成后最终做删除处理。有问题或投稿请发送至: 邮箱/279061341@qq.com QQ/279061341

PostgreSQL数据库事务插入删除及更新操作的方法

下载Word文档到电脑,方便收藏和打印~

下载Word文档

猜你喜欢

PostgreSQL数据库事务插入删除及更新操作的方法

这篇文章主要介绍了PostgreSQL数据库事务插入删除及更新操作的方法的相关知识,内容详细易懂,操作简单快捷,具有一定借鉴价值,相信大家阅读完这篇PostgreSQL数据库事务插入删除及更新操作的方法文章都会有所收获,下面我们一起来看看吧
2023-06-29

MySQL数据库操作DML 插入数据,删除数据,更新数据

目录DML介绍数据插入数据修改数据删除DML介绍DML是指数据操作语言,英文全称是Data Manipulation Language,用来对数据库中表的数据记录进行更新。关键字:插入insert删除delete更新update数据
2022-07-11

数据操作必备技能:PostgreSQL中插入、更新和删除数据的实战指南

PostgreSQL是一个功能强大且广泛使用的关系型数据库管理系统。下面我将为你详细讲解这些操作,并提供一些示例代码和最佳实践。

阿里云数据库操作记录的删除方法

阿里云数据库操作记录是用户在使用阿里云数据库服务时,对数据库进行操作的详细记录。这些记录对于用户了解数据库的使用情况,排查问题,提高数据库的使用效率非常有帮助。但是,有时候用户可能需要删除这些操作记录,以保护数据安全。本文将详细介绍阿里云数据库操作记录的删除方法。在阿里云数据库中,操作记录的删除需要通过阿里云数据
阿里云数据库操作记录的删除方法
2023-12-18

阿里云数据库更新的操作方法详解

简介:阿里云数据库是阿里云提供的一种云端数据库服务,它具有高可用性、高性能、高安全性等特点,被广泛应用于各种互联网应用中。在使用阿里云数据库的过程中,有时候需要对数据库进行更新操作,本文将详细介绍如何进行阿里云数据库的更新操作。在进行阿里云数据库更新之前,我们需要先了解一些基本概念。首先,数据库是指存储数据的仓库,它可
阿里云数据库更新的操作方法详解
2023-12-26

Android操作SQLite数据库(增、删、改、查、分页等)及ListView显示数据的方法详解

本文实例讲述了Android操作SQLite数据库(增、删、改、查、分页等)及ListView显示数据的方法。分享给大家供大家参考,具体如下: 由于刚接触android开发,故此想把学到的基础知识记录一下,以备查询,故此写的比较啰嗦: 步骤
2022-06-06

编程热搜

  • Python 学习之路 - Python
    一、安装Python34Windows在Python官网(https://www.python.org/downloads/)下载安装包并安装。Python的默认安装路径是:C:\Python34配置环境变量:【右键计算机】--》【属性】-
    Python 学习之路 - Python
  • chatgpt的中文全称是什么
    chatgpt的中文全称是生成型预训练变换模型。ChatGPT是什么ChatGPT是美国人工智能研究实验室OpenAI开发的一种全新聊天机器人模型,它能够通过学习和理解人类的语言来进行对话,还能根据聊天的上下文进行互动,并协助人类完成一系列
    chatgpt的中文全称是什么
  • C/C++中extern函数使用详解
  • C/C++可变参数的使用
    可变参数的使用方法远远不止以下几种,不过在C,C++中使用可变参数时要小心,在使用printf()等函数时传入的参数个数一定不能比前面的格式化字符串中的’%’符号个数少,否则会产生访问越界,运气不好的话还会导致程序崩溃
    C/C++可变参数的使用
  • css样式文件该放在哪里
  • php中数组下标必须是连续的吗
  • Python 3 教程
    Python 3 教程 Python 的 3.0 版本,常被称为 Python 3000,或简称 Py3k。相对于 Python 的早期版本,这是一个较大的升级。为了不带入过多的累赘,Python 3.0 在设计的时候没有考虑向下兼容。 Python
    Python 3 教程
  • Python pip包管理
    一、前言    在Python中, 安装第三方模块是通过 setuptools 这个工具完成的。 Python有两个封装了 setuptools的包管理工具: easy_install  和  pip , 目前官方推荐使用 pip。    
    Python pip包管理
  • ubuntu如何重新编译内核
  • 改善Java代码之慎用java动态编译

目录