PostgreSQL入门简介

PostgreSQL简介

PostgreSQL是一个免费的对象-关系型数据库服务器(ORDBMS),遵循灵活的开源协议BSD。

PostgreSQL开发者将其念作post-gres-Q-L。

PostgreSQL目前是世界上最先进的开源关系型数据库,支持丰富的数据类型(如JSON、JSONB、数组类型及二进制大对象)和自定义类型。提供了丰富的接口。很容易拓展它的功能,如可以在GIST框架下实现自己的索引类型等。

PostgreSQL是完全的事务安全性数据库,完整地支持外键、视图、触发器和存储过程(函数),并支持多种语言开发存储过程,如PL/PGSQL、Perl、Python等。

PostgreSQL对很多高级开发语言有原生的编程接口,如C/C++、Java、.Net、Perl、Python、Ruby、Tcl 和ODBC以及其他语言等。

在中国,瀚高数据库是唯一的PostgreSQL商业发行版公司。

什么是数据库?

数据库(Database)是按照数据结构来组织、存储和管理数据的仓库。

每个数据库都有一个或多个不同的 API 用于创建,访问,管理,搜索和复制所保存的数据。

我们也可以将数据存储在文件中,但是在文件中读写数据速度相对较慢。

所以,现在我们使用关系型数据库管理系统(RDBMS)来存储和管理的大数据量。所谓的关系型数据库,是建立在关系模型基础上的数据库,借助于集合代数等数学概念和方法来处理数据库中的数据。

RDBMS 是关系数据库管理系统,是建立实体之间的联系,最后得到的是关系表。

ORDBMS(对象关系数据库系统)是面向对象技术与传统的关系数据库相结合的产物,查询处理是 ORDBMS 的重要组成部分,它的性能优劣将直接影响到DBMS 的性能。ORDBMS在原来关系数据库的基础上,增加了一些新的特性。

OODBMS 面向对象数据库管理系统,将所有实体都看着对象,并将这些对象类进行封装,对象之间的通信通过消息 OODBMS 对象关系数据库在实质上还是关系数据库 。

一、PostgreSQL数据库安装

1)YUM安装

* 安装存储库
sudo yum install https://download.postgresql.org/pub/repos/yum/10/redhat/rhel-7-x86_64/pgdg-redhat-repo-42.0-11.noarch.rpm
* 安装客户端
sudo yum install postgresql
* 安装服务端
sudo yum install postgresql-server
* 安装拓展包
sudo yum install postgresql-devel.x86_64
* 安装附加模块
sudo yum install postgresql-contrib.x86_64 

2)验证postgresql安装

# rpm -qa | grep postgresql
postgresql-libs-9.2.23-3.el7_4.x86_64
postgresql-9.2.23-3.el7_4.x86_64
postgresql-server-9.2.23-3.el7_4.x86_64

3)配置数据库

* 初始化数据库
sudo /usr/bin/postgresql-setup initdb

* 启动postgresql服务
sudo systemctl start postgresql

* 设置开机自启动
sudo systemctl enable postgresql

* 登录postgresql
su - postgres
psql -U postgres

* 修改postgres用户密码
ALTER USER postgres with encrypted password 'postgres';

4)远程配置 开启远程访问
sudo vi /var/lib/pgsql/data/postgresql.conf

listen_addresses = '*'     # what IP address(es) to listen on;

信任远程连接
sudo vi /var/lib/pgsql/data/pg_hba.conf

# IPv4 local connections:
host  all       all       127.0.0.1/32      trust
host  all       all       192.168.9.139/32    trust

重启postgresql服务
systemctl restart postgresql 5)psql连接 连接命令

psql -d postgres -h 192.168.9.139 -p 5432 -U postgres

6)用户管理

-- 创建用户
CREATE USER admin WITH PASSWORD '123456';
-- 修改密码
ALTER USER admin with encrypted password 'admin';

连接验证
psql -d postgres -h 192.168.9.139 -p 5432 -U admin

二、数据库操作

1)创建数据库

* 普通创建
  CREATE DATABASE pgdb;

