1.逻辑关系理解(数据库,模式,对象之间的从属关系)
- 用语言描述,其逻辑包含关系应为:实例(Instance)> 数据库(database)>模式(Schema)。
- 其中一个实例下有多个彼此完全独立的数据库,一个数据库下可以有多个模式(Schema)。
- 通俗来说,模式是对数据库的逻辑分割。
2.一些细节
- 在我们新建一个数据库并使用psql的\dn指令查看其模式时,通常只能看见public一个模式。
- 我们可以做一个测试,在一个新建的数据库中,我们使用create table 指令新建一个表,并使用\dt或者\d指令查看当前库中的表,我们会发现该表位于public模式下;继而我们再对该表create一个简单的查询视图,再使用\d指令查看,会发现其依旧位于public模式下。
- 事实上,官方建议为每一个用户在库中创建一个同名模式。我们可以通过create schema XXX;指令创建一个和当前访问的用户名同名的模式,再重新执行第2步,我们会发现创建的表和视图会默认放在同名视图下。
- 同一个数据库可能有多个用户访问。对于用户和各个模式的权限:所有用户对public模式具有create权限,而对于其他用户创建的模式,是否可见取决于该模式的owner是否给予你usage权限。
3.简单使用
- 各种sql语句相似,不再赘述
- 分页查询
select * from tablename where XXX limit XXX offset XXX;
其中 limit + 查询数量,offset + 需要跳过的数量,如“limit 5 offset 2”表示从第三条开始查5条。
- 事务
BEGIN; XXXsql语句; SAVEPOINT my_point; XXXsql语句; ROLLBACK TO my_point; COMMIT;
BEGIN命令来开始事务,这样的事务通常会持续下去,直到遇到下一个COMMIT或ROLLBACK命令;COMMIT命令是用于将事务调用的更改保存到数据库的事务命令;ROLLBACK命令ROLLBACK命令是用于还原尚未保存到数据库的事务的事务命令。