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 $$
    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)
————————————————

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

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

如若内容造成侵权/违法违规/事实不符,请联系我们进行投诉反馈qq邮箱809451989@qq.com,一经查实,立即删除!

相关文章

【前端设计】流光按钮

欢迎来到前端设计专栏&#xff0c;本专栏收藏了一些好看且实用的前端作品&#xff0c;使用简单的html、css语法打造创意有趣的作品&#xff0c;为网站加入更多高级创意的元素。 css body{height: 100vh;display: flex;justify-content: center;align-items: center;background…

HarmonyOS鸿蒙学习基础篇 - 项目目录和文件介绍

├── hvigor //存储购置信息的文件&#xff0c;主要用于发布打包 ├── idea //开发工具相关配置可忽略 ├── AppScope //工程目录 全局公共资源存放路径 │ └── resources │ │ └── base │ │ │ └── element //常亮存放 │ │ │ …

Windows安装WSL2精简版教程

文章目录 一、安装WSL二、更改WSL的存放路径/备份WSL三、安装WSL Terminall四、WSL界面&#xff1a;xlaunch五、WSL1升级WSL2六、WSL2与VMware兼容问题七、更改手动导入的wsl的默认登录用户参考 一、安装WSL 步骤1 - 启用适用于 Linux 的 Windows 子系统&#xff1a; 需要先启…

格局打开!前端未死,只是要求变高了

本文笔者会从以下几个方面分享&#xff0c;希望能够帮助正在迷茫的前端小伙伴提供一点思路&#xff01; 逛技术博客 不局限框架 全栈工程师兴起 关注前沿 写技术文章 录制前端视频 总结 2024年了&#xff0c;没工作的找到工作了吗&#xff1f;有工作的加薪了吗&#xff1f;加薪…

UI设计中的插画运用优势(上)

1. 插画是设计的原创性和艺术性的基础 无论是印刷品、品牌设计还是UI界面&#xff0c;更加风格化的插画能够将不同的风格和创意加入其中&#xff0c;在激烈的竞争中更容易因此脱颖而出。留下用户才有转化。 2. 插画是视觉触发器&#xff0c;瞬间传达大量信息 我们常说「一图胜千…

Unity3D学习之Unity基础

文章目录 1. 第一部分&#xff1a;MONO中的重要内容2. 延时函数2.1 什么是延时函数2.2 延时函数的使用2.2.1 延时重复函数2.2.2 取消延迟函数2.2.3 判断是否有延迟函数开启2.2.4 延迟函数和依附对象的关系 3 协同程序3.1 Unity中的多线程3.2 协同程序3.3 协程的使用3.3.1 关闭协…

Jetson Orin Nano安装OpenCV带cuda加速版本的全过程

安装过程 使用jetpack安装的jetson&#xff0c;自带了opencv&#xff0c;但是没有cuda加速的&#xff0c;输入opencv_version 使用jtop查看&#xff0c;可以确认自带的opencv是没用cuda的 卸载opencv&#xff0c;先查看有哪些包 pip3 list | grep opencv opencv-python 然后卸…

从规则到神经网络:机器翻译技术的演化之路

文章目录 从规则到神经网络&#xff1a;机器翻译技术的演化之路一、概述1. 机器翻译的历史与发展2. 神经机器翻译的兴起3. 技术对现代社会的影响 二、机器翻译的核心技术1. 规则基础的机器翻译&#xff08;Rule-Based Machine Translation, RBMT&#xff09;2. 统计机器翻译&am…

文献分享四:(基础)Pyroelectric drift of integrated-optical LiNbO3 modulators

文献来源——S. M. Kostritskii, Yu. N. Korkishko, V. A. Fedorov & A. V. Yatsenko (2021) Pyroelectric drift of integrated-optical LiNbO3 modulators, Ferroelectrics, 574:1, 170-178, DOI: 10.1080/00150193.2021.1888062 本文分析了我们之所以需要偏置电路的原因…

力扣刷MySQL-第六弹(详细讲解)

&#x1f389;欢迎您来到我的MySQL基础复习专栏 ☆* o(≧▽≦)o *☆哈喽~我是小小恶斯法克&#x1f379; ✨博客主页&#xff1a;小小恶斯法克的博客 &#x1f388;该系列文章专栏&#xff1a;力扣刷题讲解-MySQL &#x1f379;文章作者技术和水平很有限&#xff0c;如果文中出…

