postgresql数据库

便捷实用工具:pgAdmin

详见:PostgreSQL 教程 | 菜鸟教程 (runoob.com)

一、简介

PostgreSQL 特征

  • 函数:通过函数,可以在数据库服务器端执行指令程序。

  • 索引:用户可以自定义索引方法,或使用内置的 B 树,哈希表与 GiST 索引。

  • 触发器:触发器是由SQL语句查询所触发的事件。如:一个INSERT语句可能触发一个检查数据完整性的触发器。触发器通常由INSERT或UPDATE语句触发。 多版本并发控制:PostgreSQL使用多版本并发控制(MVCC,Multiversion concurrency control)系统进行并发控制,该系统向每个用户提供了一个数据库的"快照",用户在事务内所作的每个修改,对于其他的用户都不可见,直到该事务成功提交。

  • 规则:规则(RULE)允许一个查询能被重写,通常用来实现对视图(VIEW)的操作,如插入(INSERT)、更新(UPDATE)、删除(DELETE)。

  • 数据类型:包括文本、任意精度的数值数组、JSON 数据、枚举类型、XML 数据

    等。
  • 全文检索:通过 Tsearch2 或 OpenFTS,8.3版本中内嵌 Tsearch2。

  • NoSQL:JSON,JSONB,XML,HStore 原生支持,至 NoSQL 数据库的外部数据包装器。

  • 数据仓库:能平滑迁移至同属 PostgreSQL 生态的 GreenPlum,DeepGreen,HAWK 等,使用 FDW 进行 ETL。

二、实操

1. PGPASSWORD=postgres  createdb -h localhost -p 5432 -U postgres testthres(非交互式创建数据库testthres)

同上: PGPASSWORD=picc@123 /usr/local/postgresql/bin/psql -U jiang postgres -h 10.252.48.100 -c 'create database jiang;'

2.查询用户密码,给用户修改密码(默认登录用户是postgres。密码是MD5值)

postgres=# select usename,passwd from pg_shadow;

postgres=# \password postgres;

 

3.进入数据库

psql -U postgres 

psql  -U postgres -w   (-w免密登录)

 

4.使用 \l 用于查看已经存在的数据库

 

5.\c + 数据库名 来进入数据库

 

6.$ psql -h localhost -5432 -U postgress runoobdb (非交互式进入数据库)

 

7.删除数据库

DROP DATABASE  dbnames;

 

 

 8.非交互书删除数据库(只用超级管理源或执行者才能用)

PGPASSWORD=postgres dropdb -h localhost -p 5432 -U postgres runoobdb

 

9.CREATE TABLE 是一个关键词,用于告诉数据库系统将创建一个数据表。

9.1CREATE TABLE COMPANY(

   ID INT PRIMARY KEY     NOT NULL,
   NAME           TEXT    NOT NULL,
   AGE            INT     NOT NULL,
   ADDRESS        CHAR(50),
   SALARY         REAL
);


CREATE TABLE DEPARTMENT(
   ID INT PRIMARY KEY      NOT NULL,
   DEPT           CHAR(50) NOT NULL,
   EMP_ID         INT      NOT NULL
);


9.2 使用 \d 命令来查看表格是否创建成功

 

9.3  \d tablename 查看表格信息

  

 10.删除表格

DROP TABLE table_names;

drop table department, company;(可以删除多个表格)

 

三、postgres数据库模式

 

PostgreSQL 模式(SCHEMA)可以看着是一个表的集合。

 

一个模式可以包含视图、索引、数据类型、函数和操作符等。

 

相同的对象名称可以被用于不同的模式中而不会出现冲突,例如 schema1 和 myschema 都可以包含名为 mytable 的表。

 

使用模式的优势:

 

  • 允许多个用户使用一个数据库并且不会互相干扰。

  • 将数据库对象组织成逻辑组以便更容易管理。

  • 第三方应用的对象可以放在独立的模式中,这样它们就不会与其他对象的名称发生冲突。

 

模式类似于操作系统层的目录,但是模式不能嵌套。

 1.创建模式

runoobdb=# create schema myschema;
CREATE SCHEMA

2.在模式下创建表

runoobdb=# create table myschema.company(
ID   INT              NOT NULL,
SALARY   DECIMAL (18, 2),
   PRIMARY KEY (ID)
);

3.查询模式下的表

runoobdb=# select * from myschema.company;
 id | name | age | address | salary 
----+------+-----+---------+--------
(0 rows)

4.删除模式,

DROP SCHEMA myschema;  (删除一个为空的模式)
DROP SCHEMA myschema CASCADE;  (删除一个模式以及其中包含的所有对象:)

5.查看访问pg数据库进程列表

select datname,query_start,pid,state from pg_stat_activity where state='active';

查看指定数据库kubeku的使用情况

select datname,query,pid,state from pg_stat_activity where datname='sany';

 

 

 

 
posted @ 2021-11-04 20:10  JASON_yul  阅读(343)  评论(0)    收藏  举报