postgreSql
- 1、准备
1.1. 安装
1.1.1. 安装postgreSql数据库
windows
linux
相关配置
配置端口号:默认5432
配置监听服务IP:默认“*”,无限制
日志配置:记录日志,日志路径,日志名称,日志大小
配置内存
shared_buffers:共享内存大小
work_men:执行SQL时使用的内存大小,执行完成自动释放
1.1.2. 安装管理工具
psql:客户端工具
pgAdmin:管理工具(psql界面版)
pg_ctl:数据库启动、关停
1.2. SQL语言
1.2.1. DDL(表结构操控)
CREATE、ALTER、DROP、RENAME、TRUNCATE
1.2.2. DML(数据操作)
INSERT、UPDATE、DELETE
CALL( 调用过程)、MERGE(合并(插入或修改))、COMMIT(事务提交)、ROLLBACK(事务回滚)
1.2.3. DCL(数据控制语言)
CRANT(权限授予)、REVOKE(权限回收)
1.2.4. DQL(数据查询语言)
SELECT、FROM 、WHERE - 2、基础
2.1. psql工具使用
2.1.1. 启动psql
登录psql
2.1.2. 常用命令
\l 查看所有数据库
\d 看当前数据库的所有表
\dn 列出所有的 schema
\x 把表中的每一行的每列数据都拆分为单行展示,与 MySQL 中的 “\G” 的功能类似。
\echo 用于输出一行信息,通常用于在 .sql 文件中输出一些提示信息
更多的命令可以用 ? 来显示
2.1.3. 使用技巧
自动补全
历史执行SQL
2.2. 逻辑结构管理
2.2.1. 数据库逻辑结构
数据库(datebates)
概念:一个PostgreSQL服务下可以管理多个数据库
基本操作
创建数据库:create datebase 数据库名;
修改数据库:alter datebase 数据库名;
删除数据库:drop datebase 数据库名;
模式(schema)
概念:可理解为目录(文件夹),一个数据库下的多个模块,互不冲突
基本操作:
创建模式:CREATE SCHEMA 模式名;
删除模式
删除空模式:DROP SCHEMA 模式名;
删除模式及模式下所有对象:DROP SCHEMA 模式名 CASCADE;
Public 模式(公共权限)
缺省时,表(以及其它对象)都自动放到一个叫做"public"的模式中去,每个新数据库都包含一个这样的模式
系统表模式:每个数据库都包含一个pg_catalog模式,它包含系统表和所有内置数据类型、函数、操作符
表(table)
概念:关系型数据库中的表非常类似纸面上的一张表:它由行和列组成
基本操作:参考DDL(表结构操控语言)
临时表(pg_temp_XX)
会话级:本次会话创建使用的临时表,会话关闭,表删除。
事务级:本次事务内创建的临时表,事务提交(回滚),表删除
约束(check)
概念::SQL 允许你在字段和表上定义约束。如果用户企图在字段里存储违反约束的数据,那么就会抛出一个错误
检查约束:它允许你声明在某个字段里的数值必须使一个布尔表达式为真
非空约束:非空约束只是简单地声明一个字段必须不能是 NULL
唯一约束:唯一约束保证在一个字段或者一组字段里的数据与表中其它行的数据相比是唯一的
主键约束:主键约束只是唯一约束和非空约束的组合
外键约束:外键约束声明一个字段(或者一组字段)的数值必须匹配另外一个表中出现的数值。我们把这个行为称为两个相关表之间的参照完整性。
排他约束:排他约束保证如果任何两行被在声明的字段里比较或者用声明的操作表达,至少有一个操作比较会返回错误或空值。
表继承
概念:表继承是pgsql特有,通过INHERITS 进行表之间继承关系
子表:子表通过INHERITS 继承父表的所有字段和检查约束(主外键不继承),子表创建表时只需要创建自己特有的字段。父表数据删除不影响子表
父表:查询父表会将子表数据全部查询出来,操作父表数据时,子表同步改变。
表分区:通过表继承,将子表分布在不同的物理空间中,提供数据操作速度
索引(index):为了增加查询速度而对表字段附加的一种标识
数据行:在pgsql中被称为Tuple,其他数据库称为row