1 Star 0 Fork 0

王浩天 / MyNote

加入 Gitee
与超过 1200万 开发者一起发现、参与优秀开源项目,私有仓库也完全免费 :)
免费加入
该仓库未声明开源许可证文件(LICENSE),使用请关注具体项目描述及其代码上游依赖。
克隆/下载
Postgre数据库.md 6.85 KB
一键复制 编辑 原始数据 按行查看 历史
王浩天 提交于 2021-10-14 00:00 . postgre

PostgreSQL

1、OLAP和OLTP的区别

​ OLAP(On-Line Analytical Processing)联机分析处理,也称为面向交易的处理过程,其基本特征是前台接收的用户数据可以立即传送到计算中心进行处理,并在很短的时间内给出处理结果,是对用户操作快速响应的方式之一。应用在数据仓库,使用对象是决策者。OLAP系统强调的是数据分析,响应速度要求没那么高。

​ OLTP(On-Line Transaction Processing)联机事务处理,它使分析人员能够迅速、一致、交互地从各个方面观察信息,以达到深入理解数据的目的。它具有FASMI(Fast Analysis of Shared Multidimensional Information),即共享多维信息的快速分析的特征。主要应用是传统关系型数据库。OLTP系统强调的是内存效率,实时性比较高。

OLTP OLAP
用户 操作人员,底层管理人员 决策人员,高级管理人员
功能 日常操作处理 分析决策
DB设计 面向应用 面向主题
数据 当前的,最新的细节,二维的分立的 历史的聚集的,多维的集成的,统一的
存取 读/写数十条记录 读上百万条记录
工作单位 简单的事物 复杂的查询
用户数 上千个 上百万个
DB大小 100MB-GB 100GB-TB
时间要求 具有实时性 对时间的要求不严格
主要应用 数据库 数据仓库

2、集合运算

(1)UNION

​ union操作符用于合并两个或多个select语句的结果集。

​ 请注意,union内部的每个select语句必须拥有相同数量的列。列也必须拥有相似的数据模型。同时,每个select语句中的列必须相同。

语法:

select column1 [, column2]
from table1 [, table2]
[where condition]

union

select column1 [, column2]
from table1 [, table2]
[where condition]

Eg:

select product_id, product_name
from Product
union
select product_id, product_name
from Product2;

image-20211013151021208

image-20211013151217958

​ union等集合运算符通常会去除重复的记录。

(2)UNION ALL

​ union all操作符可以连接两个有重复行的select 语句,默认地,union操作符选取不同的值。如果允许重复的值,使用union all

select product_id, product_name
from Product
union all
select product_id, product_name
from Product2;

image-20211013172018396

(3)INTERSECT

​ 用于获取结果集A和结果集B共有的记录,即取交集。

(4)EXCEPT

​ 用于获取两个结果集的差集。

3、函数、谓词、CASE表达式

(1)函数

算数函数

​ “+”: 加 “-” :减 “*” : 乘 “/”:除法

​ ABS():绝对值

​ MOD():取余

​ ROUND():四舍五入

字符串函数

​ “||” :拼接两个字符串

​ LENGTH():计算字符串长度

​ LOWER():小写转换,只针对英文使用

​ UPPER():大写转换

​ REPLACE():字符串替换

​ SUBSTRING():字符串截取

日期函数

​ CURRENT_DATE:返回sql执行时的日期,没有参数无需使用括号(2021-10-13)

​ CURRENT_TIME:返回sql执行时的时间,没有参数无需使用括号(17:26:50)

​ CURRENT_TIMESTAMP:返回当前日期和时间(2021-10-13 18:31:50)

​ EXTRACT(日期元素 FROM 日期):截取日期元素

转换函数

​ CAST函数——类型转换

CAST(转换的值 AS 想要转换的数据类型)

​ COALESCE函数——将NULL转换为其他值

COALESCE(数据1,数据2,数据3...)

(2)谓词

  • LIKE谓词——字符串的部分一致查询

    常用的两种通配符:

    % 用于匹配字符串序列,可以匹配任意组合

    _ 用于匹配任何单一字符

  • BETWEEN谓词——范围查询

  • IS NULL、IS NOT NULL——判断是否为NULL

  • IN 谓词——OR的简单用法

  • EXIST谓词

(3)CASE表达式

​ case表达式也是函数的一种,case表达式是在区分情况时使用的,这种情况的区分在编程中通常称为(条件)分支。

语法:

CASE WHEN <求值表达式> THEN <表达式>
     WHEN <求值表达式> THEN <表达式>
     WHEN <求值表达式> THEN <表达式>
     .
     .
     .
     ELSE <表达式>
END

Eg:

SELECT product_name,
	CASE WHEN product_type = '衣服'
		THEN 'A :' | | product_type
		WHEN product_type = '办公用品'
		THEN 'B :' | | product_type
		WHEN product_type = '厨房用具'
		THEN 'C :' | | product_type
		ELSE NULL
	END AS abc_product_type
FROM Product;

image-20211013213542240

注意:

  • 虽然CASE表达式中的ELSE子句可以省略,但是不建议省略。

  • CASE表达式中的END不能省略。

4、数据库的事务

**定义:**事务就是一个对数据库操作的序列,是一个不可分割的工作单位,要不这个序列里面的操作全部执行,要不全部不执行。

特性:

  • 原子性

    事务的原子性是指一个事务是一个不可分割的工作单位,要不全部执行,要不全部不执行。

  • 持久性

    持久性即当一个事提交后,对数据库的改变是永久性的,不会被回滚。

  • 一致性

    一致性是指在事务开始之前和事务结束以后,数据库的完整性约束没有被破坏。这是说数据库事务不能破坏关系数据的完整性以及业务逻辑上的一致性。

  • 隔离性

    事务隔离性是指多个事务并发执行时,相互之间无影响。主要是在多用户,多并发的情况下,多个事务对同一个数据进行访问时,只能看到这个数据在上一个事务修改前的状态或者修改后的状态,不会看到中间状态的数据。

语法:

BEGIN TRANSACTION
	DML语句1
	DML语句2
	.
	.
	.
COMMIT/ROLLBACK

DDL:数据定义语言,用来维护数据库对象

DML:指对数据库中表记录的操作,用于增删改表中数据

COMMIT—— 一旦提交,就无法恢复到事务开始前的状态了

ROLLBACK—— 一旦回滚,数据库就会恢复到事务开始之前的状态

1
https://gitee.com/wanghaotian123/my-no.git
git@gitee.com:wanghaotian123/my-no.git
wanghaotian123
my-no
MyNote
master

搜索帮助

53164aa7 5694891 3bd8fe86 5694891