C++该电脑ip地址怎么查询写PostgreSQL的查询式?

一个数据库包含一个或多个命名嘚模式模式又包含表。模式还包含其它命名的对象包括数据类型、函数,以及操作符同一个对象名可以在不同的模式里使用而不会導致冲突; 比如,schema1和myschema都可以包含叫做mytable的表和数据库不同,模式不是严格分离的:一个用户可以访问他所连接的数据库中的任意模式中的對象只要他有权限。

 在介绍后面的内容之前这里我们需要先解释一下public模式。每当我们创建一个新的数据库时PostgreSQL都会为我们自动创建该模式。当登录到该数据库时如果没有特殊的指定,我们将以该模式(public)的形式操作各种数据对象如:    CREATE  缺省时,用户看不到模式中不属于他們所有的对象为了让他们看得见,模式的所有者需要在模式上赋予USAGE权限为了让用户使用模式中的对象,我们可能需要赋予额外的权限只要是适合该对象的。PostgreSQL根据不同的对象提供了不同的权限类型如:    GRANT  可以看出,通过以上方式在public模式下为myschema模式创建各种对象是极为不方便的下面我们将要介绍另外一种方式,即通过role对象直接登录并关联到myschema对象,之后便可以在myschema模式下直接创建各种所需的对象了    CREATE  我们在使用一个数据库对象时可以使用它的全称来定位对象,然而这样做往往也是非常繁琐的每次都不得不键入owner_name.object_name。PostgreSQL中提供了模式搜索路径这囿些类似于Linux中的$PATH环境变量,当我们执行一个Shell命令时只有该命令位于$PATH的目录列表中,我们才可以通过命令名直接执行否则就需要输入它嘚全路径名。PostgreSQL同样也通过查找一个搜索路径来判断一个表究竟是哪个表这个路径是一个需要查找的模式列表。在搜索路径里找到的第一個表将被当作选定的表如果在搜索路径中 没有匹配表,那么就报告一个错误即使匹配表的名字在数据库其它的模式中存在也如此。    在搜索路径中的第一个模式叫做当前模式除了是搜索的第一个模式之外,它还是在CREATE TABLE没有声明模式名的时候新建表所属于的模式。要显示當前搜索路径使用下面的命令:  

我要回帖

更多关于 手机ip地址查询 的文章

 

随机推荐