PostgreSQL命令大全

news2024/11/27 20:58:36

文章目录

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

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 $$
    DECLARE
      result type;
    BEGIN
      SELECT 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.coloradmin.cn/o/1399456.html

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈,一经查实,立即删除!

相关文章

【内存管理】flink内存管理(一):内存管理概述:flink主动管理内存原理、flink内存模型

文章目录 一.flink为什么自己管理内存1. 处理大数据时JVM内存管理的问题2. flink主动管理内存逻辑2.1. Flink内存管理方面2.2. 序列化、反序列化说明 3. Flink主动管理内存的好处 二. Flink内存模型1. 堆内存2. 非堆内存2.1. 托管内存2.2.直接内存2.3. JVM特定内存 本节从整体使…

【每日一题】2788. 按分隔符拆分字符串-2024.1.20

题目&#xff1a; 2788. 按分隔符拆分字符串 给你一个字符串数组 words 和一个字符 separator &#xff0c;请你按 separator 拆分 words 中的每个字符串。 返回一个由拆分后的新字符串组成的字符串数组&#xff0c;不包括空字符串 。 注意 separator 用于决定拆分发生的位…

循序渐进学 JavaScript <一>

这周复习完了 js 基础&#xff0c;整理一波~ 一、认识 JavaScript 1. 1 编程语言 计算机语言&#xff1a;概念比较广泛&#xff0c;包括 html 标记语言&#xff08;它并不是编程语言&#xff09;编程语言特点 具有数据和数据结构指令和流程控制&#xff1a;switch&#xff0c…

Ubuntu安装最新版Docker和Docker-Compose

ubuntu环境搭建专栏&#x1f517;点击跳转 Ubuntu系统环境搭建&#xff08;十&#xff09;——Ubuntu安装最新版Docker和Docker Compose 文章目录 Ubuntu系统环境搭建&#xff08;十&#xff09;——Ubuntu安装最新版Docker和Docker Compose1.添加Docker库1.1 安装必要的证书并…

FastDFS 环境搭建及使用详解

文章目录 1、简介1.1 分布式文件系统1.2 FastDFS1.3 FastDFS架构 2、环境搭建2.1 FastDFS安装2.1.1 安装前准备2.1.2 安装包下载2.1.3 安装 libfastcommon2.1.4 安装 libserverframe2.1.5 安装 FastDFS 2.2 FastDFS配置2.2.1 配置tracker2.2.1.1 创建 tracker 工作目录2.2.1.2 …

关于gltf模型格式文件的学习

目录 glTF模型 小黄鸭的gltf模型 字段分析 scene nodes meshes primitives attributes indices mode material accessors bufferView byteOffset count componentType type materials textures images samplers magFilter与minFilter wrapS与wrapT 进行…

好物周刊#37:元气桌面

https://github.com/cunyu1943/JavaPark https://yuque.com/cunyu1943 村雨遥的好物周刊&#xff0c;记录每周看到的有价值的信息&#xff0c;主要针对计算机领域&#xff0c;每周五发布。 一、项目 1. MallChat 一个既能购物又能聊天的电商系统。以互联网企业级开发规范的…

canvas能压缩图片?

之前写过一篇使用命令行工具压缩图片的博文&#xff1a;使用yx-tiny命令行工具进行图片压缩&#xff0c;大家感兴趣可以去瞅一眼。 这篇简单说一下使用canvas压缩图片 其实思路很简单&#xff0c;我们选择了图片之后&#xff0c;会获取到对应的文件流对象&#xff0c;然后我们…

计算机组成原理 第一弹

ps&#xff1a;本文章的图片来源都是来自于湖科大教书匠高老师的视频&#xff0c;声明&#xff1a;仅供自己复习&#xff0c;里面加上了自己的理解 这里附上视频链接地址&#xff1a;1-2 计算机的发展_哔哩哔哩_bilibili ​​ 目录 &#x1f680;计算机系统 &#x1f680;计…

中小企业如何快速融资-----股权融资的四种方式(上)

’在企业融资的多种手段中&#xff0c;股权质押融资、股权交易增值融资、股权增资扩股融资和股权的私募融资&#xff0c;逐渐成为中小企业利用股权实现融资的有效方式。随着市场体系和监管制度的完善&#xff0c;产权市场为投融资者搭建的交易平台日益成熟&#xff0c;越来越多…

