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 -p 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';

浙公网安备 33010602011771号