PostgreSQL

一、基本使用

1. 交互式终端psql

  • 连接至数据库: psql -h -p <端口号>
  • \d:查看所有表
  • \d + 表名:查看表结构
  • \timing:显示SQL语句执行时间

2. 表空间的使用

如果需要把不同的表放在不同的存储介质或不同的文件系统下,可以使用表空间

`CREATE TABLESPACE tablespace_name LOCATION 'directory'
[WITH (tablespace_option = value)]`

在创建数据库、表时可以指定表空间,以便将对象存储在特定的表空间上

表空间参数 tablespace_option :如果在比 I/O子系统更快或更慢的磁盘上存储表空间,则配置项会变得很有意义

  • seq_page_cost:在磁盘上顺序扫描获取一个页面的代价,默认1.0
  • random_page_cost:在磁盘上随机扫描获取一个页面的代价,默认4.0
  • effective_io_concurrency:可以执行并发异步磁盘 I/O 的数量

3. 创建数据库

CREATE DATABASE name
[ENCODING[=]encoding]
[TABLESPACE[=]tablespace_name]
[CONNECTION LIMIT[=]connlimit]

ENCODING:编码

TABLESPACE:表空间

3. 操作数据库表

创建数据库:

CREATE [[GLOBAL|LOCAL]{TEMPORARY|TEMP}|UNLOGGED] TABLE
[IF NOT EXIST] table_name([
{ column_name data_type [COLLATE collation][column_constraint
[...]]
|table_constraint
|LIKE source_table [like_option...]}
])
[INHERITS(parent_table[,...])]
[PARTITION BY{RANGE|LIST}({column_name|(expression)}
[COLLATE collation][opclass][,...])]
[WITH(storage_parameter[=value][,...])|WITH OIDS|WITHOUT OIDS]
[ON COMMIT{PERSERVE ROWS|DELETE ROWS|DROP}]
[TABLESPACE tablespace_name]

字段约束:

  • 非空约束  NOT NULL
  • 唯一约束  UNIQUE
  • 主键约束  PRIMARY KEY
  • 默认约束  DEFAULT
  • 外键约束:`deptid   int   not null   REFERENCES department(deptid)`
  • Check约束:createtime  timestamp CHECK(createtime > '1970-01-01- 00:00:00')

表约束:

  • 外键约束:FOREIGN KEY (b,c) REFERENCE tb_test01 (b1,c1)
  • Check约束:CHECK(createtime < modifytime)

删除数据库表:

删除表时如果该表被其他表引用(外键),直接删除会报错,需添加 CASCADE 连带删除子表的外键约束 : `DROP TABLE employee CASCADE`

二、数据类型和运算符

1.数据类型

  • 整型:smallint、integer、bigint
  • 任意精度:numeric、decimal 
    decimal(6,2):表示总共位数6位,小数部分位数2位。如果插入的数字小数位数超过2,则自动进行四舍五入
  • 浮点:real 6位精度、 double precision 15位精度、float(n) 指定精度。浮点类型会造成精度丢失,需要准确计算应该使用numeric类型。浮点类型特殊值(Infinity、-Infinity、NaN)
  • 序列:smallserial、serial、bigserial 可用作自增主键
  • 货币:money 可以接受 ‘¥10000.00’货币格式,货币符号由数据库 lc_monetary 参数决定
  • 字符串:char(n)、varchar(n)、text 。n表示最多存储n个字符,text无长度限制
  • 二进制:bytea
  • 日期时间:
    timestamp [with time zone]:8位日期时间
    date:4位日期
    time[with time zone]:时间
    interval [fields]:时间间隔
    系统内部所有与时区相关的日期时间存的都是UTC时间,可以使用timezone参数指定本地时间

 

你可能感兴趣的:(PostgreSQL,数学建模)