• postgre


    连接数据库:psql -h 10.3.4.2 -p 5432 testdb(数据库名) posgres(用户名)
    查看数据库 l
    查看表 d
    创建数据库 create database airfow
    连接到某个数据库 c airflow
    显示表t的结构 d t
    显示表t的key d t_pkey
    显示所有的schema dn
    显示所有的用户 du
    指定客户端字符编码 encoding gbk encoding utf8
    显示一行信息: echo hello zcy
    关闭自动提交功能: set AUTOCOMMIT off

    ========

    切换用户:su postgres

    启动:psql

    查看有哪些数据库: l
    切换到数据库air: c air
    列出数据库中所有表: d
    列出指定表的所有字段信息: d+ dag 或者 d dag
    退出:q

    创建数据库region_pre_airflow 所属这是airflow:create database  region_pre_airflow owner airflow;

    =================

    (1)列出所有的数据库

    mysql: show databases
    psql: l或list

    (2)切换数据库

    mysql: use dbname
    psql: c dbname
     

    (3)列出当前数据库下的数据表

    mysql: show tables
    psql: d
     

    (4)列出指定表的所有字段

    mysql: show columns from table name
    psql: d tablename
     

    (5)查看指定表的基本情况

    mysql: describe tablename
    psql: d+ tablename
     

    (6)退出登录

    mysql: quit 或者q
    psql:q

    ==================

    =================

    新建一个Linux新用户
    adduser zcy
    切换到postgres用户
    su postgres
    使用psql命令登录PostgreSQL控制台
    psql
    创建数据库用户 zcy
    CREATE USER zcy WITH PASSWORD 'zcy';
    创建用户数据库,这里为 zcydb ,并指定所有者为 zcy
    CREATE DATABASE zcydb OWNER zcy;
    将 zcydb 数据库的所有权限都赋予 zcydb,否则 zcydb 只能登录控制台,没有任何数据库操作权限
    GRANT ALL PRIVILEGES ON DATABASE zcydb to zcy;
    退出
    q
    ==========================
    psql -d zcydb

    CREATE TABLE zcy_tbl(name VARCHAR(20), signup_date DATE);
    INSERT INTO zcy_tbl(name, signup_date) VALUES('张三', '2013-12-22');
    UPDATE zcy_tbl set name = '李四' WHERE name = '张三';
    增加一列:ALTER TABLE zcy_tbl ADD email VARCHAR(40);
    修改表名: ALTER TABLE zcy_tbl RENAME TO zcy_tbl_bkp;

    SELECT * FROM zcy_tbl;

    ==========================

    PostgreSQL 9.5 引入了一项新功能:没有则插入,有则更新

    insert into "BASEINFO"."SG_ORG_COMPANY_B" ("ID", "NAME", "NAME_ABBREVIATION", "COMPANY_TYPE") 
                            VALUES  ('a', 'b', 'c', 1111) 
                            ON CONFLICT ("ID") DO UPDATE SET "NAME"='b', "NAME_ABBREVIATION"='c'

     =================批量插入

    
    
    util.inserDataToDB(dbcnyb,'"CNYB"."PRE_DQ_PLANT"',uncoverData,['ID', 'ORG_ID', 'RT_ORG_ID', 'DATE', 'DTIME', 'CTIME', 'INDEX', 'MARK', 'FNAME', 'P_PR','P_PTR'])

    def inserDataToDB(cnyb,tbl,df,cols):
    try: output = BytesIO() df.to_csv(output, sep=' ', index=False, header=False,columns=cols) output = output.getvalue() with cnyb.cursor() as cur: cur.copy_from(BytesIO(output), tbl) cnyb.commit() except Exception,e: cnyb.rollback() LOG.error("insert data fail,ex=%s"%(traceback.format_exc()))

     ============null相加会导致null扩散,PostgreSQL空值null参与运算的处理方法coalesce

    SELECT sum("P16")+coalesce(SUM("P17"),0) FROM "CNYB"."PRE_CDQ_PLANT" where "ID"='98ac7b8341b94b609fe394eaa16ba2a5' 

    =======

    posgre的数据类型比MYSQL要多

    CAST是标准SQL类型转换函数

    postgre支持定长和可变长度的一维和多维数组

    postgre中的数组小标默认是从1开始,不能直接修改多维数组中的某一维

  • 相关阅读:
    BootstrapTable表格数据左右移动功能遇到的问题(数据左右移动,列表拖拽排序,模糊查询列表数据定位)
    MVC校验
    线程
    验证码
    PublicLogic
    进程
    请求处理过程
    上传组件
    委托
    Global全局应用程序类
  • 原文地址:https://www.cnblogs.com/testzcy/p/8629756.html
Copyright © 2020-2023  润新知