PostgreSQL 语法-202005

PostgreSQL 语法

ORDBMS 的一些术语

dataBase
table
tablespace
column
row
冗余:存储两倍数据,冗余降低了性能,但提高了数据的安全性。
主键:主键是唯一的。
外键:外键用于关联两个表。
复合键:一般用于复合索引。
索引:使用索引可快速访问数据库表中的特定信息。

PostgreSQL 特征

函数:通过函数,可以在数据库服务器端执行指令程序。
索引:用户可以自定义索引方法,或使用内置的 B 树,哈希表与 GiST 索引。
create index PI_YGXX_JGDM on T_PUB_YGXX (N_JGDM, N_SCBZ) tablespace PHJRSTBT_DEFAULT
触发器:触发器是由SQL语句查询所触发的事件。
规则:规则(RULE)允许一个查询能被重写。
数据类型:包括文本、任意精度的数值数组、JSON 数据、枚举类型、XML 数据等。
NoSQL:JSON,JSONB,XML,HStore 原生支持,至 NoSQL 数据库的外部数据包装器。

--定义或者改变一个对象的注释。
comment on table T_BASE_SHSX is '基础表_商户属性,业务种类';

CREATE 语法

--定义视图
CREATE [ OR REPLACE ] VIEW name [ ( column_name [, ...] ) ] AS query
--定义触发器
CREATE TRIGGER name { BEFORE | AFTER } { event [ OR ... ] }
ON table [ FOR [ EACH ] { ROW | STATEMENT } ]
EXECUTE PROCEDURE func_name ( arguments )
--资料导入N_YWID 自动生成触发器 
CREATE OR REPLACE TRIGGER TR_BI_T_FKHG_JSJY
BEFORE INSERT
ON PSBCYGZJ.T_FKHG_JSJY
REFERENCING NEW AS New OLD AS Old
FOR EACH ROW
DECLARE
tmpVar NUMBER;
BEGIN
   tmpVar := 0;
   select SEQ_TKXH.NEXTVAL INTO :NEW.N_YWID FROM DUAL;
   EXCEPTION
     WHEN OTHERS THEN
       -- Consider logging the error and then re-raise
       RAISE;
END ;
--从查询结果定义新表
CREATE [ [ GLOBAL | LOCAL ] { TEMPORARY | TEMP } ] TABLE table_name
[ (column_name [, ...] ) ] [ [ WITH | WITHOUT ] OIDS ]
AS query
--用于定义序列
CREATE [ TEMPORARY | TEMP ] SEQUENCE name
[ INCREMENT [ BY ] increment ]
[ MINVALUE minvalue | NO MINVALUE ]
[ MAXVALUE maxvalue | NO MAXVALUE ]
[ START [ WITH ] start ] [ CACHE cache ] [ [ NO ] CYCLE ]
-- Create sequence 
create sequence SEQ_LOGID 
minvalue 0
maxvalue 9999999999
start with 619265
increment by 1
nocache
cycle;
--用于定义index
CREATE [ UNIQUE ] INDEX name ON table [ USING method ]
( { column | ( expression ) } [ opclass ] [, ...] )
[ TABLESPACE tablespace ]
[ WHERE predicate ]
--用于定义函数
CREATE [ OR REPLACE ] FUNCTION name ( [ [ arg_name ] arg_type [, ...] ] )
RETURNS ret_type{}
[WITH()]
--Get_H5MKMC
CREATE OR REPLACE FUNCTION Get_H5MKMC (In_MKDM IN VARCHAR2)
   RETURN VARCHAR2
IS
   v_Ret   T_PUB_MKXX_H5.c_mkmc%TYPE;
BEGIN
   SELECT c_mkmc 
     INTO   v_Ret
     FROM   T_PUB_MKXX_H5
    WHERE N_MKDM = In_MKDM;

   RETURN v_Ret;
EXCEPTION
   WHEN NO_DATA_FOUND
   THEN
      return '';
   WHEN OTHERS
   THEN
      -- Consider logging the error and then re-raise
      RAISE;
END Get_H5MKMC;
--用于定义数据库
CREATE DATABASE

ABORT 语法

--用于提交事务
COMMIT [ WORK | TRANSACTION ]
--用于开始一个事务块
BEGIN [ WORK | TRANSACTION ] [ transaction_mode [, ...] ]
--用于退出当前事务
ABORT [ WORK | TRANSACTION ]

ALTER 语法

--用于修改一个数据库
ALTER DATABASE name RESET parameter
--用于修改用户密码
ALTER USER name RESET parameter
--用于修改用户组
ALTER GROUP groupname ADD USER username [, ... ]
--用于修改模式
ALTER SCHEMA name RENAME TO new_name
--用于修改触发器
ALTER TRIGGER name ON table RENAME TO new_name
--用于修改表结构
ALTER TABLE [ ONLY ] name [ * ]
--用于修改索引定义
ALTER INDEX name OWNER TO new_owner
--用于修改序列
ALTER SEQUENCE name [ INCREMENT [ BY ] increment ]
--用于修改函数定义
ALTER FUNCTION name ( [ type [, ...] ] ) RENAME TO new_name
--用于修改类型
ALTER TYPE name OWNER TO new_owner
--用于修改表空间
ALTER TABLESPACE name RENAME TO new_name
--用于修改表结构
ALTER TABLE [ ONLY ] name [ * ]
--用于修改过程语言
ALTER LANGUAGE name RENAME TO new_name
--用于修改域
ALTER DOMAIN name { SET | DROP } NOT NULL
--用于修改一个聚集函数的定义
ALTER AGGREGATE _name_ ( _argtype_ [ , ... ] ) RENAME TO _new_name_
--用于修改一个排序规则定义
ALTER COLLATION _name_ RENAME TO _new_name_
--用于一个编码转换的定义
ALTER CONVERSION name RENAME TO new_name

SELECT 语法

SELECT * FROM dual;
SELECT SEQ_LOGID.NEXTVAL FROM dual;
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值