1、PGSQL是什么?
PostgreSQL(也称为
Post-gress-Q-L
)由PostgreSQL全球开发集团(全球志愿者团队)开发。一个功能强大的开源对象关系数据库管理系统(ORDBMS)。 用于安全地存储数据; 支持最佳做法,并允许在处理请求时检索它们。
2、PGSQL特点是什么?
- PostgreSQL可在所有主要操作系统Windows和Linux
- PostgreSQL支持文本,图像,声音和视频,并包括用于C/C++,Java,Perl,Python,Ruby,Tcl和开放数据库连接(ODBC)的编程接口。
- PostgreSQL支持SQL的许多功能,例如复杂SQL查询,SQL子选择,外键,触发器,视图,事务,多进程并发控制(MVCC),流式复制(9.0),热备(9.0))。
- 在PostgreSQL中,表可以设置为从“父”表继承其特征。
- 可以安装多个扩展以向PostgreSQL添加附加功能。
3、PGSQL的数据类型有哪些?
PGSQL主要有三种类型的数据:数值类型、字符串类型、时间\日期
4、存储过程
PostgreSQL函数也称为PostgreSQL存储过程。 PostgreSQL函数或存储过程是存储在数据库服务器上并可以使用SQL界面调用的一组SQL和过程语句(声明,分配,循环,控制流程等)。 它有助于您执行通常在数据库中的单个函数中进行多次查询和往返操作的操作。
5、索引
索引是用于加速从数据库检索数据的特殊查找表。数据库索引类似于书的索引(目录)。 索引为出现在索引列中的每个值创建一个条目。
索引的特点:
(1)索引使用SELECT
查询和WHERE
子句加速数据输出,但是会减慢使用INSERT
和UPDATE
语句输入的数据。
(2)您可以在不影响数据的情况下创建或删除索引。
(3)可以通过使用CREATE INDEX
语句创建索引,指定创建索引的索引名称和表或列名称。
(4)还可以创建一个唯一索引,类似于唯一约束,该索引防止列或列的组合上有一个索引重复的项。
6、PGSQL的权限
GRANT的语法GRANT命令的基本语法如下:
GRANT privilege [, ...]
ON object [, ...]
TO { PUBLIC | GROUP group | username }
privilege值可以是:SELECT,INSERT,UPDATE,DELETE,RULE,ALL。
object:要向其授予访问权限的对象的名称。
可能的对象是:表,视图,序列PUBLIC:表示所有用户的简短形式。
GROUP group:授予权限的组。username:授予权限的用户的名称。 PUBLIC是表示所有用户的简短形式。
REVOKE的语法REVOKE命令的基本语法如下:
REVOKE privilege [, ...]
ON object [, ...]
FROM { PUBLIC | GROUP groupname | username }
privilege值可以是:SELECT,INSERT,UPDATE,DELETE,RULE,ALL。
object: 授予访问权限的对象的名称。 可能的对象是:表,视图,序列。
PUBLIC:表示所有用户的简短形式。
GROUP group:授予权限的组。
username:授予权限的用户的名称。 PUBLIC是表示所有用户的简短形式。
示例如要理解权限,我们先创建一个USER,如下所示:
yiibai_db=# CREATE USER manisha WITH PASSWORD 'password';
CREATE ROLE
SQL
语句CREATE ROLE 表示创建了一个用户名为manisha。
考虑 COMPANY 表有以下记录:
yiibai_db# select * from COMPANY;
id | name | age | address | salary
----+-------+-----+-----------+--------
1 | Paul | 32 | California| 20000
2 | Allen | 25 | Texas | 15000
3 | Teddy | 23 | Norway | 20000
4 | Mark | 25 | Rich-Mond | 65000
5 | David | 27 | Texas | 85000
6 | Kim | 22 | South-Hall| 45000
7 | James | 24 | Houston | 10000
(7 rows)
接下来,让我们给予用户“manisha”在表COMPANY上授予所有权限,如下所示:
yiibai_db=# GRANT ALL ON COMPANY TO manisha;
GRANT
语句GRANT指示所有在COMPANY表上的权限都分配给用户“manisha”。
接下来,让我们从用户“manisha”中撤销权限,如下所示:
yiibai_db=# REVOKE ALL ON COMPANY FROM manisha;
REVOKE
REVOKE表示从用户“manisha”撤消所有权限。甚至可以删除用户,如下所示:
yiibai_db=# DROP USER manisha;
DROP ROLE
DROP ROLE表示从数据库中删除用户“manisha”。