Pgsql学习笔记.docVIP

  1. 1、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。。
  2. 2、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载
  3. 3、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
  4. 4、该文档为VIP文档,如果想要下载,成为VIP会员后,下载免费。
  5. 5、成为VIP后,下载本文档将扣除1次下载权益。下载后,不支持退款、换文档。如有疑问请联系我们
  6. 6、成为VIP后,您将拥有八大权益,权益包括:VIP文档下载权益、阅读免打扰、文档格式转换、高级专利检索、专属身份标志、高级客服、多端互通、版权登记。
  7. 7、VIP文档为合作方或网友上传,每下载1次, 网站将根据用户上传文档的质量评分、类型等,对文档贡献者给予高额补贴、流量扶持。如果你也想贡献VIP文档。上传文档
查看更多
Pgsql学习笔记

Pgsql学习笔记 RAISE NOTICE %, a;--输出 PGSQL自动递增序列的做法 首先,在声明该列时用SERIAL类型,然后用setval(‘序列发生器’‘序列发生器’‘序列发生器’)就可以了。 数组构造器,用关键字ARRAY。行构造器,用关键字row()主要用途可以用在判断某字段是否为空。 类型转换的两种方式:CAST ( expression AS type )或expression::type,其expression为需要转换的表达式、type为要转为的类型。 可以用以下语句来重命名一个表或者字段 重命名一字段:ALTER TABLE 表名 RENAME 字段名 TO 新的字段名 重命名表名:ALTER TABLE 表名 RENAME TO 新的表名 类型 decimal 和 numeric 是等效的WHERE 和 HAVING 的基本区别如下: WHERE 在分组和聚集计算之前选取输入行(因此,它控制哪些行进入聚集计算), 而 HAVING 在分组和聚集之后选取分组的行。 因此,WHERE 子句不能包含聚集函数; 因为试图用聚集函数判断那些行输入给聚集运算是没有意义的。 相反,HAVING 子句总是包含聚集函数。 (严格说来,你可以写不使用聚集的 HAVING 子句, 但这样做很少有用。同样的条件可以更有效地用于 WHERE 阶段。) SELECT column FROM table ORDER BY RANDOM() LIMIT 1 PGSQL中几种字符串类型的比较: 类型 内部名称 说明 VARCHAR(n) varchar 指定了最大长度,变长字符串,不足定义长度的部分不补齐 CHAR(n) bpchar 定长字符串,实际数据不足定义长度时,以空格补齐 TEXT text 没有特别的上限限制(仅受行的最大长度限制) BYTEA bytea 变长字节序列(使用NULL也是允许的) char char 一个字符 VARCHAR(n)这种方式来申明一个字符串 10.创建序列号 CREATE TABLE person ( id SERIAL, --实际上PGSQL是通过SERIAL这种数据类型来实现序列号功能的 name TEXT ); 11、在触发器中有两种对象:NEW和OLD(对于 INSERT 和 UPDATE 触发器而言,是 NEW 行, 对于 DELETE 触发器而言,是 OLD 行) 12、触发器实例 首先建立一个posts表 CREATE TABLE posts ( ?? id serial NOT NULL, ?? title character varying(50), ?? body text, ?? created timestamp with time zone DEFAULT now(), ?? modified timestamp with time zone DEFAULT now() ) WITHOUT OIDS; ALTER TABLE posts OWNER TO postgres; 建立触发器函数 -- Function: posts_insert() -- DROP FUNCTION posts_insert(); CREATE OR REPLACE FUNCTION posts_insert() ?? RETURNS trigger AS $BODY$ begin if(NEW.title aaaa) then ?? NEW.body=ce shi chu fa; end if; return NEW; end $BODY$ ?? LANGUAGE plpgsql VOLATILE; ALTER FUNCTION posts_insert() OWNER TO postgres; 建立触发器 CREATE TRIGGER p_b_insert ?? BEFORE INSERT ?? ON posts ?? FOR EACH ROW ?? EXECUTE PROCEDURE posts_insert();SAVEPOINT,当在事务中设置了保存点,一旦发生错误我们不用回滚到事务的开始,用ROLLBACK TO可以直接回滚到指定的保存点。 BEGIN; UPDATE accounts SET balance = balance - 100.00 WHERE name = Alice; SAVEPOINT my_savepoint; UPDATE accounts SET balance = balance + 100.00 WHERE name = Bob; -- 呀!加错钱了,应该用 Wally 的账号 ROLLB

文档评论(0)

ma33756 + 关注
实名认证
文档贡献者

该用户很懒,什么也没介绍

1亿VIP精品文档

相关文档