PostgreSQL命令大全

文章目录

      • 连接与退出
      • 数据库操作
      • 表操作
      • 外键约束
      • 视图操作
      • 存储过程与函数
      • 权限管理
      • 事务管理
      • 查询优化与分析
      • 数据类型转换
      • 分区表操作
      • 复制与备份恢复

PostgreSQL是一个功能强大的开源关系型数据库管理系统,以下是一些基本且常用的命令按功能分类:

连接与退出

  • 连接数据库

    psql -U [username] -d [database]
    

    示例:以用户postgres身份连接到名为mydb的数据库

    psql -U postgres -d mydb
    
  • 退出 PostgreSQL Shell

    \q
    

数据库操作

  • 查看所有数据库

    \l
    
  • 创建数据库

    CREATE DATABASE [database_name];
    

    示例:

    CREATE DATABASE my_new_db;
    
  • 切换数据库

    \c [database_name]
    

    示例:

    \c my_new_db
    
  • 删除数据库

    DROP DATABASE [database_name];
    

    示例:

    DROP DATABASE unused_db;
    

表操作

  • 列出当前数据库中的表

    \dt
    
  • 创建表

    CREATE TABLE [table_name] (column1 data_type,column2 data_type,...
    );
    

    示例:

    CREATE TABLE users (id SERIAL PRIMARY KEY,name VARCHAR(50),age INTEGER
    );
    
  • 查询表数据

    SELECT * FROM [table_name];
    

    示例:

    SELECT * FROM users;
    
  • 插入数据

    INSERT INTO [table_name] (column1, column2, ...) VALUES (value1, value2, ...);
    

    示例:

    INSERT INTO users (name, age) VALUES ('John Doe', 30);
    
  • 更新数据

    UPDATE [table_name] SET column1 = value1, column2 = value2 WHERE condition;
    

    示例:

    UPDATE users SET age = 31 WHERE name = 'John Doe';
    
  • 删除数据

    DELETE FROM [table_name] WHERE condition;
    

    示例:

    DELETE FROM users WHERE name = 'John Doe';
    
  • 创建索引

    CREATE INDEX [index_name] ON [table_name] (column1, column2);
    

    示例:

    CREATE INDEX idx_users_name ON users (name);
    
  • 删除索引

    DROP INDEX [index_name];
    

    示例:

    DROP INDEX idx_users_name;
    

当然,以下是更多PostgreSQL高级功能的命令示例:

外键约束

  • 创建具有外键约束的表
    CREATE TABLE orders (order_id SERIAL PRIMARY KEY,user_id INTEGER REFERENCES users(id) ON DELETE CASCADE
    );
    

视图操作

  • 创建视图

    CREATE VIEW [view_name] AS SELECT * FROM [table_name] WHERE condition;
    

    示例:

    CREATE VIEW active_users AS SELECT * FROM users WHERE is_active = true;
    
  • 查询视图

    SELECT * FROM [view_name];
    

    示例:

    SELECT * FROM active_users;
    
  • 更新或删除视图中的数据(通过视图修改原表数据)

    UPDATE [view_name] SET column1 = value1 WHERE condition;
    DELETE FROM [view_name] WHERE condition;
    
  • 删除视图

    DROP VIEW [view_name];
    

    示例:

    DROP VIEW active_users;
    

存储过程与函数

  • 创建存储过程

    CREATE OR REPLACE PROCEDURE my_procedure (IN param1 type, OUT param2 type)
    AS $$
    BEGIN-- 过程体SELECT some_column INTO param2 FROM some_table WHERE condition = param1;
    END;
    $$ LANGUAGE plpgsql;
    
  • 调用存储过程

    CALL my_procedure('value', OUT result);
    
  • 创建函数

    CREATE OR REPLACE FUNCTION my_function(param1 type)
    RETURNS type AS $$
    DECLAREresult type;
    BEGINSELECT some_column INTO result FROM some_table WHERE condition = param1;RETURN result;
    END;
    $$ LANGUAGE plpgsql;
    
  • 使用函数

    SELECT my_function('value') FROM dual;
    

权限管理

  • 授予用户权限

    GRANT privilege_type ON [table_name] TO [username];
    

    示例:

    GRANT SELECT, INSERT ON users TO new_user;
    
  • 撤销用户权限

    REVOKE privilege_type ON [table_name] FROM [username];
    

    示例:

    REVOKE ALL PRIVILEGES ON users FROM new_user;
    

事务管理

  • 开始事务

    BEGIN TRANSACTION;
    
  • 提交事务(确认所有更改):

    COMMIT;
    
  • 回滚事务(撤销所有更改):

    ROLLBACK;
    
  • 保存点设置(在事务中创建一个可以回滚到的点):

    SAVEPOINT [savepoint_name];
    

    示例:

    SAVEPOINT my_savepoint;
    
  • 回滚到保存点

    ROLLBACK TO [savepoint_name];
    

    示例:

    ROLLBACK TO my_savepoint;
    

