前往小程序,Get更优阅读体验!
立即前往
首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
MCP广场
社区首页 >专栏 >PostgreSQL-快速启动,新手上路

PostgreSQL-快速启动,新手上路

作者头像
朱明豪
修改于 2020-03-16 03:05:42
修改于 2020-03-16 03:05:42
1.2K00
代码可运行
举报
文章被收录于专栏:“豪”无疑问“豪”无疑问
运行总次数:0
代码可运行

快速安装启动PostgreSQL,完成基本操作。通过实践,逐步揭开PostgreSQL的面纱。

1.安装

代码语言:javascript
代码运行次数:0
运行
AI代码解释
复制
yum install -y postgresql-server postgresql postgresql-libs

2.初始化数据库

代码语言:javascript
代码运行次数:0
运行
AI代码解释
复制
postgresql-setup initdb

3.服务停止、服务启动

代码语言:javascript
代码运行次数:0
运行
AI代码解释
复制
[root@mysql8 ~]# systemctl stop postgresql.service  
[root@mysql8 ~]# systemctl status postgresql.service
● postgresql.service - PostgreSQL database server
   Loaded: loaded (/usr/lib/systemd/system/postgresql.service; disabled; vendor preset: disabled)
   Active: inactive (dead)
Mar 06 23:22:57 mysql8 systemd[1]: Starting PostgreSQL database server...
Mar 06 23:22:57 mysql8 systemd[1]: postgresql.service: control process exited, code=exited status=1
Mar 06 23:22:57 mysql8 systemd[1]: Failed to start PostgreSQL database server.
Mar 06 23:22:57 mysql8 systemd[1]: Unit postgresql.service entered failed state.
Mar 06 23:22:57 mysql8 systemd[1]: postgresql.service failed.
Mar 06 23:26:37 mysql8 systemd[1]: Starting PostgreSQL database server...
Mar 06 23:26:38 mysql8 systemd[1]: Started PostgreSQL database server.
Mar 06 23:26:57 mysql8 systemd[1]: Stopping PostgreSQL database server...
Mar 06 23:26:58 mysql8 systemd[1]: Stopped PostgreSQL database server.
[root@mysql8 ~]# systemctl start postgresql.service
[root@mysql8 ~]# systemctl status postgresql.service
● postgresql.service - PostgreSQL database server
   Loaded: loaded (/usr/lib/systemd/system/postgresql.service; disabled; vendor preset: disabled)
   Active: active (running) since Fri 2020-03-06 23:26:38 CST; 3s ago
  Process: 1695 ExecStart=/usr/bin/pg_ctl start -D ${PGDATA} -s -o -p ${PGPORT} -w -t 300 (code=exited, status=0/SUCCESS)
  Process: 1690 ExecStartPre=/usr/bin/postgresql-check-db-dir ${PGDATA} (code=exited, status=0/SUCCESS)
Main PID: 1698 (postgres)
   CGroup: /system.slice/postgresql.service
           ├─1698 /usr/bin/postgres -D /var/lib/pgsql/data -p 5432
           ├─1699 postgres: logger process   
           ├─1701 postgres: checkpointer process   
           ├─1702 postgres: writer process   
           ├─1703 postgres: wal writer process   
           ├─1704 postgres: autovacuum launcher process   
           └─1705 postgres: stats collector process   
Mar 06 23:26:37 mysql8 systemd[1]: Starting PostgreSQL database server...
Mar 06 23:26:38 mysql8 systemd[1]: Started PostgreSQL database server.

4.登陆数据库

代码语言:javascript
代码运行次数:0
运行
AI代码解释
复制
[root@mysql8 ~]# su - postgres
Last login: Fri Mar  6 23:32:22 CST 2020 on pts/0
-bash-4.2$ psql
psql (9.2.24)
Type "help" for help.
postgres=#

5.新手初试

代码语言:javascript
代码运行次数:0
运行
AI代码解释
复制
postgres=# select current_database();
current_database
------------------
postgres
(1 row)
postgres=# select current_user;
current_user
--------------
postgres
(1 row)
postgres=# select inet_server_addr(),inet_server_port();
inet_server_addr | inet_server_port
------------------+------------------
                  |                 