* 创建指定用户数据库
  CREATE DATABASE pgadmindb OWNER admin;
  GRANT ALL PRIVILEGES ON DATABASE pgadmindb TO admin;

2)删除数据库

* 普通删除
  DROP DATABASE pgdb;

* 判断数据库存在后再删除
  DROP DATABASE IF EXISTS pgdb;

3)其它操作

* 切换数据库
  \c pgdb;

* 退出数据库
  \q

三、数据表操作

1)创建表

CREATE TABLE numerical (
 "a" int4,
 "b" int4
);

2)删除表

DROP TABLE IF EXISTS numerical;

3)加载数据

INSERT INTO numerical (SELECT i, i + 1 FROM generate_series(1, 10000) AS i);

4)清空数据表

truncate table numerical;

5)查询

* 统计查询
SELECT COUNT(1) FROM numerical;

* 累计查询
SELECT SUM(a) FROM numerical;

* 平均查询
SELECT SUM(a)/COUNT(1) FROM numerical;

到此这篇关于PostgreSQL入门简介的文章就介绍到这了,更多相关PostgreSQL入门内容请搜索我们以前的文章或继续浏览下面的相关文章希望大家以后多多支持我们!

(0)

相关推荐

  • PostgreSQL新手入门教程

    自从MySQL被Oracle收购以后,PostgreSQL逐渐成为开源关系型数据库的首选. 本文介绍PostgreSQL的安装和基本用法,供初次使用者上手.以下内容基于Debian操作系统,其他操作系统实在没有精力兼顾,但是大部分内容应该普遍适用. 安装 1.首先,安装PostgreSQL客户端. sudo apt-get install postgresql-client 然后,安装PostgreSQL服务器. sudo apt-get install postgresql 2.正常情况下,安

  • PostgreSQL管理工具phpPgAdmin入门指南

    一.安装phpPgAdmin将下载的压缩包解压 对于 tar.gz 执行如下命令: 复制代码 代码如下: gunzip phpPgAdmin-*.tar.gztar -xvf phpPgAdmin-*.tar 对于 tar.bz2 执行如下命令: 复制代码 代码如下: bunzip2 phpPgAdmin-*.tar.bz2tar -xvf phpPgAdmin-*.tar 对于 .zip 执行如下命令: 复制代码 代码如下: unzip phpPgAdmin-*.zip 二. 配置 phpPg

  • PostgreSql新手必学入门命令小结

    1.命令行登录数据库 有两种方式,一是直接在系统shell下执行psql命令:而是先进入psql环境,然后再连接数据库.下面分别给出实例: (1)直接登录 执行命令:psql -h 172.16.35.179 -U username -d dbname ,其中username为数据库用户名,dbname为要连接的数据库名,执行后提示输入密码如下: 复制代码 代码如下: Password for user username: (在此输入密码) 输入密码后即可进入psql环境了. (2)切换数据库

  • PostgreSQL入门简介

    PostgreSQL简介 PostgreSQL是一个免费的对象-关系型数据库服务器(ORDBMS),遵循灵活的开源协议BSD. PostgreSQL开发者将其念作post-gres-Q-L. PostgreSQL目前是世界上最先进的开源关系型数据库,支持丰富的数据类型(如JSON.JSONB.数组类型及二进制大对象)和自定义类型.提供了丰富的接口.很容易拓展它的功能,如可以在GIST框架下实现自己的索引类型等. PostgreSQL是完全的事务安全性数据库,完整地支持外键.视图.触发器和存储过程

  • Spark入门简介

    SPARK Apache Spark 是专为大规模数据处理而设计的快速通用的计算引擎.Spark是UC Berkeley AMP lab (加州大学伯克利分校的AMP实验室)所开源的类Hadoop MapReduce的通用并行框架,Spark,拥有Hadoop MapReduce所具有的优点:但不同于MapReduce的是Job中间输出结果可以保存在内存中,从而不再需要读写HDFS,因此Spark能更好地适用于数据挖掘与机器学习等需要迭代的MapReduce的算法. Spark 是一种与 Had

  • Android开发之InetAddress基础入门简介与源码实例

    最近在学习soket编程中,看到有需要获取到IP地址之类的需求,所以就去看了下如何获取到主机名的IP地址. 其实就是需要用到一个类InetAddress.他是在java.net包下面. InetAddress类的对象用于IP地址和域名,该类提供以下方法: getByName(String s):获得一个InetAddress 类的对象,该对象中含有主机的IP地址和域名,该对象用如下格式表示它包含的信息:www.sina.com.cn/202.108.37.40: String getHostNa

  • Python-基础-入门 简介

    Python简介及入门 python为什么是python 选择自己喜欢的语言,这往往不容易,更多的是根据需求 话说,之前是java,大学用了三年+实习半年,后来入职做测试开发后,碰到了python 到最后,转python开发了 写起来快,缩进,不用打花括号,省手指,读起来舒服-.. 喜欢,貌似不需要什么太牛的理由,用着顺手舒服就行 什么语言之争,编辑器之战啥的,能忽略就忽略吧,能无视就无视吧,工具,够用,用这舒服就ok了,浪费口水精力争来争去图个啥呢 Life is short, I use p

  • Python IDLE入门简介

    IDLE是Python软件包自带的一个集成开发环境,初学者可以利用它方便地创建.运行.测试和调试Python程序. 参考: pip和pygal的安装实例教程 Python(一)运行环境搭建 一.IDLE的安装 实际上,IDLE是跟Python一起安装的,不过要确保安装时选中了"Tcl/Tk"组件,准确地说,应该是不要取消该组件,因为默认时该组件是处于选中状态的. 二.IDLE的启动 安装Python后,我们可以从"开始"菜单→"所有程序"→&qu

  • laravel入门知识点整理

    laravel入门 简介 作为PHP最常用的框架之一,Laravel的框架目录布置得尤其清晰,适用于各种类型的项目开发.今天来记录下laravel入门需要熟悉的知识点. 1.根目录 其中,public/index.php是项目的入口文件 2.配置 1)config目录 该文件夹下面,包含的是各种配置文件.包括mysql数据库连接信息,redis,自定义的配置文件信息等等 2).env文件 用以存储一些依赖环境的变量,比如数据库配置,因为它不会被加入到版本库中, 所以还用以配置一些敏感信息:比如正

  • java 重试框架 sisyphus 入门介绍

    What is Sisyphus sisyphus综合了 spring-retry 和 gauva-retrying 的优势,使用起来也非常灵活. 为什么选择这个名字 我觉得重试做的事情和西西弗斯很相似. 一遍遍的重复,可能徒劳无功,但是乐此不疲. 人一定要想象西西弗斯的快乐.--加缪 其他原因 以前看了 java retry 的相关框架, 虽然觉得其中有很多不足之处.但是没有任何重复造轮子的冲动,觉得是徒劳无功的. 当然这段时间也看了 Netty 的接口设计,和 Hibernate-Valid

  • Spark实现K-Means算法代码示例

    K-Means算法是一种基于距离的聚类算法,采用迭代的方法,计算出K个聚类中心,把若干个点聚成K类. MLlib实现K-Means算法的原理是,运行多个K-Means算法,每个称为run,返回最好的那个聚类的类簇中心.初始的类簇中心,可以是随机的,也可以是KMean||得来的,迭代达到一定的次数,或者所有run都收敛时,算法就结束. 用Spark实现K-Means算法,首先修改pom文件,引入机器学习MLlib包: <dependency> <groupId>org.apache.

  • XML指南——XML元素

    XML元素是可以扩展的,它们之间有关联. XML元素有简单的命名规则. XML元素是可以扩展的 XML文档可以被扩展一边携带更多的信息. 请看下面的XML便条例子: <note> <to>Lin</to> <from>Ordm</from> <body>Don't forget me this weekend!</body> </note> 让我们来设想一个能够读取此XML文档的并能解读其中XML元素(<

  • SparkGraphx计算指定节点的N度关系节点源码

    直接上代码: package horizon.graphx.util import java.security.InvalidParameterException import horizon.graphx.util.CollectionUtil.CollectionHelper import org.apache.spark.graphx._ import org.apache.spark.rdd.RDD import org.apache.spark.storage.StorageLevel

随机推荐