postgresql数据库基本操作
1. 连接 PostgreSQL 数据库
首先,使用 psql
命令行工具连接到数据库。如果是本地连接,命令格式如下:
psql -U postgres -d <数据库名称> -h <主机地址>
其中:
-U postgres
:表示以postgres
用户身份登录。-d <数据库名称>
:指定要连接的数据库。-h <主机地址>
:指定数据库服务器的主机地址(如果是本地,localhost
或127.0.0.1
)。
如果没有指定数据库,psql
会默认连接到 postgres
数据库。
2. 创建数据库
创建一个新的数据库可以使用以下 SQL 语句:
CREATE DATABASE <数据库名称>;
例如:
CREATE DATABASE testdb;
3. 查看当前数据库
使用 \c
或 \connect
命令查看或切换当前连接的数据库:
\c <数据库名称>
例如,切换到 testdb
数据库:
\c testdb
4. 查看所有数据库
要查看当前 PostgreSQL 服务器中所有数据库,可以使用以下命令:
\l
或者:
\list
5. 查看当前数据库中的所有表
使用以下命令查看当前数据库中所有表:
\dt
6. 创建表
创建表时,定义表的字段及其类型。例如:
CREATE TABLE students (id SERIAL PRIMARY KEY,name VARCHAR(100),age INT
);
上面的语句创建了一个名为 students
的表,其中包含 id
、name
和 age
字段。
7. 查看表结构
查看表的结构,可以使用 \d
命令后接表名:
\d students
这将显示 students
表的结构和字段类型。
8. 插入数据(增)
插入数据时使用 INSERT INTO
语句。假设我们要向 students
表中插入一条记录:
INSERT INTO students (name, age) VALUES ('Alice', 20);
如果你要插入多条记录,可以使用以下语法:
INSERT INTO students (name, age) VALUES
('Bob', 22),
('Charlie', 23),
('David', 21);
9. 查询数据(查)
查询数据时使用 SELECT
语句。要查询表中的所有记录:
SELECT * FROM students;
查询指定条件的数据:
SELECT * FROM students WHERE age > 21;
查询特定字段:
SELECT name, age FROM students;
10. 更新数据(改)
更新数据时使用 UPDATE
语句。比如,将 Alice
的年龄改为 21:
UPDATE students SET age = 21 WHERE name = 'Alice';
更新多条记录:
UPDATE students SET age = age + 1 WHERE age < 25;
11. 删除数据(删)
删除数据时使用 DELETE
语句。比如删除 name
为 Bob
的记录:
DELETE FROM students WHERE name = 'Bob';
如果你想删除所有数据(但保留表结构):
DELETE FROM students;
如果你希望彻底删除表结构及其数据,可以使用 DROP TABLE
:
DROP TABLE students;
12. 查看当前连接的会话
查看当前连接的会话信息:
\conninfo
这将显示当前连接的数据库、用户名、主机等信息。
13. 查看数据库的状态
查看数据库的状态或运行信息,使用以下命令:
SELECT pg_stat_activity;
这将显示当前连接到数据库的会话信息,包括每个连接的状态、查询等。
14. 查看表的大小
查看某个表所占用的存储空间大小:
SELECT pg_size_pretty(pg_total_relation_size('students'));
如果你要查看所有表的大小,可以使用:
SELECT table_name, pg_size_pretty(pg_total_relation_size(table_name))
FROM information_schema.tables
WHERE table_schema = 'public';
15. 查看数据库的大小
查看数据库本身的大小:
SELECT pg_size_pretty(pg_database_size('testdb'));
你可以替换 testdb
为任何你要查询的数据库名称。
16. 查看索引
查看某个表的索引:
\di
或者:
SELECT * FROM pg_indexes WHERE tablename = 'students';
17. 创建索引
为了提高查询效率,可以在表中创建索引。例如,为 students
表的 name
列创建索引:
CREATE INDEX idx_name ON students (name);
18. 备份数据库
使用 pg_dump
命令进行数据库备份。备份到一个文件:(进入数据库)
pg_dump -U postgres -d testdb -f backup.sql
19. 恢复数据库
使用 psql
恢复备份的数据:
psql -U postgres -d testdb -f backup.sql
20. 退出 PostgreSQL
退出 psql
连接:
\q