zoukankan      html  css  js  c++  java
  • PostgreSQL数据库的sql语法(整理版)

    1. 概述

      PostgreSQL是一个免费的关系型数据库服务器(ORDBMS)

    2. 登录数据库

      以用户的名义登录数据库,这时使用的是psql命令

    psql -h 127.0.0.1 -U dbuser -p 5832 -d database

      上面的命令的参数含义如下:

    • -h 指定服务器
    • -p 指定端口
    • -U 指定用户
    • -d 指定数据库

      输入上面的命令以后,系统会提示输入dbuser用户的密码。输入正确,就可以登录控制台了。

    3. 控制台命令

    操作 命令

    设置密码

    password dbuser
    退出控制台 q
    查看SQL命令的解释 h command ,如h select
    查看psql命令列表 ?
    列出所有数据库 l
    进入其他数据库 c [database_name]
    列出当前数据库的所有表格 d
    列出某一张表的结构 d [table_name]
    列出所有用户 du
    打开文本编辑器 e
    列出当前数据库和连接的信息 conninfo

    4. PSQL数据库操作命令

    操作 命令
    创建数据库 create database [db_name];
    删除数据库 drop database [db_name];
    查询所有数据库 select datname from PG_DATABASE; / select * from PG_DATABASE;
    查询某一数据库的所有表 select table_name FROM information_schema.tables where table_schema = 'public';
    创建表

    create table if not exists ke_p_role (
      id serial primary key,  #唯一值,递增
      name varchar (64) not null,  #字符串64位
      seq smallint not null,  #最小int型
      description varchar(128) not null # 字符串128位 
    )

    插入表数据 insert into ke_p_role values ('1', 'Administrator', '1', 'Have all permissions'), ('2', 'Devs', '2', 'Own add or delete'), ('3', 'Tourist', '3', 'Only viewer')
    根据字段,不存在则插入,存在则更新

    create table if not exists ke_topic_rank (
      cluster varchar(64),
      topic varchar(128),
      tkey varchar(128),
      tvalue bigint,
      primary key (cluster, topic, tkey)
    )

    insert into ke_topic_rank values ('test1','test2','test3', 7) on conflict (cluster,topic,tkey) do update set tvalue=excluded.tvalue;

     查询记录 select * from user_tbl;
     查询记录,带limit和offset偏移量 select * from ke_consumer_group_summary where cluster='cluster1' limit 2 offset 0;
    递归查询

    with recursive summary as (
      (select topic, diffval, timespan from ke_logsize where diffval > 0 order by topic asc, timespan desc limit 1)
      union all
      select u.* from summary s, lateral( select topic,diffval,timespan from ke_logsize where diffval > 0 and topic > s.topic order by topic asc, timespan desc limit 1) u
    )
    select topic, diffval, timespan, '1' as rownum, '1' as rank from summary;

    查询,coalesce判断是否为空

    如果a.logsize为空,则返回右边的0

    select coalesce(sum(a.logsize),0) from (select logsize from ke_logsize where cluster='cluster1' and topic in ('phone') and tm='20200615' order by timespan desc limit 1) a

    查询,ifnull,为空则返回0

    select ifnull(lag,0) from ke_consumer_bscreen where cluster='cluster1' and tm='20200713' and "group"='consumer' and topic='topic1' order by timespan desc limit 1

     更新数据  update user_tbl set name = '李四' where name = '张三';
     删除数据  delete from user_tbl where name = '李四' ;
     添加表字段  alter table user_tbl add email varchar(40);
     更新表字段  alter table user_tbl alter column signupdate set not null;
     重命名表字段  alter table user_tbl rename column signupdate to signup;
     删除表字段  alter table user_tbl drop column email;
     重命名表名  alter table user_tbl rename to backup_tbl;
     删除表名  drop table if exists backup_tbl;
     清空表数据  truncate table ke_alarm_config;
     查询postgres当前的连接数  select * from pg_stat_activity;
     postgres的最大连接数  show max_connections;

    5. 总结

    【参考资料】

    https://pg.sjk66.com/postgresql/create-table.html PostgreSQL 创建表 CREATE TABLE

    https://www.alibabacloud.com/help/zh/doc-detail/52951.htm PostgreSQL UPSERT的功能与用法

    https://blog.csdn.net/u011402596/article/details/38510547 postgresql的show databases、show tables、describe table操作

    https://yanbin.blog/postgresql-unnest-batch-crud-merge/ PostgreSQL 批量插入, 更新和合并操作

    https://blog.csdn.net/qq_43639296/article/details/90667860 postgresql中类似IFNULL用法

    https://www.cnblogs.com/Paul-watermelon/p/10401344.html PostgreSQL入门教程(命令行)

  • 相关阅读:
    webpack中的extract-text-webpack-plugin插件使用方法总结
    vue知识总结第一篇vue组件的定义以及父子组件的传值。
    Java在当前时间的基础上增加N时间
    SVN服务器端和客户端的搭建与使用
    字符串后面去0、补0
    安装Oracle数据库并建立可以用的用户
    【品优购代码外笔记】安装并使用Zookeeper
    【十次方基础教程(后台)】influxDB、cAdvisor、cAdvisor的安装与使用(监控微服务内存,自动扩容)
    【十次方基础教程(后台)】使用Rancher管理容器
    【十次方基础教程(后台)】使用Gogs,Jenkins实现持续集成
  • 原文地址:https://www.cnblogs.com/swordfall/p/13083714.html
Copyright © 2011-2022 走看看