文章目录
PostgreSQL是一个功能强大的开源关系型数据库管理系统,以下是一些基本且常用的命令按功能分类:
连接与退出
- 连接数据库:
psql -U[username]-d[database]
示例:以用户postgres身份连接到名为mydb的数据库psql -U postgres -d mydb
- 退出 PostgreSQL Shell:
\q
数据库操作
- 查看所有数据库:
\l
- 创建数据库:
CREATEDATABASE[database_name];
示例:CREATEDATABASE my_new_db;
- 切换数据库:
\c [database_name]
示例:\c my_new_db
- 删除数据库:
DROPDATABASE[database_name];
示例:DROPDATABASE unused_db;
表操作
- 列出当前数据库中的表:
\dt
- 创建表:
CREATETABLE[table_name]( column1 data_type, column2 data_type,...);
示例:CREATETABLE users ( id SERIALPRIMARYKEY, name VARCHAR(50), age INTEGER);
- 查询表数据:
SELECT*FROM[table_name];
示例:SELECT*FROM users;
- 插入数据:
INSERTINTO[table_name](column1, column2,...)VALUES(value1, value2,...);
示例:INSERTINTO users (name, age)VALUES('John Doe',30);
- 更新数据:
UPDATE[table_name]SET column1 = value1, column2 = value2 WHERE condition;
示例:UPDATE users SET age =31WHERE name ='John Doe';
- 删除数据:
DELETEFROM[table_name]WHERE condition;
示例:DELETEFROM users WHERE name ='John Doe';
- 创建索引:
CREATEINDEX[index_name]ON[table_name](column1, column2);
示例:CREATEINDEX idx_users_name ON users (name);
- 删除索引:
DROPINDEX[index_name];
示例:DROPINDEX idx_users_name;
当然,以下是更多PostgreSQL高级功能的命令示例:
外键约束
- 创建具有外键约束的表:
CREATETABLE orders ( order_id SERIALPRIMARYKEY, user_id INTEGERREFERENCES users(id)ONDELETECASCADE);
视图操作
- 创建视图:
CREATEVIEW[view_name]ASSELECT*FROM[table_name]WHERE condition;
示例:CREATEVIEW active_users ASSELECT*FROM users WHERE is_active =true;
- 查询视图:
SELECT*FROM[view_name];
示例:SELECT*FROM active_users;
- 更新或删除视图中的数据(通过视图修改原表数据):
UPDATE[view_name]SET column1 = value1 WHERE condition;DELETEFROM[view_name]WHERE condition;
- 删除视图:
DROPVIEW[view_name];
示例:DROPVIEW active_users;
存储过程与函数
- 创建存储过程:
CREATEORREPLACEPROCEDURE 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);
- 创建函数:
CREATEORREPLACEFUNCTION my_function(param1 type)RETURNStypeAS $$DECLARE result 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];
示例:GRANTSELECT,INSERTON users TO new_user;
- 撤销用户权限:
REVOKE privilege_type ON[table_name]FROM[username];
示例:REVOKEALLPRIVILEGESON users FROM new_user;
事务管理
- 开始事务:
BEGINTRANSACTION;
- 提交事务(确认所有更改):
COMMIT;
- 回滚事务(撤销所有更改):
ROLLBACK;
- 保存点设置(在事务中创建一个可以回滚到的点):
SAVEPOINT[savepoint_name];
示例:SAVEPOINT my_savepoint;
- 回滚到保存点:
ROLLBACKTO[savepoint_name];
示例:ROLLBACKTO my_savepoint;
查询优化与分析
- 查看查询执行计划:
EXPLAIN[ANALYZE][VERBOSE][BUFFERS][FORMAT type]SELECT...;
示例:EXPLAINANALYZESELECT*FROM users WHERE age >30;
数据类型转换
- 强制数据类型转换:
SELECT CAST(columnAS new_type)FROMtable;
示例:SELECT CAST(age ASTEXT)FROM users;
分区表操作
- 创建分区表(例如,按年份分区):
CREATETABLE sales ( id SERIALPRIMARYKEY, product VARCHAR(50), sale_date DATE)PARTITIONBY RANGE (sale_date);CREATETABLE sales_2021 PARTITIONOF salesFORVALUESFROM('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)
————————————————
最后我们放松一下眼睛
版权归原作者 极致人生-010 所有, 如有侵权,请联系我们删除。