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

PostgreSQL数据库操作基本命令

常用操作sql

🔐 用户管理
-- 创建用户
CREATE USER username WITH PASSWORD 'password';-- 修改用户密码
ALTER USER username WITH PASSWORD 'newpassword';-- 删除用户
DROP USER username;
📦 数据库操作
-- 创建数据库
CREATE DATABASE dbname;-- 删除数据库
DROP DATABASE dbname;-- 更改数据库所有者
ALTER DATABASE dbname OWNER TO new_owner;
🗃️ 表操作
-- 创建表
CREATE TABLE users (id SERIAL PRIMARY KEY,username VARCHAR(50) NOT NULL,email VARCHAR(100),created_at TIMESTAMP DEFAULT CURRENT_TIMESTAMP
);-- 删除表
DROP TABLE users;-- 修改表(添加列)
ALTER TABLE users ADD COLUMN age INTEGER;-- 删除列
ALTER TABLE users DROP COLUMN age;
📥 插入数据
INSERT INTO users (username, email) VALUES ('alice', 'alice@example.com');
📤 查询数据
-- 查询所有数据
SELECT * FROM users;-- 带条件查询
SELECT * FROM users WHERE username = 'alice';
✏️ 更新数据
UPDATE users SET email = 'alice@newdomain.com' WHERE username = 'alice';
❌ 删除数据
DELETE FROM users WHERE username = 'alice';
✅ 授权操作
-- 授权用户访问数据库
GRANT CONNECT ON DATABASE dbname TO username;-- 授权用户对表的读写权限
GRANT SELECT, INSERT, UPDATE, DELETE ON TABLE users TO username;

PostgreSQL 常用的“查库、查表、查表结构、切换库”等命令整理

🔗 连接数据库
psql -U 用户名 -d 数据库名 -h 主机名 -p 端口号
# 例子(本地默认端口)
psql -U postgres -d mydb
🏛️ 查看所有数据库
\l        -- 或者 \list
🛠️切换数据库(需退出重连)

PostgreSQL 不支持在 psql 会话中直接切换数据库,需要重新连接:

\c 数据库名     -- 在 psql 里重连另一数据库
# 示例:
\c mydb
📁 查看当前数据库中的所有表
\dt
也可以查看某个 schema 下的表:
\dt schema_name.*
📐 查看表结构
\d 表名
# 示例
\d users
📝查看表中字段和类型(更详细)
SELECT column_name, data_type, character_maximum_length
FROM information_schema.columns
WHERE table_name = 'your_table_name';
🔍查询当前数据库
SELECT current_database();
🧾查看某张表的索引
\di 表名*
📊 九、查看某张表的数据(前几行)
SELECT * FROM 表名 LIMIT 10;
⚠️ 注意

在 psql 终端中输入 \l(查看数据库列表)后,如果输出内容较多,PostgreSQL 会自动使用分页工具(比如 less)来展示内容,这时候 不是卡住,而是进入了分页浏览模式。

✅ 退出分页浏览的方法:

在分页界面中,直接按以下键退出:

q
q 代表 quit,也就是退出查看界面。
🔄 提示:如果你不想进入分页模式

你可以在连接数据库时禁用分页输出,例如:

psql -U postgres --pset pager=off
或者进入 psql 后运行:
\pset pager off

这样 \l、\dt 等命令就会直接全部输出,不再分页。

http://www.xdnf.cn/news/3261.html

相关文章:

  • JAVA SE 反射,枚举与lambda表达式
  • 制作一款打飞机游戏36:调度编辑器
  • K8S - 命名空间实战 - 从资源隔离到多环境管理
  • 系统升级姿势解锁:绞杀、并行与隐藏开关
  • 拥抱 Kotlin Flow
  • 虚幻商城 Quixel 免费资产自动化入库(2025年版)
  • ArcGIS Pro几个小知识点分享
  • WebRtc09:网络基础P2P/STUN/TURN/ICE
  • 「动态规划::背包」01背包 / AcWing 2(C++)
  • OpenCV 图形API(75)图像与通道拼接函数-----将 4 个单通道图像矩阵 (GMat) 合并为一个 4 通道的多通道图像矩阵函数merge4()
  • 章越科技赋能消防训练体征监测与安全保障,从传统模式到智能跃迁的实践探索
  • Hbuilder 开发鸿蒙应用,打包成 hap 格式(并没有上架应用商店,只安装调试用)
  • 【Vue2】4-开发者工具安装
  • HOW - 经典详情页表单内容数据填充(基于 Antd 组件库)
  • 数据库服务器备份,数据库服备份到另一台服务器的方法有哪些?
  • 普通IT的股票交易成长史--20250430晚
  • python爬虫基础:requests库详解与案例
  • ESP32开发-作为TCP客户端发送数据到网络调试助手
  • 记录idea可以运行但是maven install打包却找不到问题
  • 【网络原理】从零开始深入理解HTTP的报文格式(二)
  • 第四节:权限管理
  • Vue3 Echarts 3D圆柱体柱状图实现教程以及封装一个可复用的组件
  • 仿腾信会议——密码MD5
  • 软件设计师-软考知识复习(1)
  • Deepseek应用技巧-批量生成读书金句
  • SAP 归档 自定义字段目录及归档信息结构
  • 〇 开篇序言
  • 写一个 Java 程序,用于将字符串中的指定子串替换为另一个子串
  • 倒排索引(Inverted Index)详解
  • Git常用指令速查