PostgreSQL随手笔记(1)

2017-02-18  本文已影响47人  阿里纳斯的零

1. 简介

1.1 安装

环境: Docker for MacOS
镜像: 官方镜像,https://hub.docker.com/r/library/postgres/
设置密码变量POSTGRES_PASSWORD

1.2 基本概念

PG(PostgreSQL 后面都这么表示)使用C/S模式。PG能够并发处理请求,每个链接都会fork一个新的进程来处理请求。

1.3 基本操作命令

1. 命令行连接PG,(也可以使用pgAdmin4工具去连接和管理PG数据库服务器):

$ psql -h localhost -U postgres -W
Password for user postgres:
psql (9.6.1)
Type "help" for help.
postgres=# 

2. 创建数据库:

postgres=# create database mydb;
CREATE DATABASE

3. 显示数据库:

postgres=# \l
                                 List of databases
   Name    |  Owner   | Encoding |  Collate   |   Ctype    |   Access privileges
-----------+----------+----------+------------+------------+-----------------------
 mydb      | postgres | UTF8     | en_US.utf8 | en_US.utf8 |
 postgres  | postgres | UTF8     | en_US.utf8 | en_US.utf8 |
 template0 | postgres | UTF8     | en_US.utf8 | en_US.utf8 | =c/postgres          +
           |          |          |            |            | postgres=CTc/postgres
 template1 | postgres | UTF8     | en_US.utf8 | en_US.utf8 | =c/postgres          +
           |          |          |            |            | postgres=CTc/postgres
(4 rows)

4. 切换数据库:

mydb=# \c mydb
Password for user postgres:
You are now connected to database "mydb" as user "postgres".

5. 列出数据表

mydb=# \d
No relations found.

6. 退出登陆

mydb=# \q

2. SQL语言

PG支持标准的SQL语言类型

2.1 常用的数据类型

2.1.1 数值类型

名称 数据存储 描述 范围
smallint 2 字节 小范围整数 -32768 到 +32767
integer 4 字节 常用的整数 -2147483648 到 +2147483647
bigint 8 字节 大范围的整数 -9223372036854775808 到 9223372036854775807
decimal 变长 用户声明精度,精确 小数点前131072位,小数点后16383位
numeric 变长 用户声明精度,精确 小数点前131072位,小数点后16383位
real 4 字节 变精度,不精确 6 位十进制数字精度
double precision 8 字节 变精度,不精确 15 位十进制数字精度
smallserial 2 字节 自增整数 1 到 +32767
serial 4 字节 自增整数 1 到 +2147483647
bigserial 8 字节 大范围的自增整数 1 到 9223372036854775807

除了smallserial,serial,bigserial和一般数据库不同,其他数据类型在其他数据库中都有对应的实现。serial并不是一个真实的数据类型,主要用来作为自增长主键使用的,类似MySQL中的AUTO_INCREMENT,用法也类似。

2.1.2 资金类型

与数据库变量lc_monetary相关。

名称 数据存储 描述 范围
money 8 字节 资金数 -92233720368547758.08到+92233720368547758.07

2.1.3 字符类型

名称 描述
character varying(n), varchar(n) 变长字符,有长度限制
character(n), char(n) 定长字符,有长度限制
text 变长字符,无长度限制

三种类型数据类型在PG中没有性能上的差别。varchar和char是character varying, character的别名。

2.1.4 日期/时间类型

名称 数据存储 描述 最小值 最大值 精度
timestamp[(p)]不包含时区 8 字节 日期和时间 4713 BC 294276 AD 1毫秒/14位数字
timestamp[(p)]包含时区 8 字节 日期和时间 4713 BC 294276 AD 1毫秒/14位数字
date 4 字节 日期(不包含时间) 4713 BC 5874897 AD 1天
time[(p)] 不包含时区 8 字节 一天的时间(没有日期) ,不包含时区 00:00:00 24:00:00 1毫秒/14位数字
time[(p)] 不包含时区 12 字节 一天的时间(没有日期),包含时区 00:00:00+1459 24:00:00-1459 1毫秒/14位数字
interval[ fields ] [(p)] 不包含时区 16 字节 时间间隔 -178000000 年 178000000 年 1毫秒/14位数字

2.1.5 Boolean类型

名称 数据存储 描述
boolean 1 字节 true/false

TRUE同义:

TRUE
't'
'true'
'y'
'yes'
'on'
'1'

FALSE同义:

FALSE
'f'
'false'
'n'
'no'
'off'
'0'
上一篇 下一篇

猜你喜欢

热点阅读