zoukankan      html  css  js  c++  java
  • PostgreSQL(一)数据类型

    特征

    • 函数:通过函数,可以在数据库服务器端执行指令程序。

    • 索引:用户可以自定义索引方法,或使用内置的 B 树,哈希表与 GiST 索引。

    • 触发器:触发器是由SQL语句查询所触发的事件。如:一个INSERT语句可能触发一个检查数据完整性的触发器。触发器通常由INSERT或UPDATE语句触发。 多版本并发控制:PostgreSQL使用多版本并发控制(MVCC,Multiversion concurrency control)系统进行并发控制,该系统向每个用户提供了一个数据库的"快照",用户在事务内所作的每个修改,对于其他的用户都不可见,直到该事务成功提交。

    • 规则:规则(RULE)允许一个查询能被重写,通常用来实现对视图(VIEW)的操作,如插入(INSERT)、更新(UPDATE)、删除(DELETE)。

    • 数据类型:包括文本、任意精度的数值数组、JSON 数据、枚举类型、XML 数据

      等。

    • 全文检索:通过 Tsearch2 或 OpenFTS,8.3版本中内嵌 Tsearch2。

    • NoSQL:JSON,JSONB,XML,HStore 原生支持,至 NoSQL 数据库的外部数据包装器。

    • 数据仓库:能平滑迁移至同属 PostgreSQL 生态的 GreenPlum,DeepGreen,HAWK 等,使用 FDW 进行 ETL。

    命令

    • BEGIN 开始一个事务,COMMIT / END 提交当前事务。

    • ROLLBACK 回滚事务

    • ABORT 丢弃当前事务 ABORT [ WORK | TRANSACTION ]

    • ALTER 修改

      • ALTER COLLATION 修改一个排序规则定义 。

      • ALTER CONVERSION 修改一个编码转换的定义。

      • ALTER DATABASE 修改一个数据库。

      • ALTER AGGREGATE 修改一个聚集函数的定义 。

      • ALTER DEFAULT PRIVILEGES 定义默认的访问权限。

      • ALTER FUNCTION 修改一个函数的定义。

      • ALTER INDEX 修改一个索引的定义。

      • ALTER SCHEMA 修改一个模式的定义。

      • ALTER TABLE 修改表的定义。

      • ALTER TYPE 修改类型的定义

      • ALTER SEQUENCE 修改一个序列发生器

    • CREATE 创建

      • CREATE AGGREGATE 创建一个新的聚集函数。

      • CREATE DATABASE 创建新数据库。

      • CREATE FUNCTION 创建一个新函数。

      • CREATE INDEX 创建一个新索引。

      • CREATE SCHEMA 创建一个新模式。

      • CREATE SEQUENCE 创建一个新序列发生器。

      • CREATE TABLE 创建一个新表。

      • CREATE TABLE AS 从一条查询的结果中创建一个新表。

      • CREATE TABLESPACE 创建一个新的表空间。

      • CREATE TYPE 创建一个类型

      • CREATE VIEW 创建一个视图。

    • DELETE 删除表中的行数据

    • TRUNCATE 整表删除,保留表结构

    • DROP 删除

      • DROP AGGREGATE 删除一个用户定义的聚集函数。

      • DROP DATABASE 删除一个数据库。

      • DROP FUNCTION 删除一个函数。

      • DROP INDEX 删除一个索引。

      • DROP SCHEMA 删除一个模式。

      • DROP SEQUENCE 删除一个序列。

      • DROP TABLE 删除一个表数据和表结构。

      • DROP TYPE 删除一个类型

    • EXPLAIN 显示一个语句的执行规划。

    • INSERT INTO 向表中插入数据

    • SELECT 查询表数据

    • UPDATE 更新表数据

    数据类型

    数值

    • 整数:smallint 2字节, integer 4字节, bigint 8字节

    • 浮点数

      • 精确:decimal ,numeric

      • 不精确:real 4字节, double precision 8字节

    • 自增整数:smallserial 2字节, serial 4字节, bigserial 8字节(等于MySQL的AUTO_INCREMENT)

    货币类型

    money:8字节,存储带有固定小数精度的货币金额,numeric、int 和 bigint 类型的值可以转换为 money

    字符

    • char

    • varchar

    • text,无长度限制

    时间日期

    • timestamp

    • date

    • time

    • interval ,时间间隔

    布尔类型

    boolean,有三个值:true , false , NULL(未知)

    枚举

    枚举类型是一个包含静态和值的有序集合的数据类型,枚举类型需要使用 CREATE TYPE 命令创建

    CREATE TYPE week AS ENUM ('Mon', 'Tue', 'Wed', 'Thu', 'Fri', 'Sat', 'Sun');

    几何类型

    几何数据类型表示二维的平面物体,最基本的类型:点。它是其它类型的基础。

    • point,点 16字节,(x,y)

    • line,直线 32字节,((x1,y1),(x2,y2))

    • lseg,线段 32字节, ((x1,y1),(x2,y2))

    • box,矩形 32字节, ((x1,y1),(x2,y2))

    • path,闭合路径(与多边形类似) 16+16n 字节,((x1,y1),...)

    • path,开放路径 16+16n 字节, [(x1,y1),...]

    • polygon,多边形(与闭合路径类似) 40+16n 字节, ((x1,y1),...)

    • circle,圆 24字节,<(x,y),r> (圆心和半径)

    网络地址

    存储 IPv4 、IPv6 、MAC 地址的数据类型。

    用这些数据类型存储网络地址比用纯文本类型好, 因为这些类型提供输入错误检查和特殊的操作和功能

    • cidr,IPv4 或 IPv6网络

    • inet,IPv4 或 IPv6主机和网络

    • macaddr,MAC地址

    XML类型

    xml 数据类型可以用于存储XML数据。 将 XML 数据存到 text 类型中的优势在于它能够为结构良好性来检查输入值, 并且还支持函数对其进行类型安全性检查,使用这个数据类型,编译时必须使用 configure --with-libxml

    创建XML值

    使用函数 xmlparse: 来从字符数据产生 xml 类型的值:

    XMLPARSE (DOCUMENT '<?xml version="1.0"?><book><title>Manual</title><chapter>...</chapter></book>')
    XMLPARSE (CONTENT 'abc<foo>bar</foo><bar>foo</bar>')

    JSON类型

    json 数据类型可以用来存储 JSON(JavaScript Object Notation)数据, 这样的数据也可以存储为 text,但是 json 数据类型更有利于检查每个存储的数值是可用的 JSON 值

    数组类型

    数组类型可以是任何基本类型或用户定义类型,枚举类型或复合类型

    创建或修改表时,integer[],text[][] ,一维数组和二维数组,也可以使用 ARRAY 关键字:

    integer ARRAY[4]

    复合类型

    复合类型表示一行或者一条记录的结构; 它实际上只是一个字段名和它们的数据类型的列表。PostgreSQL 允许像简单数据类型那样使用复合类型。

     

  • 相关阅读:
    转:jQuery选择器大全(48个代码片段+21幅图演示)
    转:Web 开发中很实用的10个效果【附源码下载】
    转:在网站开发中很有用的8个 jQuery 效果【附源码】
    转:35个让人惊讶的 CSS3 动画效果演示
    转:总结const、readonly、static三者的区别
    转:C# 深入理解堆栈、堆在内存中的实现
    推荐:Asp.Net MVC 多语言(html+js共用一套资源文件)
    转:HttpModule与HttpHandler详解
    转: ASP.NET MVC 多语言配置
    spring集合类型注入
  • 原文地址:https://www.cnblogs.com/yjh1995/p/13893238.html
Copyright © 2011-2022 走看看