(1 row)
postgres=# select version();
                                                    version                                                    
---------------------------------------------------------------------------------------------------------------
PostgreSQL 9.2.24 on x86_64-redhat-linux-gnu, compiled by gcc (GCC) 4.8.5 20150623 (Red Hat 4.8.5-39), 64-bit
(1 row)
postgres=# \conninfo
You are connected to database "postgres" as user "postgres" via socket in "/var/run/postgresql" at port "5432".
帮助命令
postgres=# help
You are using psql, the command-line interface to PostgreSQL.
Type:  \copyright for distribution terms
       \h for help with SQL commands
       \? for help with psql commands
       \g or terminate with semicolon to execute query
       \q to quit
postgres=# \h delete
Command:     DELETE
Description: delete rows of a table
Syntax:
[ WITH [ RECURSIVE ] with_query [, ...] ]
DELETE FROM [ ONLY ] table_name [ * ] [ [ AS ] alias ]
    [ USING using_list ]
    [ WHERE condition | WHERE CURRENT OF cursor_name ]
    [ RETURNING * | output_expression [ [ AS ] output_name ] [, ...] ]
postgres=# \quit

6.DML操作,生成数据

代码语言:javascript
代码运行次数:0
运行
AI代码解释
复制
#1.数据库创建
postgres=# create database test;
CREATE DATABASE
Time: 318.572 ms
postgres=# select * from pg_database;
  datname  | datdba | encoding | datcollate  |  datctype   | datistemplate | datallowconn | datconnlimit | datlastsysoid | datf
rozenxid | dattablespace |               datacl                
-----------+--------+----------+-------------+-------------+---------------+--------------+--------------+---------------+-----
---------+---------------+-------------------------------------
template1 |     10 |        6 | en_US.UTF-8 | en_US.UTF-8 | t             | t            |           -1 |         12921 |     
    1882 |          1663 | {=c/postgres,postgres=CTc/postgres}
template0 |     10 |        6 | en_US.UTF-8 | en_US.UTF-8 | t             | f            |           -1 |         12921 |     
    1882 |          1663 | {=c/postgres,postgres=CTc/postgres}
postgres  |     10 |        6 | en_US.UTF-8 | en_US.UTF-8 | f             | t            |           -1 |         12921 |     
    1882 |          1663 |
test      |     10 |        6 | en_US.UTF-8 | en_US.UTF-8 | f             | t            |           -1 |         12921 |     
    1882 |          1663 |
(4 rows)
Time: 0.460 ms
#2.切换数据库
postgres=# \l
                                  List of databases
   Name    |  Owner   | Encoding |   Collate   |    Ctype    |   Access privileges   
-----------+----------+----------+-------------+-------------+-----------------------
postgres  | postgres | UTF8     | en_US.UTF-8 | en_US.UTF-8 |
template0 | postgres | UTF8     | en_US.UTF-8 | en_US.UTF-8 | =c/postgres          +
           |          |          |             |             | postgres=CTc/postgres
template1 | postgres | UTF8     | en_US.UTF-8 | en_US.UTF-8 | =c/postgres          +
           |          |          |             |             | postgres=CTc/postgres
test      | postgres | UTF8     | en_US.UTF-8 | en_US.UTF-8 |
(4 rows)
postgres=# \c test
You are now connected to database "test" as user "postgres".
#3.删除数据库
test=# drop database test;
ERROR:  cannot drop the currently open database
Time: 0.744 ms
test=# \c postgres
You are now connected to database "postgres" as user "postgres".
postgres=# drop database test;
DROP DATABASE
Time: 108.722 ms
postgres=# \l
                                  List of databases
   Name    |  Owner   | Encoding |   Collate   |    Ctype    |   Access privileges   
-----------+----------+----------+-------------+-------------+-----------------------
postgres  | postgres | UTF8     | en_US.UTF-8 | en_US.UTF-8 |
template0 | postgres | UTF8     | en_US.UTF-8 | en_US.UTF-8 | =c/postgres          +
           |          |          |             |             | postgres=CTc/postgres
