文章目录
PostgreSQL 中常用的 psql
命令,包括连接数据库、列出数据库、列出表、增删改查操作以及一些基本的维护命令。
连接数据库
-
启动
psql
客户端:shpsql -U your_username -d your_database -h your_host -p your_port
-U your_username
:指定用户名。-d your_database
:指定要连接的数据库。-h your_host
:指定主机名(默认为localhost
)。-p your_port
:指定端口号(默认为5432
)。
例如:
shpsql -U postgres -d mydatabase -h localhost -p 5432
-
在
psql
提示符下连接数据库:sql\c mydatabase
列出数据库
-
列出所有数据库:
sql\l
列出表
-
列出当前数据库中的所有表:
sql\dt
增删改查操作
-
插入数据:
sqlINSERT INTO table_name (column1, column2, column3, ...) VALUES (value1, value2, value3, ...);
例如:
sqlINSERT INTO employees (first_name, last_name, email) VALUES ('John', 'Doe', 'john.doe@example.com');
-
查询数据:
sqlSELECT * FROM table_name;
例如:
sqlSELECT * FROM employees;
-
更新数据:
sqlUPDATE table_name SET column1 = value1, column2 = value2, ... WHERE condition;
例如:
sqlUPDATE employees SET email = 'john.newemail@example.com' WHERE first_name = 'John' AND last_name = 'Doe';
-
删除数据:
sqlDELETE FROM table_name WHERE condition;
例如:
sqlDELETE FROM employees WHERE first_name = 'John' AND last_name = 'Doe';
基本的维护命令
-
创建数据库:
sqlCREATE DATABASE new_database;
-
删除数据库:
sqlDROP DATABASE database_name;
-
创建表:
sqlCREATE TABLE table_name ( column1 datatype constraints, column2 datatype constraints, ... );
例如:
sqlCREATE TABLE employees ( id SERIAL PRIMARY KEY, first_name VARCHAR(50), last_name VARCHAR(50), email VARCHAR(100) );
-
删除表:
sqlDROP TABLE table_name;
-
添加列:
sqlALTER TABLE table_name ADD COLUMN column_name datatype;
例如:
sqlALTER TABLE employees ADD COLUMN phone_number VARCHAR(20);
-
删除列:
sqlALTER TABLE table_name DROP COLUMN column_name;
例如:
sqlALTER TABLE employees DROP COLUMN phone_number;
-
修改列:
sqlALTER TABLE table_name ALTER COLUMN column_name TYPE new_datatype;
例如:
sqlALTER TABLE employees ALTER COLUMN email TYPE VARCHAR(150);
-
创建索引:
sqlCREATE INDEX index_name ON table_name (column_name);
例如:
sqlCREATE INDEX idx_email ON employees (email);
-
删除索引:
sqlDROP INDEX index_name;
例如:
sqlDROP INDEX idx_email;
-
创建唯一索引:
sqlCREATE UNIQUE INDEX index_name ON table_name (column_name);
例如:
sqlCREATE UNIQUE INDEX unique_email ON employees (email);
-
删除唯一索引:
sqlDROP INDEX index_name;
例如:
sqlDROP INDEX unique_email;
-
创建视图:
sqlCREATE VIEW view_name AS SELECT column1, column2, ... FROM table_name WHERE condition;
例如:
sqlCREATE VIEW active_employees AS SELECT first_name, last_name, email FROM employees WHERE status = 'active';
-
删除视图:
sqlDROP VIEW view_name;
例如:
sqlDROP VIEW active_employees;
-
查看表结构:
sql\d table_name
例如:
sql\d employees
-
查看索引:
sql\di
-
查看视图:
sql\dv
其他常用命令
-
退出
psql
:sql\q
-
查看帮助:
sql\?
-
查看当前连接的数据库:
sql\conninfo
-
清空查询结果:
sql\! clear
-
执行 SQL 脚本文件:
sql\i /path/to/script.sql