zoukankan      html  css  js  c++  java
  • 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'));
  • 相关阅读:
    统计内存使用情况
    自动化测试---PO设计模式
    初识xshell
    pip插件遇到问题(fetch URL https)
    为什么大家都热衷于挖矿呢?
    80个python练习以及python一些值得收藏的教程或博客
    面试问到一个,让你写一下朋友圈点赞功能的测试用例!记录一下
    ajax异步请求302
    Java学习
    MVC 带扩展名的路由无法访问
  • 原文地址:https://www.cnblogs.com/originalTblog/p/11712939.html
Copyright © 2011-2022 走看看