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.hqwc.cn/news/418634.html

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

相关文章

【GitHub项目推荐--AI杀入斗地主领域】【转载】

AlphaGo&#xff1a;第一个战胜围棋世界冠军的人工智能机器人。 我不会玩围棋&#xff0c;没办法和 AlphaGO 对局。但是我喜欢玩斗地主&#xff0c;有斗地主人工智能机器人吗&#xff1f; 有&#xff0c;而且还开源了。DouZero&#xff1a;快手团队开发的斗地主AI。别的不说&…

ssrf漏洞代码审计之douphp解析(超详细)

1.进入douphp的安装界面 www.douphp.com/install/ 由此可知安装界面已经被锁定了&#xff0c;但是由于install.lock是可控的&#xff0c;删除了install.lock后即可进行安装&#xff0c;所以我们现在的目的就是找到怎么去删除install.lock的方法。 要删除目标网站的任意文件&a…

蓝桥杯准备

书籍获取&#xff1a;Z-Library – 世界上最大的电子图书馆。自由访问知识和文化。 (zlibrary-east.se) 书评&#xff1a;(豆瓣) (douban.com) 一、观千曲而后晓声 别人常说蓝桥杯拿奖很简单&#xff0c;但是拿奖是一回事&#xff0c;拿什么奖又是一回事。况且&#xff0c;如果…

蓝桥杯-dfs(一)

&#x1f4d1;前言 本文主要是【算法】——dfs使用的文章&#xff0c;如果有什么需要改进的地方还请大佬指出⛺️ &#x1f3ac;作者简介&#xff1a;大家好&#xff0c;我是听风与他&#x1f947; ☁️博客首页&#xff1a;CSDN主页听风与他 &#x1f304;每日一句&#xff1…

Redis 存在线程安全问题吗?为什么?

一个工作了 5 年的粉丝私信我。 他说自己准备了半年时间&#xff0c;想如蚂蚁金服&#xff0c;结果第一面就挂了&#xff0c;非常难过。 问题是&#xff1a; “Redis 存在线程安全问题吗&#xff1f;” 一、问题解析 关于这个问题&#xff0c;我从两个方面来回答。 第一个&a…

JS-WebAPIs-其他事件(三)

• 页面加载事件 页面加载事件主要有二种事件&#xff0c;分别是load和DOMContentLoaded 加载外部资源&#xff08;如图片、外联CSS和JavaScript等&#xff09;加载完毕时触发的事件为什么要学&#xff1f; 有些时候需要等页面资源全部处理完了做一些事情老代码喜欢把 scrip…

【Qt】对象树与坐标系

需要云服务器等云产品来学习Linux的同学可以移步/-->腾讯云<--/-->阿里云<--/-->华为云<--/官网&#xff0c;轻量型云服务器低至112元/年&#xff0c;新用户首次下单享超低折扣。 目录 一、Qt Creator快捷键 二、对象树 1、对象树的析构 2、自定义类的编写…

HTML--CSS--盒子模型

在CSS模型中&#xff0c;所有元素都可以看做是一个盒子&#xff0c;这个盒子的组成部分&#xff1a; content 内容&#xff0c;文本或者图片 padding 内边距&#xff0c;定义内容到边框的距离 margin 外边距&#xff0c;定义当前元素与其他元素之间的距离 border 边框&#xff…

线性表--顺序表

目录 1.什么是顺序表 2.动态顺序表实现 2.1动态顺序表结构体 2.2初始化 2.3打印验证函数 2.4判断是否扩容&#xff0c;按需扩容 2.5头插/尾插 2.6头删/尾删 2.7指定位置插入数据/指定位置删除数据 3.动态顺序表代码 1.什么是顺序表 线性表是n个具有相同特性的数据元素的…

[C#]winform部署yolov8图像分类的openvino格式的模型

【官方框架地址】 https://github.com/ultralytics/ultralytics 【openvino介绍】 OpenVINO是一个针对Intel硬件优化的开源工具包&#xff0c;用于优化和部署深度学习模型。以下是OpenVINO部署模型的主要优点&#xff1a; 高性能&#xff1a;OpenVINO提供了一系列性能优化工…

openjdk源码了解

openjdk给出debug配置选项&#xff0c;common/autoconf/jdk-options.m4 AC_DEFUN_ONCE([JDKOPT_SETUP_DEBUG_LEVEL], [################################################################################# Set the debug level# release: no debug information, all opti…

计算机组成原理 第一弹

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