Linux系統:Centos7下搭建PostgreSQL關係型資料庫

  • 2020 年 4 月 12 日
  • 筆記

本文源碼:GitHub·點這裡 || GitEE·點這裡

一、PostgreSQL簡介

1、資料庫簡介

PostgreSQL是一個功能強大的開源資料庫系統,具有可靠性、穩定性、數據一致性等特點,且可以運行在所有主流作業系統上,包括Linux、Unix、Windows等。PostgreSQL是完全的事務安全性資料庫,完整地支援外鍵、聯合、視圖、觸發器和存儲過程,支援了大多數的SQL:2008標準的數據類型,包括整型、數值型、布爾型、位元組型、字元型、日期型、時間間隔型和時間型,它也支援存儲二進位的大對像,包括圖片、聲音和影片。對很多高級開發語言有原生的編程介面API,如C/C++、Java、等,也包含各種文檔。

2、高度開源

PostgreSQL的源程式碼可以自由獲取,它的授權是在非常自由的開源授權下,這種授權允許用戶在各種開源或是閉源項目中使用、修改和發布PostgreSQL的源程式碼。用戶對源程式碼的可以按用戶意願進行任何修改、改進。因此,PostgreSQL不僅是一個強大的企業級資料庫系統,也是一個用戶可以開發私用、網路和商業軟體產品的資料庫開發平台。

二、Centos7下安裝

1、安裝RPM

RPM軟體包管理器,一種用於互聯網下載包的打包及安裝工具,它包含在部分Linux分發版中。

yum install https://download.postgresql.org/pub/repos/yum/reporpms/EL-7-x86_64/pgdg-redhat-repo-latest.noarch.rpm  

2、安裝客戶端

yum install postgresql11  

3、安裝伺服器端

yum install postgresql11-server  

4、安裝依賴包

yum install postgresql11-libs  yum install postgresql11-contrib  yum install postgresql11-devel  

5、初始化和啟動

/usr/pgsql-11/bin/postgresql-11-setup initdb  systemctl enable postgresql-11  systemctl start postgresql-11  

6、重置密碼

passwd postgres  

7、登錄服務

su - postgres  psql  

8、安裝Vim命令

yum -y install vim*  

9、配置遠程訪問

# 修改01  vim /var/lib/pgsql/11/data/postgresql.conf  listen_addresses = 'localhost'  修改為  listen_addresses = '*'    # 修改02  vim /var/lib/pgsql/11/data/pg_hba.conf  添加內容  host  all  all  0.0.0.0/0 trust ## 修改後需要重啟  

10、開放埠

firewall-cmd --query-port=5432/tcp    firewall-cmd --add-port=5432/tcp    firewall-cmd --add-port=5432/tcp --zone=public --permanent  

11、重新啟動

systemctl restart postgresql-11  

三、創建資料庫

1、創建用戶

CREATE USER root01 WITH PASSWORD '123456';  CREATE ROLE;  

2、創建資料庫

CREATE DATABASE db_01 OWNER root01;  CREATE DATABASE;  

3、許可權授予

GRANT ALL PRIVILEGES ON DATABASE db_01 TO root01;  GRANT  

4、退出命令

q:退出SQL編輯  exit:退出腳本  

四、基本操作

1、創建表結構

-- 用戶表  CREATE TABLE pq_user (  	ID INT NOT NULL,  	user_name VARCHAR (32) NOT NULL,  	user_age int4 NOT NULL,  	create_time TIMESTAMP (6) DEFAULT CURRENT_TIMESTAMP,  	CONSTRAINT "pg_user_pkey" PRIMARY KEY ("id")  );    -- 訂單表  CREATE TABLE pq_order (  	id int not null,  	user_id int not null,  	order_no varchar (32) not null,  	goods varchar (20) not null,  	price money not null,  	count_num int default 1,  	create_time timestamp (6) default current_timestamp,  	constraint "pq_order_pkey" primary key ("id")  );  

2、寫入數據

INSERT INTO pq_user ("id", "user_name", "user_age", "create_time")  VALUES ('1', 'user01', '18', '2020-04-09 19:44:57.16154');  INSERT INTO pq_order ("id", "user_id", "order_no", "goods", "price", "count_num", "create_time")  VALUES ('1', '1', 'NO20200329652362', '書籍', '$12.20', '3', '2020-04-09 20:01:09.660208');  

3、常規查詢

-- 基礎查詢  select * from pq_user t1 where t1.id='2' and t1.user_name='user01';  select * from pq_user t1 where t1.id !='2' order by create_time desc;  -- 連接查詢  select * from pq_user t1 join pq_order t2 on t1.id=t2.user_id;  select * from pq_user t1 left join pq_order t2 on t1.id=t2.user_id;  

4、更新和刪除

-- 更新數據  UPDATE pq_user SET "create_time"='2020-04-09 19:49:57' WHERE ("id"='2');  -- 刪除記錄  DELETE FROM pq_user WHERE "id" = 2;  

五、源程式碼地址

GitHub·地址  https://github.com/cicadasmile/linux-system-base  GitEE·地址  https://gitee.com/cicadasmile/linux-system-base  

推薦閱讀:環境安裝

序號 文章標題
01 Centos7下安裝Jdk8、Tomcat8、MySQL5.7環境
02 Centos7下搭建Redis單台和Redis集群服務
03 Centos7下搭建Rocketmq4.3中間件,配置監控台
04 Centos7下搭建ZooKeeper3.4中間件,常用命令總結
05 Centos7下搭建ElasticSearch中間件,常用介面演示
06 Centos7下搭建Nginx,FastDFS文件管理中間件
07 Centos7下搭建ClickHouse列式存儲資料庫