当前位置:首页 > 虚拟主机 > 正文

PostgreSQL命令有哪些?常用命令及参数详解

PostgreSQL(简称pgsql)是一款功能强大的开源对象关系型数据库管理系统,以其稳定性、可扩展性和丰富的功能著称,掌握pgsql命令是高效管理和操作数据库的基础,本文将详细介绍常用的pgsql命令,涵盖数据库连接、数据操作、表管理、用户权限等核心内容,并通过表格形式清晰展示命令结构,最后附上相关FAQs以解答常见问题。

数据库连接与退出

要使用pgsql命令,首先需要连接到PostgreSQL服务器,常用的连接命令如下:

psql h 主机名 p 端口号 U 用户名 d 数据库名

  • h:指定数据库服务器主机名,默认为localhost。
  • p:指定端口号,PostgreSQL默认端口号为5432。
  • U:指定连接用户名,默认为当前系统用户名。
  • d:指定连接的数据库名,若不指定,需在连接后通过c 数据库名切换。

连接成功后,命令行提示符会变为数据库名=#(超级用户)或数据库名=>(普通用户),退出当前连接可使用命令q或exit。

数据库与表管理

数据库操作

  • 创建数据库:使用CREATE DATABASE语句, CREATE DATABASE mydb WITH OWNER myuser ENCODING 'UTF8';

    其中OWNER指定数据库所有者,ENCODING指定字符集(默认为UTF8)。

  • 查看数据库列表:在psql中执行l或list。
  • 删除数据库:使用DROP DATABASE语句, DROP DATABASE mydb;

    注意:删除数据库会永久删除其中所有数据,需谨慎操作。

表操作

  • 创建表:使用CREATE TABLE语句, CREATE TABLE users ( id SERIAL PRIMARY KEY, name VARCHAR(50) NOT NULL, email VARCHAR(100) UNIQUE, created_at TIMESTAMP DEFAULT CURRENT_TIMESTAMP );

    其中SERIAL为自增整数类型,PRIMARY KEY定义主键,UNIQUE确保唯一性,DEFAULT设置默认值。

  • 查看表结构:使用d 表名或d+ 表名(显示额外信息)。
  • 修改表结构:使用ALTER TABLE语句, ALTER TABLE users ADD COLUMN age INT; ALTER TABLE users DROP COLUMN age;
  • 删除表:使用DROP TABLE语句, DROP TABLE users;

数据操作(CRUD)

插入数据(INSERT)

INSERT INTO users (name, email) VALUES ('张三', 'zhangsan@example.com');

支持批量插入和多行数据:

INSERT INTO users (name, email) VALUES ('李四', 'lisi@example.com'), ('王五', 'wangwu@example.com');

查询数据(SELECT)

基本查询:

PostgreSQL命令有哪些?常用命令及参数详解 第1张

常用查询条件:

  • WHERE:过滤条件,如WHERE name LIKE '张%'(模糊匹配)。
  • ORDER BY:排序,如ORDER BY created_at DESC(降序)。
  • LIMIT:限制返回行数,如LIMIT 10。
  • GROUP BY:分组,常与聚合函数(COUNT, SUM, AVG等)结合使用。

更新数据(UPDATE)

UPDATE users SET email = 'newemail@example.com' WHERE id = 1;

注意:务必添加WHERE条件,否则会更新全表数据。

删除数据(DELETE)

DELETE FROM users WHERE id = 1;

同样需谨慎使用WHERE,避免误删全表数据。

用户与权限管理

创建用户

CREATE USER myuser WITH PASSWORD 'password123';

授权

GRANT SELECT, INSERT ON users TO myuser; GRANT ALL PRIVILEGES ON DATABASE mydb TO myuser;

撤销权限

REVOKE INSERT ON users FROM myuser;

查看用户权限

du 查看所有用户及其角色 z 表名 查看表的权限分配

常用psql元命令

psql提供了丰富的元命令以简化操作,以下为常用命令及其说明:

PostgreSQL命令有哪些?常用命令及参数详解 第2张

命令 说明 示例
l 列出所有数据库 l
c 数据库名 切换数据库 c mydb
d 表名 显示表结构 d users
dt 列出当前数据库所有表 dt
di 列出所有索引 di
dv 列出所有视图 dv
df 列出所有函数 df
dn 列出所有模式(Schema) dn
copy 表名 TO '文件名' 导出表数据到CSV文件 copy users TO 'users.csv'
copy 表名 FROM '文件名' 从CSV文件导入数据 copy users FROM 'users.csv'
h SQL命令 查看SQL命令的帮助文档 h CREATE TABLE
? 查看所有psql元命令 ?

数据备份与恢复

备份数据库

使用pg_dump工具:

pg_dump h localhost U myuser d mydb f mydb_backup.sql

恢复数据库

使用psql或pg_restore(对于自定义格式备份):

psql h localhost U myuser d mydb f mydb_backup.sql

相关问答FAQs

问题1:如何修改PostgreSQL用户的密码?

解答:可以使用ALTER USER命令修改密码,为用户myuser设置新密码newpassword,执行:

ALTER USER myuser WITH PASSWORD 'newpassword';

执行后需重新连接数据库使密码生效。

问题2:PostgreSQL中如何查看正在执行的SQL查询?

解答:可以通过查询系统视图pg_stat_activity获取当前会话的SQL执行情况。

SELECT pid, query, state, usename FROM pg_stat_activity WHERE state = 'active';

其中pid为进程ID,query为执行的SQL语句,state为查询状态(如active、idle等),usename为执行用户,若需终止特定查询,可使用SELECT pg_terminate_backend(pid);。

PostgreSQL命令有哪些?常用命令及参数详解 第3张

0