• psql基础


    postgres=/postgres-

    表示你上一行输入没有完成(pythoner请记得在句尾加;!!!)

    psql 是什么?

        psql 是 PostgreSQL 中的一个命令行交互式客户端工具,

    它允许你交互地键入 SQL 命令,然后把它们发送给 PostgreSQL 服务器,再显示 SQL 或命令的结果。

    输入的内容允许来自一个文件,此外它还提供了一些元命令和多种类似 shell 的特性来实现书写脚本,以及对大量任务的自动化工作。

    特性:方便快捷、没有图形化工具使用上的一些限制

    postgresql数据库

    最先进的开源关系型数据库。

    1. 安装

    1)创建 /etc/apt/sources.list.d/pgdg.list 并在文件中添加如下内容:

     # vi /etc/apt/sources.list.d/pgdg.list
     deb http://apt.postgresql.org/pub/repos/apt/ xenial-pgdg main

    2)执行如下操作并更新软件源

     wget --quiet -O - https://www.postgresql.org/media/keys/ACCC4CF8.asc | sudo apt-key add -
     sudo apt-get update

    3)安装postgresql-10数据库

     apt-get install postgresql-10

    4)查看安装是否成功

     netstat -tnulp | grep postgres

    注:postgresql数据库默认监昕端口为:5432

    官网文档链接: <https://www.postgresql.org/download/linux/ubuntu/>

    2. 基本使用

    1)启动、停止、重启

     systemctl start|stop|restart postgresql

    2)相关目录

     # congFile
     /etc/postgresql/10/main/postgresql.conf
     # database file
     /var/lib/postgresql/10/main
     # 日志文件
     /var/log/postgresql/postgresql-10-main.log

    3)客户端程序psql

    连接postgresql数据库的客户端,使用之前需先切换到 postgres 用户中。

     su postgres

     

    使用形式:

    执行psql就会默认连接到postgres数据库。

    3. psql基本指令

    命令说明
    l 显示当前有哪些数据库
    c <数据库名> 连接到指定的数据库
    d 查看数据库中有哪些表
    dS <表名> 查看表的结构
    ? 查看命令帮助提示
    q 退出psql终端

    4. 数据库操作

    1)创建删除数据库

     create database <...>
     drop database <...>

    2)创建数据表

     CREATE TABLE tb_user (
     id int not null primary key,
     name varchar(30) not null,
     age int not null
     );

    3)删除数据表

     drop table <...>

    4)增、删、改、查基本操作

    和mysql数据库一致。

     insert into tb_user (id, name, age)
     values (1, 'smart', 21),
     (2, 'lily', 20),
     (3, 'linda', 18),
     (4, 'xiaoming', 25);

    SQL语句操作数据库。

    5. Django使用postgresql数据库

    1)添加新的数据库用户

     create user <...> with password <...>;

    2)创建数据库并指定所属用户

     create database django_test owner <...>;

    3)Django数据库配置

    注:python环境中需安装psycopg2-binary:pip install psycopg2-binary

     DATABASES = {
     'default': {
     'ENGINE': 'django.db.backends.postgresql_psycopg2',
     'USER': '...',
     'PASSWORD': '...',
     'HOST': '...ip',
     'PORT': '...',
     'NAME': '...'
     }
     }

    4)修改postgresql配置文件,指定允许远程连接

     # vi /etc/postgresql/10/main/postgresql.conf
     listen_addresses = '*' # 运行远程连接

    5)重启postgresql服务

     systemctl restart postgresql

    6)允许任意用户从任意机器上以密码方式访问数据库

     # vi /etc/postgresql/10/main/pg_hba.conf
     host all all 0.0.0.0/0 md5

    7)重启postgresql服务

     

    补充


    psql -h <hostname or ip> -p <端口> [数据库名称] [用户名称]

    这些连接参数也可以用环境变量指定,比如:

    export PGDATABASE=testdb

    export PGHOST=127.0.0.1

    export PGPORT=5432

    export PGUSER=postgres

    然后直接允许 psql 即可。

    psql 的常用命令

        psql 的命令都是以斜杠 "" 开头的。

        l  查看所有数据库

        d [ pattern ] 该命令将显示每个匹配关系(表、视图、索引、序列)的信息,可以加上 + 查看更多的信息,如 d+

         1、不加任何参数表示查看当前数据库的所有表。

         2、d tablename 后面跟一个表名,表示显示这个表的结构定义

         3、d indexname 也可以显示索引的信息,如 d 索引名称

         4、d * 后面也可以跟通配符如 "*" 或 "?",d x*

         5、d+ 将显示比 d 更详细的信息,还会显示任何与表关系的注释,以及表中出现的 OID 

         6、dt 只显示匹配的表  

              di 只显示索引

              ds  只显示序列

              dv 只显示视图

              df 只显示函数

         7、 iming on或off 显示 SQL 已执行的时间,默认情况下是 off

              

         8、dn 列出所有的 schema 

         9、 du 或 dg 列出所有的数据库用户和角色

         10、 db 显示所有的表空间,表空间其实是一个目录,放在这个表空间的表,就是把表的数据文件发到这个表空间下。

         11、dp 或 z 显示表的权限分配情况

         12、encoding 指定客户端的字符编码,如 encoding UTF8; 

         13、pset 设置输出的格式,pset border 0 : 表示输出内容无边框。 border 1 :表示边框只在内部。border 2 :内外都有边框

         14、x 把表中的每一行的每列数据都拆分为单行展示,与 MySQL 中的 "G" 的功能类似。

         

        15、echo 用于输出一行信息,通常用于在 .sql 文件中输出一些提示信息。 

        16、password 设置密码

        17、conninfo 列出当前数据库连接的信息

        18、dx 查看数据库中安装的扩展 或 select * from pg_extension;

    更多的命令可以用 ? 来显示  

    执行存储在外部文件中的 SQL 命令

        i <文件名> 执行存储在外部文件中的 sql 语句

        当然也可以在 psql 命令行加 "-s <filename>" 来执行 SQL 脚本文件中的命令,如 psql -s test.sql

    psql 的使用技巧

    1、在启动 psql 命令后中加 "-E" 参数,就可以把 psql 中各种以 "" 开头的命令执行的实际 SQL 打印出来,如下 psql -E postgres,如果想关闭此功能,可以使用 "set ECHO_HIDDEN on | off"

     2、自动提交方面的技巧

          psql 中的事务是自动提交的,可以运行 begin; 然后执行 dml 语句,最后再执行 commit 或 rollback 语句。或 直接使用 psql 中的命令关闭自动提交的功能。 set AUTOCOMMIT off

     3. 查看数据库、表、索引大小

    select pg_size_pretty(pg_table_size('test'));   
    select pg_size_pretty(pg_database_size('david'));
    select pg_size_pretty(pg_indexes_size('test'));
  • 相关阅读:
    C#深入浅出 修饰符(二)
    HDU 5785 Interesting
    HDU 5783 Divide the Sequence
    HDU 5781 ATM Mechine
    UVA 714 Copying Books
    uva 1471 Defense Lines
    UVA 11134 Fabled Rooks
    UVA 11572 Unique Snowflakes
    UVA 11093 Just Finish it up
    UVA 10954 Add All
  • 原文地址:https://www.cnblogs.com/originalTblog/p/11712939.html
Copyright © 2020-2023  润新知