查询优化与分析

  • 查看查询执行计划
    EXPLAIN [ANALYZE] [VERBOSE] [BUFFERS] [FORMAT type] SELECT ... ;
    
    示例:
    EXPLAIN ANALYZE SELECT * FROM users WHERE age > 30;
    

数据类型转换

  • 强制数据类型转换
    SELECT CAST(column AS new_type) FROM table;
    
    示例:
    SELECT CAST(age AS TEXT) FROM users;
    

分区表操作

  • 创建分区表(例如,按年份分区):
    CREATE TABLE sales (id SERIAL PRIMARY KEY,product VARCHAR(50),sale_date DATE
    ) PARTITION BY RANGE (sale_date);CREATE TABLE sales_2021 PARTITION OF sales
    FOR VALUES FROM ('2021-01-01') TO ('2022-01-01');
    

复制与备份恢复

  • 数据库备份

    pg_dump -U [username] -d [database] > backup.sql
    

    示例:

    pg_dump -U postgres -d mydb > mydb_backup.sql
    
  • 从备份恢复数据库

    psql -U [username] -d [database] < backup.sql
    

    示例:

    psql -U postgres -d mydb < mydb_backup.sql
    

以上是PostgreSQL数据库常用命令及使用案例的一部分,更多详细内容请参阅官方文档。对于大型应用和企业级环境,可能还需要涉及更复杂的集群配置、高可用性解决方案、性能调优等方面的知识。请参考官方文档以获取完整信息:https://www.postgresql.org/docs/current/index.html

python推荐学习汇总连接:
50个开发必备的Python经典脚本(1-10)

50个开发必备的Python经典脚本(11-20)

50个开发必备的Python经典脚本(21-30)

50个开发必备的Python经典脚本(31-40)

50个开发必备的Python经典脚本(41-50)
————————————————

​最后我们放松一下眼睛
在这里插入图片描述

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.rhkb.cn/news/242596.html

如若内容造成侵权/违法违规/事实不符,请联系长河编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

Es bulk批量导入数据(1w+以上)

最近在学习es的理论知识以及实际操作&#xff0c;随时更新~ 概要&#xff1a;首先你得有1w条数据的json&#xff0c;然后用java读取json文件导入 一. 创建Json数据 首先我生成1.5w条数据&#xff0c;是为了实践分页查询&#xff0c;用from-size和scroll翻页去实践 生成四个字段…

Servlet系列:生命周期(init、 service、destroy)详解

Servlet的生命周期是由Web容器&#xff08;如Tomcat&#xff09;管理的&#xff0c;包括以下三个阶段&#xff1a; 加载和实例化&#xff1a;当Web应用程序启动时&#xff0c;Web容器会加载和实例化Servlet。加载和实例化过程可以在应用程序启动时自动完成&#xff0c;也可以通…

Nginx快速入门

1.Ngix介绍 1.1 介绍 Nginx (engine x) 是一个高性能的HTTP和反向代理web服务器&#xff0c;同时也提供了IMAP/POP3/SMTP服务。Nginx是由伊戈尔赛索耶夫为俄罗斯访问量第二的Rambler.ru站点&#xff08;俄文&#xff1a;Рамблер&#xff09;开发的&#xff0c;第一个公…

2.RHCSA启动配置

rht-clearcourse 0 #重置练习环境 rht-setcourse rh134 #切换CSA练习环境 cat /etc/rht #查看当前环境 virt-manager #打开KVM控制台 rht-vmctl start classroom #必做&#xff0c;start all不会包含classroom&#xff0c;需…

数据结构之树和二叉树定义

数据结构之树和二叉树定义 1、树的定义2、树的基本概念3、二叉树的定义 数据结构是程序设计的重要基础&#xff0c;它所讨论的内容和技术对从事软件项目的开发有重要作用。学习数据结构要达到的目标是学会从问题出发&#xff0c;分析和研究计算机加工的数据的特性&#xff0c;以…

【计算机网络】【Python】【练习题】【新加坡南洋理工大学】【Computer Control Network】

一、题目描述 该题目描述一个网络中数据包交换&#xff08;Packet Switching&#xff09;的例子。题目如下&#xff1a; 二、问题解答&#xff08;使用Python&#xff09; Q1&#xff1a;如何求出0.0004这个值&#xff1f; &#xff08;1&#xff09;、公式推导过程&#xf…

LeetCode 热题 100 | 双指针(下)

目录 42. 接雨水 1 方法一&#xff1a;我的方法 2 方法二&#xff1a;动态规划 3 方法三&#xff1a;双指针 菜鸟做题第一周&#xff0c;语言是 C 42. 接雨水 1 方法一&#xff1a;我的方法 Warning&#xff1a;这是我的智障做法&#xff0c;请勿模仿 我只能说它教会…

深度解析Python关键字:掌握核心语法的基石(新版本35+4)

目录 关键字 keyword 关键字列表 kwlist softkwlist 关键字分类 数据类型 True、False None 运算类型 and、or、not in is 模块导入 import 辅助关键字 from、as 上下文管理 with 占位语句 pass 流程控制 if、elif、else for while break、continue…

20240117在本地机器识别OCR法语电影的字幕效果PK

