• postgresql使用笔记


    在terminal使用createuser命令时收到报错:

    createuser: 无法联接到数据库 postgres: 致命错误:  角色 "lily" 不存在

    解决方法:

    sudo - su postgres切换到postgres用户。

    在postgres用户下可使用createdb命令创建用户:

    $ createuser --interactive lily
    新的角色是否是超级用户? (y/n) y

    --interactive选项可收到对所创建用户权限的询问,从而设置新创建用户的权限。

    创建管理员名字的用户并授相应权限后则可成功在terminal直接使用createdb命令:

    $ createuser neil
    $ dropuser neil

     

    查看已创建的角色名

    可在postgres用户下使用psql命令进入数据库管理状态。输入命令:

    # SELECT rolname FROM pg_roles;

    可查看已有的角色名。

    建立、登录数据库

    创建用户后可在自己的用户下运行命令:

    $ createdb bpsimple 

    创建数据库bpsimple

    成功创建后可运行命令:

    psql -U lily -d bpsimple

    以自己的用户身份登录数据库

    运行sql脚本

    psql数据库名进入管理,输入i+脚本文件.sql运行脚本。

    查看数据库中的表

    psql 数据库名进入管理,输入dt查看已有表:

    bpsimple=# dt
                    关联列表
     架构模式 |   名称    |  类型  | 拥有者 
    ----------+-----------+--------+--------
     public   | barcode   | 数据表 | lily
     public   | customer  | 数据表 | lily
     public   | item      | 数据表 | lily
     public   | orderinfo | 数据表 | lily
     public   | orderline | 数据表 | lily
     public   | stock     | 数据表 | lily
    (6 行记录)
    
    bpsimple=# 

    设置日期格式datestyle

    psql后可使用SET datestyle命令修改日期格式,使用命令SHOW datestyle可查看内部datestyle变量。

    bpsimple=# SELECT cast('2005-02-1' AS date);
        date    
    ------------
     2005-02-01
    (1 行记录)
    
    bpsimple=# SET datestyle TO 'US, SQL';
    SET
    bpsimple=# SELECT cast('2005-02-1' AS date);
        date    
    ------------
     02/01/2005
    (1 行记录)
    
    bpsimple=# SHOW datestyle;
     DateStyle 
    -----------
     SQL, MDY
    (1 行记录)
    
    bpsimple=# SET datestyle TO 'European, SQL';
    SET
    bpsimple=# SELECT cast('2005 02 1' AS date);
        date    
    ------------
     01/02/2005
    (1 行记录)
    
    bpsimple=# SET datestyle TO 'European, ISO';
    SET
    bpsimple=# SELECT cast('2005-02-1' AS date);
        date    
    ------------
     2005-02-01
    (1 行记录)
    
    bpsimple=# 

     也可修改时间输出样式:

    bpsimple=# 
    bpsimple=# SELECT cast('2005-02-1' AS timestamp);
          timestamp      
    ---------------------
     2005-02-01 00:00:00
    (1 行记录)
    
    bpsimple=# SET datestyle TO 'European, Postgres';
    SET
    bpsimple=# SELECT cast('2005-02-1' AS timestamp);
            timestamp         
    --------------------------
     Tue 01 Feb 00:00:00 2005
    (1 行记录)

    copy命令

    copy 表名 FROM '文件名'
        [USING DELIMITERS '作为分隔符的单个字符']
        [WITH NULL AS '代表NULL的字符串']

    访问序列生成器

    定义为serial类型的列有一个序列生成器 <表名>_<列名>_seq。可通过currval函数获取序列生成器,nextval函数给序列生成器递增1,setval函数设置序列生成器。

    e.g. customer表中有serial类型customer_id列。

    查看序列生成器当前值:

    bpsimple=# SELECT currval('customer_customer_id_seq');
     currval 
    ---------
          16
    (1 行记录)

    递增序列生成器:

    bpsimple=# SELECT nextval('customer_customer_id_seq');
     nextrval 
    ---------
          17
    (1 行记录)

    使用聚集找出当前列中最大值:

    bpsimple=# SELECT max(customer_id) FROM customer;
     max 
    -----
      19
    (1 行记录)

    设置序列生成器的值:

    bpsimple=# SELECT currval('customer_customer_id_seq');
     currval 
    ---------
          19
    (1 行记录)
  • 相关阅读:
    Windows 代码实现关机(直接黑屏)
    Windows SEH学习 x86
    Smali 语法文档
    SIOCADDRT: No such process
    Windbg 常用命令整理
    ida GDB 远程调试
    IDA 使用技巧
    Windows X64 Patch Guard
    C 和C++ 名称修饰规则
    【转载】 硬盘主引导记录(MBR)及其结构详解
  • 原文地址:https://www.cnblogs.com/RDaneelOlivaw/p/8166155.html
Copyright © 2020-2023  润新知