下载  >  数据库  >  PostgreSQL  > Postgresql中文手册

Postgresql中文手册 评分:

这个基本涉及到所用到的 Postgresql ,快速入门和提高,实例全,详细。必备。
pg 70 PostgreSQL学习于册(客户端命令<一>)… 70 、口令文件 PostgreSQL学习手册(客户端命令<二>)….…75 七、pg_dump 75 八、 pg restore: 77 PostgreSQL学习手册(S⑨L语言函数) 83 、基本概念: ∴83 PostgreSQL学习手册(PL/pSQL过程语言) 86 概述 6 PostgreSQL学习手册(数据表) 表的定义: 对于任何一种关系型数捱库而言,表都是数捱存储的最核心、最基础的对象单元。现在就让我们从这里起步吧。 1.创建表: CREATE TABLE products product no integer, name text prIce numerIc 2.删除表: DROP TABLE products; 3.创建带有缺省值的表: CREATE TABLE products product no integer, name text, price numerIC DEFAULT9.99 DEFAULT是关键字,其后的数值9.99是字段 price的默认值 ); CREATE TABLE Products product no SERIAL SERIAL类型的字段表示该字段为自增字段,完全等同于 Oracle中的 Sequence name text, price numeriC DEFAULT 9.99 ); 输出为: NOTICE: CREATE TABLE Will create implicit sequence " products product no seq for serial column products product no 4.约束: 检查约束是表中最为常见的约束类型,它允许你声明在某个字段里的数值必须满足一个右尔表达式。不仅如此,我们也可以声明表 级别的检查约東 CREATE TABLE products product no integer, name text, price字段的值必须大于O,否则有入或修该字段信是,将引发适规错误。还需要说明的是,该检含约宋 是匿名约束,即在表定义时没有显小命名该约束,这样 PostgreSQL将会根据当前的表名,字殿名和约束类型, 为该约束自动命名,如: products price check price numeric CHECK(price>0) ; CREATE TABLE Products product_ _no integer name text, 该字侵的检查约束被显示命名义 positive price。这样做好处在于今后维护该约束时,可以根据该名进行直接趣作 price numeric CONSTRAINT positive_ price CHECK (price >0) 下面的约束是非空约束,即约束的字段不能插入空值,或者是将已有数据更新为空值。 CREATE TABLE products product_no integer NOT NULL, name text NOT nUll price numerIc 如果一个字段中存在多个约束,在定义时可以不用考虑约束的声明顺序。 CREATE TABLE products product_no integer NOT NULLI name text NOT NULL price numeric NoT NULL CHECK (price>0) 唯一性约束,即指定的字段不能插入重复值,或者是将某一记录的值更新为当前表中的已有值。 CREATE TABLE products product no integer UNIQUE name text, price numerIc CREATE TABLE products product_no intege name text 册 prIce numerIc UNIQUE(product_no) 为表中的多个字段定义联合唯一性。 CREATE TABLE example a int b integer, c integer UNIQUE (a, c) 为唯一性约束命名 CREATE TABLE products product no integer CONSTRAINT must be different UNIQUE name text, price numerIc ); 玍插入数据时,空值(NUL)之间被视为不相等的数据,因此对于某一唯一性字段,可以多次插入空值。然而需要注意的是,这一 规则并不是被所有数掂库都遵守,因此在进行数拈库移植时可能会造成一定的麻烦。 5.主键和外键: 从技术上来讲,主键约束只是唯一约束和非空约束的组合 CREATE TABLE products product_ no integer PRIMARY KEY,-字段 product_no被定义为该表的唯一主键 name text, prIce numerIc ) 和唯一性约束一样,主键可以同时作用于多个字段,形成联合主键 CREATE TABLE example a integer integer, c integer, PRIMARY KEY (b, c) 外键约束声明一个字段(或者一组字段)的数值必须匹配另外一个表中某些行出现的数值。我们把这个行为称做两个相关表之间 的参考完整性。 CREATE TABLE orders order_ id integer PRIMARY KEY,--该表也可以有自已的主键 表的p0 duct n0段为上面 products表主( product no)的外键。 product no integer REFERENCES products(product_ no), quantity integer ) CREATE TABLE ti( a integer PRIMARY KEY b integer, c integer, 该外键的字段数星和被引用表中主键的数星必领保持一致。 FOREIGN KEY(b, c)REFERENCES example(b, c)C JENS ) 当多个表间存在了主外的参考性约学不形应数主键构中的某记录由于该行记录的主键字没值可能正 在被共引用表(外键表)中某条记录所关联,A除作将会大败,如果想完成此操作,一个显而易见的方法是优删除引用表中和该 记录关联的行,之后再删除被引用表中的该行记求。然而需要说明的是, PostgreSQL为我们提供了更为方便的方式完成此类操作。 CREATE TABLE products product_no integer PRIMARY KEY name text, prIce numerIc ); CREATE TABLE orders order_ id integer PRIMARY KEY shipping_address text ); CREATE TABLE orderitems( product no integer REFERENCES products ON DELETE RESTRICT,-限制选项 order__id integer REFeRENcEs orders ON DELETE CASCADE,-级联删除选项 quantity integer, PRIMARY KEY(product no, order_id) ); 限制和级联删除是两种最常见的选项。 RESTRICT禁止删除被引用的行。N○ ACTION的意思是如果在检査约束的时候,如果 还存在任何引用行,则抛出错误:如果你不声明任何东西,那么它就是缺省的行为。(这两个选择的实际区别是, NO ACTION允许 约束检査推迟到事务的晚些时,而 RESTRICT不行。) CASCADE声明在删除一个被引用的行的时候,引用它的行也会被自动删 除掉。在外键字段上的动作还有两个选项: SET NULL和 SET DEFAULT。这样会导致在被引用行删除的时候,引用它们的字段 分別设置为空或者缺省值。请汴意这些选项并不能让你逃脱被观察和约束的境地。比如,如果一个动作声明 SET DEFAULT,但是 缺省值并不能满足外键,那么动作就会失败。类似 ON DELETE,还有 ON UPDATE选项,它是在被引用字段修改(更新)的时候调用 的。可用的动作是一样的。 二、系统字段: PostgreSQL的每个数据表中都包含几个隐含定义的系统字段。因此,这些名字不能用于用户定义的字段名。这些系统字段的功能 有些类似于 Oracle中的 rownum和 rowid等。 oid:行的对象标识符(对象ID)。这个字段只有在创建表的时候使用了 WITH OIDS,或者是没置了配置参数 default with_oids 吋出觋。这个字段的类型是oid(和字段同名)。 tableoid包含本行的表的OID。这个字段对那些从继承层次中选取的查询特别有用,因为如果没有它的话,我们就很难说明 行来自哪个独立的表。 tableoid可以和pg_ class的oid字段连接起来获取表名字。 xmin:插入该行版木的事务的标识(事务ID)。 cmin:在插入事务内部的命令标识(从零开始)。 xmax:删除事务的标识(事务ID),如果不是被删除的行版本,那么是零 cmax:在删除事务内部的命令标识符,或者是零 ctid:一个行版本在它所处的表內的物理位置。请注意,尽管ctid可以用于非常快速地定位行版本,但每次Ⅴ ACUUM FULL之后, 个行的ctid都会被更新或者移动。因北ctid是不能作为长期的行标识符的 OID是32位的量,是在同一个集群内通用的计数器上赋值的。对于一个大型或者长时间使用的数据库,这个计数器是有可能重叠 的。因此,假设OID是唯一的是非常错误的,除非你自己采取了措施来保证它们是唯一的。如果你需要标识表中的行,我们强烈建议 使用序列号生成器。 表的修改: 1.增加字段 ALTER TABLE products ADD COLUMN description text 新增的字段对J表中已经存在的行而言最初将先填充所给出的缺省值(如某你没有声明 DEFAULT子句,那么缺省是空值)。 在新增字段时,可以同时给该字段指定约束。 ALTER TABLE Products ADD COLUMN description text CHECK(description <> 2.删除字段: ALTER TABLE products DROP COLUMN description 如果该表为被引用表,该字段为被弓用字段,那么上面的删除操作将会失败。如果要想在删除被引用字段的同时级联的删陰其所有 引用字段,可以采用下面的语法形式。 ALTER TABLE products DROP COLUMN description CASCADE; 3.增加约東 ALTER TABLE products ADD CHECK(name<>");--增加一个表级约束 ALTER TABLE products ADD CONSTRAINT some_ name UNIQUE( product_no);增加命名的唯一性约失 ALTER TABLE products ADD FOREIGN KEY( pdt grp_ id) REFERENCES pdt grps;-增加外键约束。 ALTER TABLE products ALTER COLUMN product_ _no SET NOT NULL;--增加一个空约束。 4.删除约束: ALTER TABLE products DROP CONSTRAINT some_name 对于显小命名的约束,可以根据其名称直接删除,对于隐式自动命名的约束,可以通过psq的\ d tablename来获取该约束的名 字。和删除字段一样,如果你想删除有着被依赖关系地约朿,你需要用 CASCADE。一个例子是某个外键约束依赖被引用字段上的唯 约束或者主键约束。如: MyTest=# d products Table public products Column Type Modifiers product no integer name I numeric I Check constraints positive_price"CHECK (price >0: numeric 和其他约束不同的是,非空约束没有名字,因此只能通过下面的方式删除: ALTER TABLE products ALTER COLUMN product_no DROP NOT NULLI 5.改变字段的缺省值: 在为已有宁段添加缺省值时,不会影响任何表中现有的数据行,它只是为将来 INSERT命令改变缺省值。 ALTER TABLE products ALTER COLUMN price SET DEFAULT 7.77 下面为删除缺省值: ALTER TABLE products ALTER COLUMN price DROP DEFAULT 6.修改字段的数据类型: 只有在字段里现有的每个顼都可以用一个隐含的类型转換转换成新的类型时才可能成功。比如当前的数据都是整型,而转换的目标 类型为η umerIc或 varchar,这样的转換一般都可以成功。与此同时, PostgreSQL还将试图把字段的缺省值(如果存在)转换成 新的类型,还有涉及该字段的任何约束。但是这些转换可能失败,或者可能生成奇怪的结果、在修改某字段类型之前,你最好删除 那些约束,然后再把自己手工修改过的添加上去 ALTER TABLE products ALTER COLUMN price TYPE numeric(10, 2); 7.修改字段名 ALTER TABLE Products RENAME COLUMN product_no To product_number; 8.修改表名: ALTER TABLE Products RENAME TO items 四、权限: 只有表的所有者才能修改或者刪除表的权限。要赋予一个权限,我们使用 GRANT命令,要撤销一个权限,使用 REVOKE命令。 需要指出的是, PUBLIC是特殊"用户"可以用于将权限赋予系统中的每一个用户。在声明权限釣位置写AL则将所冇的与该对象 类型相关的权限都赋予出去。 GRANT UPDATE ON table_ name to user;-将表的吏新杈限姸予指定的user GRANT SELECT ON table name TO GRoUP group;-将表的 select限赋予指定的组。 REVOKE ALL ON table name FRom public;-将表的所有权限 M Public撤销 最初,只有对象所有者(或者超级用户)可以赋予或者撤销对象的权限。但是,我们可以赋予一个" with grant option"权限,这 样就给接受权限的人以授予该权限给其饣人的权限。如果授予选项后米被撤销,那么所有那些从这个接受者接受了权限的用户(直接或 者通过级连的授权)都将失去该权限。 本手册曲WEN PostgreSQL学习手册(模式 Schema) 个数据库包含一个或多个命名的模式,模式又包含表。模式还包含其它命名的对象,包括数据类型、函数,以及操作符。同一个 对象名可以在不同的模式里使用而不会导致冲突;比如, schema1和 myschema鄞可以包含叫徹 mytable的表。和数据库不同, 模式不是严格分离的:一个用户可以汸问他所连接的数据库中的任意模式中的对象,只要他有权限。 我们需要模式有以卜几个主要原因: 1).允许多个用户使用一个数据库而不会干扰其它用户 2).把数据库对象组织城逻辑组,让它们更便于管理。 3).第三方的应用可以放在不同的模式中,这样它们就不会和其它对象的名字冲突。 1.创建模式: CREATE SCHEMA myschemai 通过以上命令可以创建名字为 myschema的模式,在该模式被创建后,其便可拥有自己的一组逻辑对象,如表、视图和函数等。 2. public模式: 在介绍后面的内容之前,这里我们需要大解释一下 public模式。每当我们创建一个新的数据库时, PostgresQL都会为我们自动 刨建该模式。当登录到该数据库吋,如棊没有特殊的指定,我们将以该模式(ρubic)的形式操作各和数据对象,如 CREATE TABLE products(…)等同于 CREATE TABLE public, products(….) 3.权限: 缺省时,用户看不到模式中不属于他们所有的对象,为了让他们看得见,模式的所有者需要在模式上赋予 USAGE权限。为了让用 户使用模式中的对象,我们可能需要赋」额外的权限,只要是适合该对象的。 PostgreSQL根据不同的对象提供了个同的权限类型, 如 GRANT ALL ON SCHEMA myschema To public; 上面的ALL关键字将包含cREAτE和 USAGE两种权限。如果ρubli模式拥冇了 myschema模式的 CREATE权限,那么 录到该模式的用户将可以在 myschema模式中创建任意对象,如 CREATE TABLE myschema. products product_no integer, name text price numeric CHECK (price >0) ) 在为模式下的所有表赋予权限时,需要将权限拆分为各种不同的表操作,如: ALTER DEFAULT PRIVILEGES IN SCHEMA myschema GRANT INSERT, SELECT, UPDATE, DELETE, TRUNCATE, REFERENCES, TRIGGER ON TABLES TO public: 在为模式下的所有 Sequence序列对象赋予权限时,需要将权限拆分为各种不同的 Sequence操作,如: ALTER DEFAULT PRIVILEGES IN SCHEMA myschema GRANT SELECT, UPDATE, USAGE ON SEQUENCES TO public, 在为模式下的所有函数赋予权限时,仅考虑执行权限,如: ALTER DEFAULT PRIVILEGES IN SCHEMA myschema GRANT EXECUTE ON FUNCTIONS TO public 可以看出,通过以上方式在 public模式下为 myschema馍式创建各种对象是极为不方便的。下面我们将要介绍另外一种方式, 即通过role对象,直接登录并关联到 myschema对象,之后便叮以在 myschema模式下直接创建各种所需的对象了。 CREATE ROLE myschema LOGIN PASSWORD"123456’;--创建了和该模式关张的角色象。 CREATE SCHEMA myschema AUTHORIZATION myschema;--将该模式关联到指定的角色,模式名和角色名可以不相 在LinuⅹShe下,以 myschema的角色登录到数据库 MyTest,在密码输入正确后将成功登录到该数据库。 7> psq/-d MyTest -U myschema Password My Test=> CREATE TABLE test(i integer) CREATE TABLE My Test=>(d合看该模式下,以及该模式有权限看到的tbes信息列表。 List of relations Schema Name Type Owner ------+---------+------+------- myschema test table myschema 1 rows) 4.删除模式 DROP SCHEMA myschema 如果要删除模式及其所冇对象,请使用级联删除 DROP SCHEMA myschema CASCADE 5.模式搜索路径 我们冇使用一个数据库对象时可以伩用它的全称来定位对象,然而这样做往往也是非常繁琐的,每次都不得不键入 owner_name. object_name.。 PostgreSQL中提供了模式搜索路径,这冇些类似于Linuⅹ中的$PATH环境变量,当我们执行一个 she命令时,只有该命令位于$PATH的目录列表中,我们才可以通过命令名直接执行,否则就需要输入它的全路径名ε PostgresQl 同样也通过査找一个搜索嵱径来判断一个表究竟是哪个表,这个咯径是一个需要查找的模式列表。在搜索路径里找到的第一个表将被 当作选定的表。如果在搜索路径中没冇匹配表,那么就报告一个错误,即使匹配表的名字在数据库其它的模式中存在也如此 冇搜索路径中的第一个模式叫做当前模式。除了是搜索的第一个模式之外,它还是在 CREATE TABLE没有声明模式名的时候,新 建表所属于的模式。要显小当前搜索路径,使用下面的命令: MyTest=> SHow search_path search_ path suser, public 1 row) 可以将新模式加入到搜索路径中,如: 手册wEwW制作 SET search_path To myschema, public, 为搜索路径设置指定的模式,如: SET search_ path To myschema;--当前搜索路径中将只是包含 myschema一种模式。 PostgreSQL学习手册(表的继承和分区) 一、表的继承: 这个概念对于很多已经熟悉其他数据库编程的开发人员而言会多少有些陌生,然而它的实现方式和设计原埋却是简单易懂,现冇就 让我们从一个简单的例子开始吧。 1.第一个继承表: CREATE TABLE Cities(一父表 name text, population float altitude ); CREATE TABLE capitals(--/'t state char(2)