20240117在本地机器识别OCR法语电影的字幕效果PK 2024/1/17 11:18 1959 - Jirai Cracher Sur Vos Tombes [Gast, Vian].avi https://www.pianbar.net//drama/52892.html 1959[我唾弃你的坟墓]Jirai cracher sur vos tombes[BT下载/迅雷下载] magnet:?xturn:btih:7c9c99d9d048…

系统配置dns主从服务器

一、准备两台主机&#xff0c;区分主从 二、完全区域传送 1、主DNS服务器配置 #安装相关的包 [rootoula1 ~]# yum install bind -y#关闭防火墙 [rootoula1 ~]# systemctl stop firewalld [rootoula1 ~]# setenforce 0#修改配置主文件 [rootoula1 ~]# vim /etc/named.conf opt…

如何快速打开github

作为一个资深码农&#xff0c;怎么能不熟悉全球最大的同性交友社区——github呢&#xff0c;但头疼的是github有时能打开&#xff0c;有时打不开&#xff0c;这是怎么回事&#xff1f; 其实问题出在github.com解析DNS上&#xff0c;并不是需要FQ。下面提供一个方法&#xff0c;…

Baumer工业相机堡盟工业相机如何通过NEOAPI SDK使用相机日志跟踪功能(C#)

Baumer工业相机堡盟工业相机如何通过NEOAPI SDK使用相机日志跟踪功能&#xff08;C#&#xff09; Baumer工业相机Baumer工业相机NEOAPI SDK和短曝光功能的技术背景Baumer工业相机通过NEOAPI SDK使用相机日志跟踪功能1.引用合适的类文件2.通过NEOAPI SDK使用相机日志跟踪功能3.通…

C#,入门教程(30)——扎好程序的笼子,错误处理 try catch

上一篇&#xff1a; C#&#xff0c;入门教程(29)——修饰词静态&#xff08;static&#xff09;的用法详解https://blog.csdn.net/beijinghorn/article/details/124683349 程序员语录&#xff1a;凡程序必有错&#xff0c;凡有错未必改&#xff01; 程序出错的原因千千万&…

Centos 8 安装 Elasticsearch

简介&#xff1a;CentOS 8是一个基于Red Hat Enterprise Linux&#xff08;RHEL&#xff09;源代码构建的开源操作系统。它是一款稳定、可靠、安全的服务器操作系统&#xff0c;适合用于企业级应用和服务的部署。CentOS 8采用了最新的Linux内核和软件包管理系统&#xff0c;提供…

ThinkPad T14/T15/P14s/P15s gen2电脑原厂Win10系统镜像 恢复笔记本出厂时预装自带OEM系统

lenovo联想原装出厂Windows10系统&#xff0c;适用型号&#xff1a; ThinkPad T14 Gen 2&#xff0c;ThinPad T15 Gen 2&#xff0c;ThinkPad P14s Gen 2&#xff0c;ThinkPad P15s Gen 2 &#xff08;20W1,20W5,20VY,20W7,20W0,20W4,20VX,20W6&#xff09; 链接&#xff1…

Django从入门到精通(二)

目录 三、视图 3.1、文件or文件夹 3.2、相对和绝对导入urls 3.3、视图参数requests 3.4、返回值 3.5、响应头 3.6、FBV和CBV FBV 四、静态资源 4.1、静态文件 4.2、媒体文件 五、模板 5.1、寻找html模板 5.2、模板处理的本质 5.3、常见模板语法 5.4、内置模板函…

day25 组合总和Ⅲ 电话号码的字母组合

题目1&#xff1a;216 组合总和Ⅲ 题目链接&#xff1a;216 组合总和Ⅲ 题意 找出相加之和为n的k个数的组合 数字只可使用1~9之间的数&#xff08;包括 1 9&#xff09;且每个数字只能使用1遍 题目中有两个限制条件&#xff1a;1&#xff09;k个数 2&#xff09;k个…

C#使用DateTime.Now静态属性动态获得系统当前日期和时间

目录 一、实例 1.源码 2.生成效果 二、相关知识点 1.Thread类 &#xff08;1&#xff09;Thread.Sleep()方法 &#xff08;2&#xff09;Thread(ThreadStart) &#xff08;3&#xff09;IsBackground &#xff08;4&#xff09;Invoke( &#xff09; 2.CreateGrap…

༺༽༾ཊ—Unity之-01-单例模式—ཏ༿༼༻

在游戏开发过程中&#xff0c;我们会创建各种各样的类&#xff0c;再用new生成实例&#xff0c;有些时候我们需要这个类在整个游戏中是唯一出现的&#xff0c;比如一些管理器比如声音管理器等&#xff0c;没必要创建很多实例&#xff0c;就算有很多模块需要各种声音功能&#x…

为什么国产操作系统是基于linux研发的呢?

为什么国产操作系统是基于linux研发的呢&#xff1f; 在开始前我有一些资料&#xff0c;是我根据网友给的问题精心整理了一份「linux的资料从专业入门到高级教程」&#xff0c; 点个关注在评论区回复“888”之后私信回复“888”&#xff0c;全部无偿共享给大家&#xff01;&am…