一、PostgreSQL是什么?
1、PostgreSQL是以4.2版本的POSTGRES为基础的对象关系型数据库管理系统(ORDBMS),它是由美国加州大学伯利克分校计算机系开发的。
2、它提供了许多现代化功能:
- 复杂查询
- 外健
- 触发器
- 可更新的视图
- 事物完整性
- 多版本并发控制
还可以通过多种方式由用户扩展,例如添加新的
- 数据类型
- 函数
- 操作符
- 聚合函数
- 索引方法
- 过程语言
3、本书内容约定
- 方括号[]表示可选部分
- 大括号{}和竖线|表示必须从其中选择一个替代方案
- 点号(...)表示前面的元素可复用
- 所有其他符号包括括号应该安字面意思理解
- shell命令提示符$,sql命令提示符=>
4、架构基础
在数据库术语里,postgresql使用一种客户端/服务器的模型,一次postgresql会话由下列的相关进程组成:
1)服务器进程:
- 管理数据库文件
- 接收来自客户端应用与数据库连接
- 代表客户端在数据库上执行操作
2)需要执行数据库操作的用户的客户端目标守护者服务器进程
5、数据库
1)使用postgresql管理员创建、删除数据库。createdb dbname和dropdb dabname
2)访问数据库
- 运行psql交互式终端程序,交互式输入、编辑和执行sql命令。
- 使用图形化的前段工具。
- 使用多语言绑定中的一种编写自定义程序。
二、SQL语言
1、引言
SQL(Structured Query Language,结构化查询语言)是用于管理关系型数据库的标准语言。
SQL按用途通常分为以下几类:
1)DDL(Data Design Language,数据定义语言)
用于定义和修改数据库结构。
- create:创建数据库、表、视图、索引等
- ALTER:修改表结构
- DROP:删除对象
- TRUNCATE:清空表数据
2)DML(Data Manipulation Language,数据操作语言)
用于操作表中的数据。
- SELECT:查询数据
- INSERT:插入数据
- UPDATE:更新数据
- DELETE:删除数据
3)DCL(Data Control Language,数据控制语言)
用于权限和事物控制。
- GRANT:授予权限
- REVOKE:收回权限
- COMMIT/ROLLBACK/SAVEPOINT:事物控制
4)TCL(Thing Control Language,事物控制语言)
有时单独列出,包括COMMIT、ROLLBACK、SAVEPOINT等。
在PostgreSQL中,运行以下命令:
$ psql -s mydb
...
mydb=> \i basics.sql
解释:
\i命令从指定的文件中读取命令。
psql的-s选项把你置于单步模式,它在向服务器发送每个语句之前暂停。
2、PostgreSQL概念
1)PostgreSQL
是一种关系型对象数据库管理系统,这意味着它是一种用于管理存储在关系中的数据的系统。
所谓关系,实际上就是表的数学术语,把数据存储在表里的概念已经成为固有的常识了。但是还有其他方法用于组织数据库,譬如Unix系统上的文件和目录就形成了一种层次数据库的例子。更现代的发展是面向对象数据库。
2)表
表是一个命了名的行集合。
一个给定表的没一行由同一组的命名列组成,每一列都有一个特定的数据类型。命名的列称为字段(field)。
虽然列在每行里的顺序是固定的,但sql并不对行在表中的顺序做任何保证。
表被分组到数据库中,由单个Postgresql服务器实例管理的全部数据库的集合,组成了一个数据库集簇。