...展开详情
2015-07-02 上传 大小:2.3MB
举报 收藏
分享
PostgreSQL 11.2 中文文档

PostgreSQL 11.2 中文文档 PostgreSQL 11.2 中文文档 PostgreSQL 11.2 中文文档

立即下载
postgresql官方手册的中文版

postgresql官方手册的中文版

立即下载
postgresql中文手册

postgresql8.2.3中文手册 目录 前言 何为 PostgreSQL? PostgreSQL 简史 格式约定 更多信息 臭虫汇报指导 I. 教程 1. 从头开始 2. SQL 语言 3. 高级特性 II. SQL 语言 4. SQL 语法 5. 数据定义 6. 数据操作 7. 查询 8. 数据类型 9. 函数和操作符 10. 类型转换 11. 索引 12. 并发控制 13. 性能提升技巧 III. 服务器管理 14. 安装指导 15. 在 Windows 上安装客户端 16. 操作系统环境 17. 服务器配置 18. 数据库角色和

立即下载
PostgreSQL 中文文档

PostgreSQL中文开发文档 9.3 epub格式,需要其他格式的也可以通过网上的工具转成pdf,mobi等其他格式,可以尝试导入kindle里面!

立即下载
PostgreSQL 10官方手册

最权威的、最详细的中文PostgreSQL手册,可以更深入了解PostgreSQL数据库