【linux驱动】详细剖析第一个hello word驱动程序

文章目录 驱动程序的框架驱动程序的使用示例 驱动程序的框架 Linux 驱动的基本框架主要由模块加载函数&#xff0c;模块卸载函数&#xff0c;模块许可证声明&#xff0c;模块参数&#xff0c;模块导出符号&#xff0c;模块作者信息等几部分组成&#xff0c;其中模块参数&#…

钉钉副总裁李智勇:AI超级助理,提升大模型时代生产力

微软比尔盖茨此前曾预言:“五年内&#xff0c;每个人都将拥有AI私人助理Agent&#xff0c;Agent将颠覆软件行业 。” 近日以来&#xff0c;在GPT store正式上线点爆情绪之后&#xff0c;无论国内外&#xff0c;Agent都是创业圈里炙手可热的新贵。一场关于Agent创业比拼大赛&am…

探索JAVA神秘运行机制:揭秘JVM内存区域

目录 1. 前文回顾 2.内存区域的划分 2.1 存放类的方法区 2.2 程序计数器 2.3 Java虚拟机栈 2.4 Java堆内存 2.5 其他内存区域 3. 核心内存区域运行流程 4. 总结 1. 前文回顾 上一篇我们一起探索了Java的整体运行流程&#xff0c;类加载器以及类的加载机制&#xff0…

手把手教你使用 VS Code 运行和调试 Python 程序

本文以 Ubuntu 系统为例&#xff0c;介绍如何在 VS Code 上配置 Python 的编程环境&#xff0c;并把 Python 程序运行、调试起来。由于 Python 是解释型语言&#xff0c;并且 VS Code 中提供了内置的调试器可用于调试 Python 代码&#xff0c;因此配置和操作流程比调试 C/C 代码…

【 Qt 快速上手】-①- Qt 背景介绍与发展前景

文章目录 1.1 什么是 Qt1.2 Qt 的发展史1.3 Qt 支持的平台1.4 Qt 版本1.5 Qt 的优点1.6 Qt的应用场景1.7 Qt的成功案例1.8 Qt的发展前景及就业分析行业发展方向就业方面的发展前景 1.1 什么是 Qt Qt 是一个跨平台的 C 图形用户界面应用程序框架。它为应用程序开发者提供了建立…

8 python快速上手

总结 总结1. 代码规范1.1 名称1.2 注释1.3 todo1.4 条件嵌套1.5 简单逻辑先处理1.6 循环1.7 变量和值 2.知识补充2.1 pass2.2 is 比较2.3 位运算 3.阶段总结 各位小伙伴想要博客相关资料的话关注公众号&#xff1a;chuanyeTry即可领取相关资料&#xff01; 总结 1. 代码规范 …

线性规划案例分享

今天想写一个最优传输的简单实现&#xff0c;结果学歪了&#xff0c;学到线性规划去了&#xff0c;这里我发现了一个宝藏网站 虽然是讲计量经济的&#xff0c;但是里面提供的公式和代码我很喜欢&#xff0c;有时间可以好好读一下 https://python.quantecon.org/lp_intro.html …

Civil 3D安装教程,免费使用,带安装包和工具,一分钟轻松搞的安装

前言 Civil 3D是一款面向基础设施行业的建筑信息模型&#xff08;BIM&#xff09;解决方案。它为基础设施行业的各类技术人员提供了强大的设计、分析以及文档编制功能&#xff0c;广泛适用于勘察测绘、岩土工程、交通运输、水利水电、市政给排水、城市规划和总图设计等众多领域…

什么是比特币?

比特币 比特币 &#xff08;英语&#xff1a;Bitcoin&#xff0c;缩写&#xff1a;BTC &#xff09;是一种基于 去中心化&#xff0c;采用 点对点网络&#xff0c;开放源代码&#xff0c;以 区块链 作为底层技术的 加密货币。比特币由 中本聪&#xff08;Satoshi Nakamoto&…

vscode配置web开发环境(WampServer)

这里直接去下载了集成的服务器组件wampserver&#xff0c;集成了php&#xff0c;MySQL&#xff0c;Apache 可能会出现安装问题&#xff0c;这里说只有图上这些VC包都安装了才能继续安装&#xff0c;进入报错里提供的链接 在页面内搜索相关信息 github上不去可以去镜像站 下载…