PostgreSQL入門簡(jiǎn)介
PostgreSQL簡(jiǎn)介

PostgreSQL是一個(gè)免費(fèi)的對(duì)象-關(guān)系型數(shù)據(jù)庫(kù)服務(wù)器(ORDBMS),遵循靈活的開(kāi)源協(xié)議BSD。
PostgreSQL開(kāi)發(fā)者將其念作post-gres-Q-L。
PostgreSQL目前是世界上最先進(jìn)的開(kāi)源關(guān)系型數(shù)據(jù)庫(kù),支持豐富的數(shù)據(jù)類型(如JSON、JSONB、數(shù)組類型及二進(jìn)制大對(duì)象)和自定義類型。提供了豐富的接口。很容易拓展它的功能,如可以在GIST框架下實(shí)現(xiàn)自己的索引類型等。
PostgreSQL是完全的事務(wù)安全性數(shù)據(jù)庫(kù),完整地支持外鍵、視圖、觸發(fā)器和存儲(chǔ)過(guò)程(函數(shù)),并支持多種語(yǔ)言開(kāi)發(fā)存儲(chǔ)過(guò)程,如PL/PGSQL、Perl、Python等。
PostgreSQL對(duì)很多高級(jí)開(kāi)發(fā)語(yǔ)言有原生的編程接口,如C/C++、Java、.Net、Perl、Python、Ruby、Tcl 和ODBC以及其他語(yǔ)言等。
在中國(guó),瀚高數(shù)據(jù)庫(kù)是唯一的PostgreSQL商業(yè)發(fā)行版公司。
什么是數(shù)據(jù)庫(kù)?
數(shù)據(jù)庫(kù)(Database)是按照數(shù)據(jù)結(jié)構(gòu)來(lái)組織、存儲(chǔ)和管理數(shù)據(jù)的倉(cāng)庫(kù)。
每個(gè)數(shù)據(jù)庫(kù)都有一個(gè)或多個(gè)不同的 API 用于創(chuàng)建,訪問(wèn),管理,搜索和復(fù)制所保存的數(shù)據(jù)。
我們也可以將數(shù)據(jù)存儲(chǔ)在文件中,但是在文件中讀寫數(shù)據(jù)速度相對(duì)較慢。
所以,現(xiàn)在我們使用關(guān)系型數(shù)據(jù)庫(kù)管理系統(tǒng)(RDBMS)來(lái)存儲(chǔ)和管理的大數(shù)據(jù)量。所謂的關(guān)系型數(shù)據(jù)庫(kù),是建立在關(guān)系模型基礎(chǔ)上的數(shù)據(jù)庫(kù),借助于集合代數(shù)等數(shù)學(xué)概念和方法來(lái)處理數(shù)據(jù)庫(kù)中的數(shù)據(jù)。
RDBMS 是關(guān)系數(shù)據(jù)庫(kù)管理系統(tǒng),是建立實(shí)體之間的聯(lián)系,最后得到的是關(guān)系表。
ORDBMS(對(duì)象關(guān)系數(shù)據(jù)庫(kù)系統(tǒng))是面向?qū)ο蠹夹g(shù)與傳統(tǒng)的關(guān)系數(shù)據(jù)庫(kù)相結(jié)合的產(chǎn)物,查詢處理是 ORDBMS 的重要組成部分,它的性能優(yōu)劣將直接影響到DBMS 的性能。ORDBMS在原來(lái)關(guān)系數(shù)據(jù)庫(kù)的基礎(chǔ)上,增加了一些新的特性。
OODBMS 面向?qū)ο髷?shù)據(jù)庫(kù)管理系統(tǒng),將所有實(shí)體都看著對(duì)象,并將這些對(duì)象類進(jìn)行封裝,對(duì)象之間的通信通過(guò)消息 OODBMS 對(duì)象關(guān)系數(shù)據(jù)庫(kù)在實(shí)質(zhì)上還是關(guān)系數(shù)據(jù)庫(kù) 。
一、PostgreSQL數(shù)據(jù)庫(kù)安裝
1)YUM安裝
* 安裝存儲(chǔ)庫(kù) 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 * 安裝服務(wù)端 sudo yum install postgresql-server * 安裝拓展包 sudo yum install postgresql-devel.x86_64 * 安裝附加模塊 sudo yum install postgresql-contrib.x86_64
2)驗(yàn)證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)配置數(shù)據(jù)庫(kù)
* 初始化數(shù)據(jù)庫(kù) sudo /usr/bin/postgresql-setup initdb * 啟動(dòng)postgresql服務(wù) sudo systemctl start postgresql * 設(shè)置開(kāi)機(jī)自啟動(dòng) sudo systemctl enable postgresql * 登錄postgresql su - postgres psql -U postgres * 修改postgres用戶密碼 ALTER USER postgres with encrypted password 'postgres';
4)遠(yuǎn)程配置 開(kāi)啟遠(yuǎn)程訪問(wèn)
sudo vi /var/lib/pgsql/data/postgresql.conf
listen_addresses = '*' # what IP address(es) to listen on;
信任遠(yuǎn)程連接
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服務(wù)
systemctl restart postgresql 5)psql連接 連接命令
psql -d postgres -h 192.168.9.139 -p 5432 -U postgres
6)用戶管理
-- 創(chuàng)建用戶 CREATE USER admin WITH PASSWORD '123456'; -- 修改密碼 ALTER USER admin with encrypted password 'admin';
連接驗(yàn)證
psql -d postgres -h 192.168.9.139 -p 5432 -U admin
二、數(shù)據(jù)庫(kù)操作
1)創(chuàng)建數(shù)據(jù)庫(kù)
* 普通創(chuàng)建 CREATE DATABASE pgdb; * 創(chuàng)建指定用戶數(shù)據(jù)庫(kù) CREATE DATABASE pgadmindb OWNER admin; GRANT ALL PRIVILEGES ON DATABASE pgadmindb TO admin;
2)刪除數(shù)據(jù)庫(kù)
* 普通刪除 DROP DATABASE pgdb; * 判斷數(shù)據(jù)庫(kù)存在后再刪除 DROP DATABASE IF EXISTS pgdb;
3)其它操作
* 切換數(shù)據(jù)庫(kù) \c pgdb; * 退出數(shù)據(jù)庫(kù) \q
三、數(shù)據(jù)表操作
1)創(chuàng)建表
CREATE TABLE numerical ( "a" int4, "b" int4 );
2)刪除表
DROP TABLE IF EXISTS numerical;
3)加載數(shù)據(jù)
INSERT INTO numerical (SELECT i, i + 1 FROM generate_series(1, 10000) AS i);
4)清空數(shù)據(jù)表
truncate table numerical;
5)查詢
* 統(tǒng)計(jì)查詢 SELECT COUNT(1) FROM numerical; * 累計(jì)查詢 SELECT SUM(a) FROM numerical; * 平均查詢 SELECT SUM(a)/COUNT(1) FROM numerical;
到此這篇關(guān)于PostgreSQL入門簡(jiǎn)介的文章就介紹到這了,更多相關(guān)PostgreSQL入門內(nèi)容請(qǐng)搜索腳本之家以前的文章或繼續(xù)瀏覽下面的相關(guān)文章希望大家以后多多支持腳本之家!
相關(guān)文章
postgresql 數(shù)據(jù)庫(kù) 與TimescaleDB 時(shí)序庫(kù) join 在一起
這篇文章主要介紹了postgresql 數(shù)據(jù)庫(kù) 與TimescaleDB 時(shí)序庫(kù) join 在一起,需要的朋友可以參考下2020-12-12
sqoop 實(shí)現(xiàn)將postgresql表導(dǎo)入hive表
這篇文章主要介紹了sqoop 實(shí)現(xiàn)將postgresql表導(dǎo)入hive表,具有很好的參考價(jià)值,希望對(duì)大家有所幫助。一起跟隨小編過(guò)來(lái)看看吧2020-12-12
PostgreSQL 實(shí)現(xiàn)列轉(zhuǎn)行問(wèn)題
這篇文章主要介紹了PostgreSQL 實(shí)現(xiàn)列轉(zhuǎn)行問(wèn)題,具有很好的參考價(jià)值,希望對(duì)大家有所幫助。一起跟隨小編過(guò)來(lái)看看吧2021-01-01
PgSQl臨時(shí)表創(chuàng)建及應(yīng)用實(shí)例解析
這篇文章主要介紹了PgSQl臨時(shí)表創(chuàng)建及應(yīng)用實(shí)例解析,文中通過(guò)示例代碼介紹的非常詳細(xì),對(duì)大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價(jià)值,需要的朋友可以參考下2020-12-12
Navicat連接postgresql時(shí)出現(xiàn)'datlastsysoid?does?not?exist&
這篇文章主要給大家介紹了關(guān)于Navicat連接postgresql時(shí)出現(xiàn)'datlastsysoid?does?not?exist'報(bào)錯(cuò)問(wèn)題的完美解決辦法,文中通過(guò)圖文介紹的非常詳細(xì),需要的朋友可以參考下2024-02-02
基于postgresql查詢某個(gè)字段屬于哪個(gè)表的說(shuō)明
這篇文章主要介紹了基于postgresql查詢某個(gè)字段屬于哪個(gè)表的說(shuō)明,具有很好的參考價(jià)值,希望對(duì)大家有所幫助。一起跟隨小編過(guò)來(lái)看看吧2021-01-01
基于PostgreSQL/openGauss?的分布式數(shù)據(jù)庫(kù)解決方案
ShardingSphere-Proxy?作為透明數(shù)據(jù)庫(kù)代理,用戶無(wú)需關(guān)心?Proxy?如何協(xié)調(diào)背后的數(shù)據(jù)庫(kù)。今天通過(guò)本文給大家介紹基于PostgreSQL/openGauss?的分布式數(shù)據(jù)庫(kù)解決方案,感興趣的朋友跟隨小編一起看看吧2021-12-12
PostgreSQL 如何修改文本類型字段的存儲(chǔ)方式
這篇文章主要介紹了PostgreSQL 如何修改文本類型字段的存儲(chǔ)方式,具有很好的參考價(jià)值,希望對(duì)大家有所幫助。一起跟隨小編過(guò)來(lái)看看吧2020-12-12

