PostgreSQL 常用命令详解及使用示例
PostgreSQL 是一个功能强大的开源关系型数据库系统。以下是 PostgreSQL 中最常用的命令及其使用示例。
1. 连接与退出命令
连接到 PostgreSQL
psql -U username -d database_name -h host -p port
示例:
psql -U postgres -d mydb -h localhost -p 5432
退出 PostgreSQL
\q
2. 数据库操作
列出所有数据库
\l
创建数据库
CREATE DATABASE dbname;
示例:
CREATE DATABASE testdb;
切换数据库
\c dbname
示例:
\c testdb
删除数据库
DROP DATABASE dbname;
示例:
DROP DATABASE testdb;
3. 表操作
列出当前数据库中的所有表
\dt
创建表
CREATE TABLE table_name (
column1 datatype constraint,
column2 datatype constraint,
...
);
示例:
CREATE TABLE users (
id SERIAL PRIMARY KEY,
name VARCHAR(50) NOT NULL,
email VARCHAR(100) UNIQUE,
created_at TIMESTAMP DEFAULT CURRENT_TIMESTAMP
);
查看表结构
\d table_name
示例:
\d users
删除表
DROP TABLE table_name;
示例:
DROP TABLE users;
4. 数据操作
插入数据
INSERT INTO table_name (column1, column2, ...)
VALUES (value1, value2, ...);
示例:
INSERT INTO users (name, email)
VALUES ('John Doe', 'john@example.com');
查询数据
SELECT column1, column2, ... FROM table_name WHERE condition;
示例:
SELECT * FROM users;
SELECT name, email FROM users WHERE id = 1;
更新数据
UPDATE table_name SET column1 = value1, column2 = value2 WHERE condition;
示例:
UPDATE users SET name = 'Jane Doe' WHERE id = 1;
删除数据
DELETE FROM table_name WHERE condition;
示例:
DELETE FROM users WHERE id = 1;
5. 索引操作
创建索引
CREATE INDEX index_name ON table_name (column_name);
示例:
CREATE INDEX idx_users_email ON users (email);
删除索引
DROP INDEX index_name;
示例:
DROP INDEX idx_users_email;
6. 用户和权限管理
创建用户
CREATE USER username WITH PASSWORD 'password';
示例:
CREATE USER devuser WITH PASSWORD 'secure123';
修改用户密码
ALTER USER username WITH PASSWORD 'newpassword';
示例:
ALTER USER devuser WITH PASSWORD 'newsecure123';
授予权限
GRANT privilege ON object TO user;
示例:
GRANT ALL PRIVILEGES ON DATABASE testdb TO devuser;
GRANT SELECT, INSERT ON TABLE users TO devuser;
撤销权限
REVOKE privilege ON object FROM user;
示例:
REVOKE INSERT ON TABLE users FROM devuser;
7. 备份与恢复
备份数据库
pg_dump -U username -d dbname -f backup.sql
示例:
pg_dump -U postgres -d mydb -f mydb_backup.sql
恢复数据库
psql -U username -d dbname -f backup.sql
示例:
psql -U postgres -d mydb -f mydb_backup.sql
8. 实用元命令
查看命令历史
\s
执行外部SQL文件
\i filename.sql
示例:
\i /path/to/script.sql
显示当前连接信息
\conninfo
查看所有函数
\df
查看特定函数定义
\df+ function_name
查看执行时间
\timing
9. 事务控制
开始事务
BEGIN;
提交事务
COMMIT;
回滚事务
ROLLBACK;
10. 高级功能
创建视图
CREATE VIEW view_name AS SELECT column1, column2 FROM table_name WHERE condition;
示例:
CREATE VIEW active_users AS SELECT * FROM users WHERE is_active = true;
创建存储过程
CREATE OR REPLACE FUNCTION function_name(parameters)
RETURNS return_type AS $$
BEGIN
-- 函数体
END;
$$ LANGUAGE plpgsql;
示例:
CREATE OR REPLACE FUNCTION get_user_count()
RETURNS integer AS $$
DECLARE
user_count integer;
BEGIN
SELECT COUNT(*) INTO user_count FROM users;
RETURN user_count;
END;
$$ LANGUAGE plpgsql;
以上是 PostgreSQL 中最常用的命令和操作示例。PostgreSQL 功能非常丰富,这些只是基础命令,实际使用时可以根据需求查阅官方文档获取更高级的功能和语法。