【Linux、C】服务程序的调度

这一节中用到的技术点有&#xff1a;信号、多进程、exec函数 exec函数族 exec的本质 exec是用参数中指定的程序替换了当前进程的正文段、数据段、堆和栈。 如果调用失败会继续运行当前进程 #include <stdio.h> #include <stdlib.h> #include <string.h> #in…

常用排序算法总结(直接插入排序、选择排序、冒泡排序、堆排序、快速排序、希尔排序、归并排序)

目录 一. 直接插入排序 二:选择排序 三:冒泡排序 四.堆排序 五:希尔排序 六:快速排序(递归与非递归) 七.归并排序(递归与非递归) 一. 直接插入排序 &#x1f31f;排序思路 直接插入排序的基本原理是将一条记录插入到已排好的有序表中&#xff0c;从而得到一个新的、记录…

PaddleNLP评论观点抽取和属性级情感分析

项目地址&#xff1a;PaddleNLP评论观点抽取和属性级情感分析 - 飞桨AI Studio星河社区 (baidu.com) 情感分析旨在对带有情感色彩的主观性文本进行分析、处理、归纳和推理&#xff0c;其广泛应用于消费决策、舆情分析、个性化推荐等领域&#xff0c;具有很高的商业价值。 依托…

mysql综合实验

USE dept_emp; CREATE TABLE dept (deptno INT(2) NOT NULL COMMENT 部门编号,dname VARCHAR (15) COMMENT 部门名称,loc VARCHAR (20) COMMENT 地理位置 );-- 添加主键 ALTER TABLE dept ADD PRIMARY KEY (deptno); INSERT INTO dept (deptno,dname,loc)VALUES (10,财务…

Windows 11 UEFI引导修复的方法有哪些?

若Windows 11 UEFI 引导加载程序损坏了&#xff0c;您的电脑将无法启动&#xff0c;那么Win11怎么修复UEFI引导&#xff1f;下面我们就来了解一下。 通过自动修复进行UEFI引导修复 1. 将可启动U盘连接到损坏的电脑&#xff0c;进入BIOS设置您的电脑从U盘启动电脑。然后&#x…

TypeScript语法总结

JavaScript 与 TypeScript 的区别 TypeScript 是 JavaScript 的超集&#xff0c;扩展了 JavaScript 的语法&#xff0c;因此现有的 JavaScript 代码可与 TypeScript 一起工作无需任何修改&#xff0c;TypeScript 通过类型注解提供编译时的静态类型检查。 TypeScript 可处理已…

【论文解读】LERF:语言嵌入的辐射场(ICCV 2023 Oral)

来源&#xff1a;投稿 作者&#xff1a;橡皮 编辑&#xff1a;学姐 论文链接&#xff1a;https://arxiv.org/abs/2303.09553 项目主页&#xff1a;https://lerf.io](https://lerf.io 图 1&#xff1a;语言嵌入辐射场 (LERF)。 LERF 将 CLIP 表示建立在密集、多尺度的 3D 场中。…

Unity导出Android项目踩坑记录

导出的时候需要注意以下地方的配置&#xff1a; 1、buildSetting-> 设置ExportProject 2、buildsetting ->playerSetting ->设置IL2CPP 3、设置ndk edit->preferences->external tools->ndk 如果unity的ndk版本和android项目里的ndk版本不一致会报错&…

跨平台开发:构建适配多设备的直播电商APP

如今&#xff0c;跨平台开发成为构建适配多设备的直播电商APP的关键之一。本文将深入探讨跨平台开发的优势、选择适当的技术栈以及解决多设备适配的挑战。 一、跨平台开发的优势 1.1节省开发成本 通过一套代码即可在iOS和Android等多个平台上运行&#xff0c;极大地提高了开…

docker安装 mysql 8.0.32

首先下载 mysql 其次如果虚拟机以前安过mysql 需要把mysql关闭 命令 永久关闭mysql 但是当前不生效 需要重启虚拟机 systemctl enable mysqld 如果不想重启虚拟机 可以执行 systemctl stop mysqld //指定版本 docker pull mysql:8.0.32 // 拉取最新的…