立即下载
postgresql 10.1 手册

postgresql 官网git下载的 中文源码编译的pdf 说明手册

立即下载
Postgresql官方中文手册

可以运用此手册初步了解Postgresql的使用,而且这是属于正规的官方手册,相信会对您有用

立即下载
postgresql 中文学习手册

PostgreSQL学习手册(数据表) PostgreSQL学习手册(模式Schema) PostgreSQL学习手册(表的继承和分区) PostgreSQL学习手册(常用数据类型) PostgreSQL学习手册(函数和操作符<一>) PostgreSQL学习手册(函数和操作符<二>) PostgreSQL学习手册(函数和操作符<三>) PostgreSQL学习手册(索引) PostgreSQL学习手册(事物隔离) PostgreSQL学习手册(性能提升技巧原理) PostgreSQL学习手册(服务器配置) PostgreSQL学习手册(角色和权限) PostgreSQL学习手册(数据库管理)

立即下载
postgresql帮助中文文档

postgresql中文文档,初学者可以看看。个人觉得还是有帮助的。

立即下载
PostgreSQL 9.4.4 中文手册.chm

PostgreSQL 9.4.4 中文手册.chm

立即下载
PostgreSQL 9.6 中文版最新文档(三种格式:pdf+chm+tar.gz)

PostgreSQL 9.6 中文版最新文档,三种格式:pdf+chm+tar.gz

立即下载
PostgreSQL9.6.0中文手册 chm格式

PostgreSQL9.6.0中文手册 chm格式 PostgreSQL9.6.0中文手册 chm格式 PostgreSQL9.6.0中文手册 chm格式 PostgreSQL9.6.0中文手册 chm格式

立即下载
postgresql-10 官方文档

PostgreSQL数据库原版官方文档,最新10.3版本。英文原版

立即下载