PostgreSQL:Schema 管理
优点:允许多个用户在使用同一个数据库时彼此互不干扰。把数据库对象放在不同的模式下,然后组织成逻辑组,让它们更便于管理第三方的应用可以放在不同的模式中,这样就不会和其他对象的名字冲突了。创建 SCHEMA我们可以使用 CREATE SCHEMA 语句来创建模式,语法格式如下:CREATE SCHEMA schemaname [ AUTHORIZATION&nb
PostgreSQL:高级 SQL
RETURNINGpg 中支持 returning 子句,可以实现相应的功能。目前 PostgreSQL 支持 insert、delete、update 的 returning。insert returning 返回的是新插入的值。delete returning 返回的是被删除的值。update returning 返回的是更新后的值,不能返回更新前的值。示例-- 创建示例表 CRE
PostgreSQL:窗口函数
聚合函数将结果集进行计算并且通常返回一行。窗口函数也是基于结果集的运算。与聚合函数不同的是,窗口函数并不会将结果集进行分组合并输出一行;而是将计算的结果合并到基于结果集运算的列上。语法function_name ([expression [, expression ...]]) [FILTER (WHERE filter_cla
PostgreSQL:WITH
在 PostgreSQL 里,提供了一种方法写一个大的查询中使用的辅助报表与查询。它有助于打破复杂和大型查询简单易读的形式,通常被称为 CTE(Common Table Expressions:通用表表达式),可以被看作是定义临时表的存在只是一个查询。WITH 查询由 CTE 查询时特别有用的子查询执行多次。它是代替临时表中同样有帮助。它计算聚合一次,让我们来引用它由它的名字(可能是多次)查询。W
PostgreSQL:其它类型
布尔类型PostgreSQL 提供了标准的 SQL 类型布尔值。布尔类型可以有几种状态:true、false 和第三状态 null,这是 SQL 空值表示。名称存储长度描述boolean1 byte状态为 true 或 false枚举类型枚举(枚举)类型的数据类型,包括静态,有序设置的值。在许多编程语言支持枚举类型,它们是相等。CREATE TYPE week AS&
PostgreSQL:数组——类型、运算符和函数
PostgreSQL 的机会定义为可变长度的多维数组的列一个表。任何内置或用户定义的基本类型数组,枚举类型,或者可以创建复合型。操作声明数组类型可以声明为:CREATE TABLE monthly_savings ( name text, saving_per
PostgreSQL:网络地址——类型、运算符和函数
类型PostgreSQL 提供的数据类型来存储的 IPv4、IPv6 的地址和MAC地址。这是更好地使用这些类型,而不是纯文本类型存储网络地址,因为这些类型提供输入错误检查和特殊的操作和函数。名称存储长度描述cidr7 或 19 bytesIPv4 和 IPv6 网络inet7 或 19 bytesIPv4 和 IPv6 hosts 和网络macaddr6
PostgreSQL:时间——类型、运算符和函数
时间类型PostgreSQL 支持全套的 SQL 日期和时间类型,列于下表。根据公历日期计算。在这里,所有的类型有日期类型以外,其分辨率为 day1微秒/14位的解析度。名称存储长度描述低值高值timestamp [(p)] [without time zone ]8 bytes包括日期和时间,不带时区4713 BC294276 ADtimestamp [(p) ] with time zone8
PostgreSQL:数字——类型、运算符和函数
数字类型数值类型由两个字节,4 字节和 8 字节的整数,4 字节和 8 字节的浮点数和可选精度的小数。下表列出了可用的类型。名称存储长度描述范围smallint2 bytes小范围整数类型-32768 to +32767integer4 bytes整数类型-2147483648 to +2147483647bigint8 bytes大范围数据类型-9223372036854775808 to 92
PostgreSQL:字符——类型及函数
字符类型下表列出了可在 PostgreSQL 通用字符类型。名称描述character varying(n), varchar(n)变长,字符最大数有限制character(n), char(n)定长,字符数没有达到最大值则使用空白填充text变长,无长度限制字符函数函数返回类型描述例子结果string || stringtext字串连接'Post' || 'greSQL&
PostgreSQL:数据库的选择
数据库的命令窗口PostgreSQL 命令窗口中,我们可以命令提示符后面输入 SQL 语句:postgres=#使用 **\l** 用于查看已经存在的数据库:postgres=# \l  
PostgreSQL:数据库的创建与删除
创建数据库CREATE DATABASE语法PostgreSQL中可以使用\h+command的方式来获取对应的提示,例子如下:postgres@postgres=>\h create database Command: CREATE DATABASE Description: create
MySQL:存储引擎简介
此处借用一下整理的对比图表InnoDB 存储引擎功能简介支持事务行锁设计支持外键非锁定读多版本并发控制(MVCC)next-key locking插入缓冲(insert buffer)二次写(double write)自适应哈希索引(adaptive hash index)预读(read ahead)存储构成idb 文件frm 文件适用场景:在线事务处理(OLTP)缺点:不适用于分析类语
MySQL:用户
用户管理创建用户create user '<用户名>'@'localhost' identified by '<密码>'删除用户(命令)本地:localhost;drop user <用户名>@'<主机域>';删除用户
MySQL 连接相关参数
max_connections指定 MySQL 服务端最大并发连接数,值的范围从 1~10 万,默认值为 151。它决定了同时最多能有多少个会话连接到 MySQL 服务;设置该参数时,根据数据库服务器的配置和性能,一般将参数值设置在 500~2000。max_connect_errors指定允许连接不成功的最大尝试次数,指的范围从 1\~ 2^64 之间,在 5.6.6 版本默认值是
PostgreSQL:COPY
COPY 在 PostgreSQL 表和标准文件系统文件之间移动数据。COPY TO 将表的内容复制到文件中,而 COPY FROM 将数据从文件复制到表中(将数据附加到表中已经存在的任何内容中)。`COPY TO`也可以复制`SELECT`查询的结果。如果指定了列表列,则 COPY TO 仅将指定列中的数据复制到文件中。对于 COPY FROM,按顺序将文件中的每个字段插入到指定的列中。`COP
PostgreSQL:逻辑结构
表空间数据库在逻辑上分成多个存储单元,称作表空间。表空间用作把逻辑上相关的结构放在一起。数据库逻辑上是由一个或多个表空间组成。逻辑关系存在表空间;表空间存在对应的数据文件中;新创建的数据库对应的数据文件的名称:Catalog表空间:存放系统表信息 – databasename.dbfSystem表空间:存放用户数据 – Udatabasename.dbfTemp表空间 – Tdatabasenam
PostgreSQL:物理结构
在执行 initdb 的时候会初始化一个目录,通常我们都会在系统配置相关的环境变量 $PGDATA 来表示,初始化完成后,会在这个目录生成相关的子目录以及一些文件。在 postgresql 中,tablespace 的概念并不同于其他关系型数据库,这里一个 tablespace 对应的都是一个目录。如下图就是 PG 的物理结构。文件和目录相关作用描述filesdescriptionPG_VERSI
PostgreSQL:内存结构
在 Postgresql 中,内存大概被分为两块Local memory area:为每一个 backend process 分配的内存Shared memory area:PostgreSQL server 所有的 backgroud process 使用的内存Local memory area 每一个backend process 都会分配一块local memory area, 每
PostgreSQL:进程结构
Postgresql 是一个C/S架构的关系型数据库,由多个后台进程管理数据库,下面分别介绍一些这些进程postgres server process 一个服务器端进程,是所有进程的父进程。该进程管理数据库文件,接受客户端与数据库的连接,且代表客户端对数据库进行操作。该进程的程序名叫做 postgres。backend process 每一个客户端的连接都有一个后端进程存在backgro