template1 | postgres | UTF8     | en_US.UTF-8 | en_US.UTF-8 | =c/postgres          +
           |          |          |             |             | postgres=CTc/postgres
(3 rows)
4.创建表
zhumh=# CREATE TABLE COMPANY(
zhumh(#    ID INT PRIMARY KEY     NOT NULL,
zhumh(#    NAME           TEXT    NOT NULL,
zhumh(#    AGE            INT     NOT NULL,
zhumh(#    ADDRESS        CHAR(50),
zhumh(#    SALARY         REAL
zhumh(# );
NOTICE:  CREATE TABLE / PRIMARY KEY will create implicit index "company_pkey" for table "company"
CREATE TABLE
Time: 15.591 ms
zhumh=# CREATE TABLE DEPARTMENT(
zhumh(#    ID INT PRIMARY KEY      NOT NULL,
zhumh(#    DEPT           CHAR(50) NOT NULL,
zhumh(#    EMP_ID         INT      NOT NULL
zhumh(# );
NOTICE:  CREATE TABLE / PRIMARY KEY will create implicit index "department_pkey" for table "department"
CREATE TABLE
Time: 10.073 ms
zhumh=# \d
           List of relations
Schema |    Name    | Type  |  Owner   
--------+------------+-------+----------
public | company    | table | postgres
public | department | table | postgres
(2 rows)
#查询表及表结构
zhumh=# \d company
       Table "public.company"
Column  |     Type      | Modifiers
---------+---------------+-----------
id      | integer       | not null
name    | text          | not null
age     | integer       | not null
address | character(50) |
salary  | real          |
Indexes:
    "company_pkey" PRIMARY KEY, btree (id)
5.删除表
zhumh=# drop table company,department;
DROP TABLE
Time: 12.968 ms
zhumh=# \d
No relations found.
6.表数据操作
zhumh=# CREATE TABLE COMPANY(
zhumh(#    ID INT PRIMARY KEY     NOT NULL,
zhumh(#    NAME           TEXT    NOT NULL,
zhumh(#    AGE            INT     NOT NULL,
zhumh(#    ADDRESS        CHAR(50),
zhumh(#    SALARY         REAL,
zhumh(#    JOIN_DATE      DATE
zhumh(# );
NOTICE:  CREATE TABLE / PRIMARY KEY will create implicit index "company_pkey" for table "company"
CREATE TABLE
Time: 7.278 ms
zhumh=# INSERT INTO COMPANY (ID,NAME,AGE,ADDRESS,SALARY,JOIN_DATE) VALUES (1, 'Paul', 32, 'California', 20000.00,'2001-07-13');
INSERT 0 1
Time: 9.043 ms
zhumh=# INSERT INTO COMPANY (ID,NAME,AGE,ADDRESS,JOIN_DATE) VALUES (2, 'Allen', 25, 'Texas', '2007-12-13');
INSERT 0 1
Time: 0.813 ms
zhumh=# INSERT INTO COMPANY (ID,NAME,AGE,ADDRESS,SALARY,JOIN_DATE) VALUES (3, 'Teddy', 23, 'Norway', 20000.00, DEFAULT );
INSERT 0 1
Time: 2.300 ms
zhumh=# INSERT INTO COMPANY (ID,NAME,AGE,ADDRESS,SALARY,JOIN_DATE) VALUES (4, 'Mark', 25, 'Rich-Mond ', 65000.00, '2007-12-13' ), (5, 'David', 27, 'Texas', 85000.00, '2007-12-13');
INSERT 0 2
Time: 0.730 ms
zhumh=# SELECT * FROM company;
id | name  | age |                      address                       | salary | join_date  
----+-------+-----+----------------------------------------------------+--------+------------
  1 | Paul  |  32 | California                                         |  20000 | 2001-07-13
  2 | Allen |  25 | Texas                                              |        | 2007-12-13
  3 | Teddy |  23 | Norway                                             |  20000 |
  4 | Mark  |  25 | Rich-Mond                                          |  65000 | 2007-12-13
  5 | David |  27 | Texas                                              |  85000 | 2007-12-13
(5 rows)
zhumh=# SELECT * FROM company where id=1;
id | name | age |                      address                       | salary | join_date  
----+------+-----+----------------------------------------------------+--------+------------
  1 | Paul |  32 | California                                         |  20000 | 2001-07-13
(1 row)
zhumh=# UPDATE COMPANY SET SALARY = 15000 WHERE ID = 3;
UPDATE 1
Time: 2.168 ms
zhumh=# DELETE FROM COMPANY WHERE ID = 2;
DELETE 1
Time: 1.975 ms
zhumh=# SELECT * FROM COMPANY LIMIT 4;
id | name  | age |                      address                       | salary | join_date  
----+-------+-----+----------------------------------------------------+--------+------------
  1 | Paul  |  32 | California                                         |  20000 | 2001-07-13
  4 | Mark  |  25 | Rich-Mond                                          |  65000 | 2007-12-13
  5 | David |  27 | Texas                                              |  85000 | 2007-12-13
  3 | Teddy |  23 | Norway                                             |  15000 |
(4 rows)
Time: 0.650 ms
基础操作参考信息:https://www.runoob.com/postgresql/postgresql-tutorial.html

7.了解你的数据库

代码语言:javascript
代码运行次数:0
运行
AI代码解释
复制
1.服务程序运行时间
postgres=# select date_trunc('second',current_timestamp - pg_postmaster_start_time()) as uptime;
  uptime  
----------
00:20:06
(1 row)
2.查询数据库下有多少张表
postgres=# select count(*) from information_schema.tables where table_schema not in ('information_schema','pg_catalog');  
count
-------
     0
(1 row)
Time: 6.106 ms
postgres=# select count(*) from information_schema.tables where table_schema = 'information_schema';     
count
-------
    66
(1 row)
3.数据库占用空间
postgres=# select pg_database_size(current_database());
pg_database_size
------------------
          6657144
(1 row)
Time: 0.955 ms
postgres=# select sum(pg_database_size(datname)) from pg_database;
   sum    
----------
26286724
(1 row)
4.表大小
postgres=# select pg_relation_size('pg_authid');                         
pg_relation_size
------------------
             8192
(1 row)
Time: 0.515 ms
postgres=# select pg_total_relation_size('pg_authid');
pg_total_relation_size
------------------------
                  73728
(1 row)
Time: 0.448 ms
postgres=# \dt+ pg_authid
                        List of relations
   Schema   |   Name    | Type  |  Owner   | Size  | Description
------------+-----------+-------+----------+-------+-------------
pg_catalog | pg_authid | table | postgres | 40 kB |
(1 row)
5.最大表
postgres=# select table_name ,pg_relation_size(table_schema || '.' ||table_name ) as size
postgres-# from information_schema.tables
postgres-# where table_schema = 'pg_catalog'
postgres-# order by size desc
postgres-# limit 10;
   table_name   |  size  
----------------+--------
pg_proc        | 507904
pg_depend      | 376832
pg_attribute   | 344064
pg_description | 245760
pg_collation   | 237568
pg_statistic   | 122880
pg_operator    | 114688
pg_rewrite     |  98304
pg_class       |  65536
pg_type        |  65536
(10 rows)
6.表的行数
postgres=# select count(*) from pg_proc;
count
-------
  2490
(1 row)
快速预估行数
postgres=# select (case when reltuples > 0 then
postgres(#         pg_relation_size('pg_proc')*reltuples/(8192*relpages)
postgres(#         else 0
postgres(#         end)::bigint as estimated_row_count
postgres-# from pg_class
postgres-# where oid = 'pg_proc'::regclass;
estimated_row_count
---------------------
                2490
(1 row)
Time: 0.711 ms
7.列出数据库扩展模块
postgres=# select * from pg_extension;
extname | extowner | extnamespace | extrelocatable | extversion | extconfig | extcondition
---------+----------+--------------+----------------+------------+-----------+--------------
plpgsql |       10 |           11 | f              | 1.0        |           |
(1 row)

本文系转载,前往查看

如有侵权,请联系 cloudcommunity@tencent.com 删除。

本文系转载,前往查看

如有侵权,请联系 cloudcommunity@tencent.com 删除。

评论
登录后参与评论
暂无评论
推荐阅读
腾讯云学生机99%抢到详细教程(图文教程)
指定配置:CPU1核、内存1G、带宽1M、赠送系统盘Linux20G/Windows50G(如超过指定配置,需补齐差价)                     
人工智能谁与争锋
2019/07/23
7.8K0
腾讯云学生机99%抢到详细教程
1)优惠的对象:所有全日制统招在读高校学生;   2)参与计划的条件:完成腾讯云平台的学生认证   3)获得优惠的方法:完成学生认证,到云+校园页面抢购学生优惠代金券。   4)优惠持续的时间:申请人当前在读学历的毕业时间。   5)优惠扶持政策内容: 【1元云主机-64元服务器代金券】 有效期:31天,用户使用代金券满65减64元; 发放周期:每个月发放一张代金券,直至当前学历毕业。 指定配置:CPU1核、内存1G、带宽1M、赠送系统盘Linux20G/Windows50
Youngxj
2018/06/07
21.1K3
腾讯云学生机+校园扶持计划详细解读(图文解说)
现在云服务商对学生都是很优惠的,腾讯云学生服务器腾讯云也推出了9.9元购买云服务器的优惠活动,是一款固定的优惠套餐,包含特价云服务器、域名(加钱可选)、免费对象存储空间(6个月),但是好多用户却不知道在哪里申请,需要什么条件,流程是怎么样的,下面给大家做个介绍
人工智能谁与争锋
2019/07/23
7.9K0
云+校园学生服务器政策解读
现在云服务商对学生都是很优惠的,腾讯云也推出了9.9元购买云服务器的优惠活动,是一款固定的优惠套餐,包含特价云服务器、域名(加钱可选)、免费对象存储空间(6个月),但是好多用户却不知道在哪里申请,需要什么条件,流程是怎么样的,下面给大家做个介绍:
JunyouYH
2019/10/23
9.6K0
腾讯云学生机——2M1H1G只需1.02元
腾讯云成都机房上线,折扣价2M1G1H只需65.02元。之前站长朋友用的学生机,现在可以直接领新购券,新购一台成都的2M带宽的机器。
人工智能谁与争锋
2019/07/23
10.2K0
腾讯云学生优惠服务器申请的方法跟过程
腾讯云学生优惠是腾讯云的云+校园活动,我使用腾讯云学生服务器搭建了个人网站,正常运行了快1年都没出过大问题,体验非常不错,
用户6568834
2019/10/28
22.1K0
腾讯云学生优惠服务器申请的方法跟过程
手把手教你配置腾讯云windows服务器
搭建windows云服务器是一个系统的操作过程,需要了解服务器及windows server系统的相关知识。本文分享如何搭建 windows云服务器的过程。
用户5916472
2019/09/20
4.5K0
手把手教你配置腾讯云windows服务器
腾讯云服务器配置环境及网站部署
购买腾讯云之前根据个人业务需要选购合适的云服务器,如果想为上云节省开支,领取腾讯云代金券,节约上云成本。通过腾讯云自行配置,性价比也很高哦。
用户6536231
2019/10/24
13.3K0
腾讯云服务器配置环境及网站部署
腾讯云助力公益和你在一起!
申请用户必须是中国民政部门下合法注册成立的非盈利性质的、非党派性质的、非成员组织的、实行自主管理的民间志愿性的社会中介组织,其主要活动时致力于社会公益事业和解决各种社会问题
腾讯云-助力公益
2019/06/21
5.6K0
腾讯云助力公益和你在一起!
腾讯云“云+创业”扶持计划
云加创业小助手
2017/06/19
28.5K5
双十一来腾讯云薅羊毛就看这篇!【不看后悔系列】
对于在大学中刚学完java开发或者网页开发的大学生来说,是不是想迫不及待的将自己开发的程序展示给朋友同学"炫耀一番"。
炒香菇的书呆子
2024/11/12
3040
双十一来腾讯云薅羊毛就看这篇!【不看后悔系列】
『云+创业』扶持计划常见问题
本文介绍了云+创业扶持计划的背景、申请流程、审核规则、扶持内容和规则、代金券的发放和用法、以及常见问题。旨在帮助用户了解腾讯云+创业扶持计划,并顺利申请和使用相关服务。
云加创业小助手
2017/08/22
13.4K2
[市场活动] 2018,腾讯云助力公益和你在一起!
      申请用户必须是中国民政部门下合法注册成立的非盈利性质的、非党派性质的、非成员组织的、实行自主管理的民间志愿性的社会中介组织,其主要活动时致力于社会公益事业和解决各种社会问题
胡文翠
2018/10/22
3.3K0
[市场活动] 2018,腾讯云助力公益和你在一起!
教你如何申请腾讯云学生服务器
现在云服务商对学生都是很优惠的,腾讯云学生服务器腾讯云也推出了9.9元购买云服务器的优惠活动,是一款固定的优惠套餐,包含特价云服务器、域名(加钱可选)、免费对象存储空间(6个月),但是好多用户却不知道在哪里申请,需要什么条件,流程是怎么样的,下面给大家做个介绍
用户5601883
2019/07/16
19.2K0
腾讯云双十一拼团:上云抢购云服务器的超值攻略
腾讯云凭借其卓越的技术实力和广泛的服务范围,已成为众多企业和开发者的首选云服务平台。为了回馈用户的信任与支持,腾讯云特别推出了双十一拼团活动,提供上百款折扣商品和低门槛拼团机制,让每位用户都能以超值的价格享受高质量的云服务。活动期间,丰富的奖励机制和高性价比的云产品将进一步助力业务的快速发展。
江湖有缘
2024/11/17
1.9K0
腾讯云双十一拼团:上云抢购云服务器的超值攻略
腾讯云服务器搭建网站
对于服务器来说稳定、极速就选择 2核 4G内存配置的云服务器比较稳妥。这个配置跑网站是比较轻松无压力的。配上 avada主题,可以做出的很大气、高大上的企业网站。下面介绍腾讯云的长期优惠折扣活动,感兴趣的可以注册账号领代金券使用。
用户6577384
2019/10/29
22.3K0
腾讯云服务器搭建网站
腾讯云服务器搭建挂机宝教程(图文教程)
比如说我现在玩的DNF。我相信大多数人都会玩。而且玩的也不错。但是碍于国服的比例。很多人都不屑于去玩。可是你们想没想过。国服的比例不好。韩服的呢?美服的呢?甚至日服。台服?
用户6592925
2019/10/30
28.7K0
腾讯云服务器搭建挂机宝教程(图文教程)
腾讯云学生优惠套餐-腾讯云学生服务器优惠券
腾讯云学生优惠服务器一个月只需要10元,一年需要114元。如果学生优惠价格有变动,以腾讯云官网为准。
好好的生活吧
2019/04/11
68.7K1
腾讯云学生优惠套餐-腾讯云学生服务器优惠券
腾讯云服务器从0到部署网站全过程
购买腾讯云之前根据个人业务需要选购合适的云服务器,如果想为上云节省开支,领取腾讯云代金券,节约上云成本。通过腾讯云3折活动,性价比也很高哦。
用户6568837
2019/10/28
4.6K0
腾讯云服务器从0到部署网站全过程
手把手教你配置 Linux 云服务器
根据用户所在地理位置选择云服务器地域。云服务器越靠近访问用户,越能获得较小的访问时延和较高的访问速度。例如在河北,可以选择可用区在 “北京” 的云服务器。
JunyouYH
2019/09/17
5.1K0
推荐阅读
相关推荐
腾讯云学生机99%抢到详细教程(图文教程)
更多 >
领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档