当前位置: 首页 > news >正文

PostgreSQL psql 命令和常用的 SQL 语句整理

PostgreSQL psql 命令和常用的 SQL 语句整理

  • 1、登录PostgreSQL数据库
  • 2、psql 命令
  • 3、数据库操作
  • 4、模式操作
  • 5、表操作
  • 6、数据操作
  • 7、索引操作
  • 8、视图操作
  • 9、权限操作

1、登录PostgreSQL数据库

在系统的命令行界面(如 Windows 的 cmd 或者 PowerShell、Linux 的终端等)中执行

-- 直接登录指定数据库:
psql -U postgres -d  database_name
或者
-- 不指定数据库则连接默认的postgres数据库:
psql -U postgres

2、psql 命令

-- 切换到指定数据库
\c database_name-- 查询数据库列表
\l-- 查询模式列表
\dn-- 查看表结构
\d table_name-- 查看所有表
\d-- 查看指定模式下的所有表
\d schema_name.*-- 查看客户端编码和服务器编码
SHOW client_encoding;
SHOW server_encoding;-- 临时指定编码
SET client_encoding TO 'UTF8';-- 临时设置模式
SET search_path TO public;-- 执行脚本
\i 'E:/xxx_pg.sql'-- 退出
\q

3、数据库操作

-- 创建数据库
CREATE DATABASE database_name;-- 删除数据库
DROP DATABASE IF EXISTS database_name;-- 查看数据库所有者
SELECT datname, pg_get_userbyid(datdba) FROM pg_database WHERE datname = 'database_name';-- 修改数据库所有者
ALTER DATABASE database_name OWNER TO new_owner;

4、模式操作

-- 创建模式
CREATE SCHEMA schema_name;-- 删除模式
DROP SCHEMA IF EXISTS schema_name CASCADE;-- 查看模式所有者
SELECT nspname, pg_get_userbyid(nspowner) FROM pg_namespace WHERE nspname = 'public';-- 修改模式所有者
ALTER SCHEMA schema_name OWNER TO new_owner;

5、表操作

-- 创建表
CREATE TABLE table_name (id SERIAL PRIMARY KEY,column1 datatype,column2 datatype
);-- 删除表
DROP TABLE IF EXISTS table_name;-- 修改表名
ALTER TABLE table_name RENAME TO new_table_name;-- 添加列
ALTER TABLE table_name ADD COLUMN new_column datatype;-- 删除列
ALTER TABLE table_name DROP COLUMN column_name;-- 修改列的数据类型
ALTER TABLE table_name ALTER COLUMN column_name TYPE new_datatype;-- 重命名列
ALTER TABLE table_name RENAME COLUMN column_name TO new_column_name;

6、数据操作

-- 插入数据
INSERT INTO table_name (column1, column2) VALUES (value1, value2);-- 查询数据
SELECT * FROM table_name;
SELECT column1, column2 FROM table_name WHERE condition;-- 更新数据
UPDATE table_name SET column1 = new_value WHERE condition;-- 删除数据
DELETE FROM table_name WHERE condition;

7、索引操作

-- 创建索引
CREATE INDEX index_name ON table_name (column1);-- 删除索引
DROP INDEX IF EXISTS index_name;

8、视图操作

-- 创建序列
CREATE SEQUENCE sequence_name;-- 获取序列的下一个值
SELECT nextval('sequence_name');-- 删除序列
DROP SEQUENCE IF EXISTS sequence_name;

9、权限操作

-- 授予用户对表的 SELECT 权限
GRANT SELECT ON table_name TO user_name;-- 授予用户对模式的所有权限
GRANT ALL PRIVILEGES ON SCHEMA schema_name TO user_name;-- 撤销用户对表的 INSERT 权限
REVOKE INSERT ON table_name FROM user_name;
http://www.dtcms.com/a/158768.html

相关文章:

  • WGS84(GPS)、火星坐标系(GCJ02)、百度地图(BD09)坐标系转换Java代码
  • 哈希封装unordered_map和unordered_set的模拟实现
  • 海思dump图原理
  • socket套接字-UDP(中)
  • java Optional
  • 【MQ篇】RabbitMQ之死信交换机!
  • OpenCV 图形API(65)图像结构分析和形状描述符------拟合二维点集的直线函数 fitLine2D()
  • FlinkUpsertKafka深度解析
  • 基础的贝叶斯神经网络(BNN)回归
  • 零基础小白如何上岸数模国奖
  • 大学之大:伦敦政治经济学院2025.4.27
  • 【音视频】FFmpeg过滤器框架分析
  • 人工智能—— K-means 聚类算法
  • Spring Cloud Alibaba 整合 Sentinel:实现微服务高可用防护
  • Awesome-Embodied-AI: 具身机器人的资源库
  • [论文梳理] 足式机器人规划控制流程 - 接触碰撞的控制 - 模型误差 - 自动驾驶车的安全合规(4个课堂讨论问题)
  • 【读写视频】MATLAB详细代码
  • 简述删除一个Pod流程?
  • 【计算机组成原理实验】实验一 运算部件实验_加法器及计算机性能指标
  • Redis超详细入门教程(基础篇)
  • 【每日随笔】文化属性 ② ( 高维度信息处理 | 强者思维形成 | 认知重构 | 资源捕获 | 进化路径 )
  • Spark SQL核心概念与编程实战:从DataFrame到DataSet的结构化数据处理
  • Spark-Streaming核心编程(四)总结
  • 关于堆栈指针的那些事 | bootloader 如何跳转app
  • 如何解决无训练数据问题:一种更为智能化的解决方案
  • k8s学习记录(五):Pod亲和性详解
  • AI提示词(Prompt)终极指南:从入门到精通(附实战案例)
  • STM32:看门狗
  • Leetcode刷题记录20——找到字符串中所有字母异位词
  • 烽火HG680-MC_晨星MSO9385芯片-2+8G_安卓9.0_不分地区通刷卡刷固件包