postgresql常用命令

PostgreSQL是一种开放源代码的对象关系型数据库管理系统,是被广泛使用的企业级数据库解决方案之一。PostgreSQL具有良好的稳定性、可扩展性和安全性,得到了越来越多的用户的信赖和使用。在日常使用PostgreSQL时,以下是其常用的一些命令以及使用方法及案例说明。

一、常见命令

1. 连接数据库

```

psql -U username -d databaseName -h host

```

其中-U选项指定要连接的用户名,-d选项指定要连接的数据库名,-h选项指定要连接的主机名称或地址。第一次连接时可能需要输入密码,也可以使用以下命令。

```

psql -U username -d databaseName -h host -W

```

2. 显示帮助信息

```

psql --help

```

3. 创建数据库

```

createdb dbname

```

其中dbname是要创建的数据库名。例如:

```

createdb testdb

```

4. 删除数据库

```

dropdb dbname

```

其中dbname是要删除的数据库名。例如:

```

dropdb testdb

```

5. 显示数据库列表

```

\list

```

或者

```

\l

```

6. 切换数据库

```

\c dbname

```

其中dbname是要连接的数据库名,可以是一个已存在的数据库或新创建的数据库。例如:

```

\c testdb

```

7. 显示表格列表

```

\dt

```

8. 显示表格结构

```

\d tablename

```

其中tablename是要显示结构的表格名。例如:

```

\d employees

```

9. 插入数据

```

INSERT INTO tablename (column1, column2, …) VALUES(value1, value2, …)

```

其中tablename是要插入数据的表格名,column1, column2是要插入的列名,value1, value2是要插入的值。例如:

```

INSERT INTO employees (name, birthday, salary) VALUES('张三', '1978-05-23', 8000)

```

10. 查询数据

```

SELECT column1, column2, … FROM tablename WHERE condition

```

其中tablename是要查询的表格名,column1, column2是要显示的列名,condition是查询条件。例如:

```

SELECT name, salary FROM employees WHERE birthday > '1960-01-01'

```

11. 更新数据

```

UPDATE tablename SET column=value WHERE condition

```

其中tablename是要更新数据的表格名,column是要更新的列名,value是要更新的值,condition是更新条件。例如:

```

UPDATE employees SET salary=9000 WHERE name='张三'

```

12. 删除数据

```

DELETE FROM tablename WHERE condition

```

其中tablename是要删除数据的表格名,condition是删除条件。例如:

```

DELETE FROM employees WHERE salary<=5000

```

13. 导入数据

```

COPY tablename FROM 'filepath' DELIMITER ',' CSV HEADER

```

其中tablename是要导入数据的表格名,filepath是文件路径,DELIMITER指定分隔符,CSV表示文件为CSV格式,HEADER表示文件首行为表头。例如:

```

COPY employees FROM 'D:\\employees.csv' DELIMITER ',' CSV HEADER

```

14. 导出数据

```

COPY tablename TO 'filepath' DELIMITER ',' CSV HEADER

```

其中tablename是要导出数据的表格名,filepath是文件路径,DELIMITER指定分隔符,CSV表示文件为CSV格式,HEADER表示文件首行为表头。例如:

```

COPY employees TO 'D:\\employees_backup.csv' DELIMITER ',' CSV HEADER

```

二、使用方法

1. 连接数据库

在命令行中输入如下命令连接数据库:

```

psql -U username -d databaseName -h host

```

其中username是数据库用户名,databaseName是要连接的数据库名,host是要连接的主机名称或地址。例如:

```

psql -U postgres -d testdb -h localhost

```

连接成功后,命令行会显示数据库版本号、数据库名称和当前用户。

2. 创建数据库

在命令行中输入如下命令创建数据库:

```

createdb dbname

```

其中dbname是要创建的数据库名。例如:

```

createdb testdb

```

成功创建后,命令行不会有任何显示。

3. 删除数据库

在命令行中输入如下命令删除数据库:

```

dropdb dbname

```

其中dbname是要删除的数据库名。例如:

```

dropdb testdb

```

删除成功后,命令行不会有任何显示。

4. 切换数据库

在命令行中输入如下命令切换数据库:

```

\c dbname

```

其中dbname是要连接的数据库名,可以是一个已存在的数据库或新创建的数据库。例如:

```

\c testdb

```

切换成功后,命令行会显示当前连接的数据库名称和用户名。

5. 显示表格列表

在命令行中输入如下命令显示表格列表:

```

\dt

```

或者

```

\l

```

显示成功后,命令行会显示当前数据库中所有表格的信息,包括表格名、列名和类型。

6. 显示表格结构

在命令行中输入如下命令显示表格结构:

```

\d tablename

```

其中tablename是要显示结构的表格名。例如:

```

\d employees

```

显示成功后,命令行会显示该表格中所有列的信息,包括列名、类型和约束等。

7. 插入数据

在命令行中输入如下命令插入数据:

```

INSERT INTO tablename (column1, column2, …) VALUES(value1, value2, …)

```

其中tablename是要插入数据的表格名,column1, column2是要插入的列名,value1, value2是要插入的值。例如:

```

INSERT INTO employees (name, birthday, salary) VALUES('张三', '1978-05-23', 8000)

```

插入成功后,命令行不会有任何显示。

8. 查询数据

在命令行中输入如下命令查询数据:

```

SELECT column1, column2, … FROM tablename WHERE condition

```

其中tablename是要查询的表格名,column1, column2是要显示的列名,condition是查询条件。例如:

```

SELECT name, salary FROM employees WHERE birthday > '1960-01-01'

```

查询成功后,命令行会显示满足条件的所有数据。

9. 更新数据

在命令行中输入如下命令更新数据:

```

UPDATE tablename SET column=value WHERE condition

```

其中tablename是要更新数据的表格名,column是要更新的列名,value是要更新的值,condition是更新条件。例如:

```

UPDATE employees SET salary=9000 WHERE name='张三'

```

更新成功后,命令行不会有任何显示。

10. 删除数据

在命令行中输入如下命令删除数据:

```

DELETE FROM tablename WHERE condition

```

其中tablename是要删除数据的表格名,condition是删除条件。例如:

```

DELETE FROM employees WHERE salary<=5000

```

删除成功后,命令行不会有任何显示。

11. 导入数据

在命令行中输入如下命令导入数据:

```

COPY tablename FROM 'filepath' DELIMITER ',' CSV HEADER

```

其中tablename是要导入数据的表格名,filepath是文件路径,DELIMITER指定分隔符,CSV表示文件为CSV格式,HEADER表示文件首行为表头。例如:

```

COPY employees FROM 'D:\\employees.csv' DELIMITER ',' CSV HEADER

```

导入成功后,命令行会显示导入的数据条数。

12. 导出数据

在命令行中输入如下命令导出数据:

```

COPY tablename TO 'filepath' DELIMITER ',' CSV HEADER

```

其中tablename是要导出数据的表格名,filepath是文件路径,DELIMITER指定分隔符,CSV表示文件为CSV格式,HEADER表示文件首行为表头。例如:

```

COPY employees TO 'D:\\employees_backup.csv' DELIMITER ',' CSV HEADER

```

导出成功后,命令行会显示导出的数据条数。

三、案例说明

假设现有一个员工数据表格employees,包含姓名、生日和工资等列。需要实现以下操作:

1. 创建数据库

在命令行中输入如下命令创建数据库:

```

createdb company

```

2. 创建表格

在命令行中输入如下命令创建表格employees:

```

CREATE TABLE employees (

id SERIAL PRIMARY KEY,

name VARCHAR(20) NOT NULL,

birthday DATE,

salary INTEGER);

```

在表格中添加数据:

```

INSERT INTO employees (name, birthday, salary) VALUES ('张三', '1978-05-23', 8000);

INSERT INTO employees (name, birthday, salary) VALUES ('李四', '1980-06-10', 6000);

INSERT INTO employees (name, birthday, salary) VALUES ('王五', '1970-03-14', 10000);

INSERT INTO employees (name, birthday, salary) VALUES ('赵六', '1990-01-05', 5000);

```

3. 查询数据

在命令行中输入如下命令查询生日在1990年之前的员工:

```

SELECT name, birthday FROM employees WHERE birthday < '1990-01-01';

```

查询结果如下:

```

name | birthday

-------+-------------

张三 | 1978-05-23

李四 | 1980-06-10

王五 | 1970-03-14

```

4. 更新数据

在命令行中输入如下命令将姓名为“张三”的员工工资调整为9000:

```

UPDATE employees SET salary=9000 WHERE name='张三';

```

更新成功后,再次查询数据:

```

SELECT name, birthday, salary FROM employees;

```

结果如下:

```

name | birthday | salary

-------+-------------+--------

张三 | 1978-05-23 | 9000

李四 | 1980-06-10 | 6000

王五 | 1970-03-14 | 10000

赵六 | 1990-01-05 | 5000

```

5. 删除数据

在命令行中输入如下命令删除工资小于7000的员工:

```

DELETE FROM employees WHERE salary<7000;

```

删除成功后,再次查询数据:

```

SELECT name, birthday, salary FROM employees;

```

结果如下:

```

name | birthday | salary

-------+-------------+--------

张三 | 1978-05-23 | 9000

王五 | 1970-03-14 | 10000

```

6. 导出数据

在命令行中输入如下命令将数据导出到文件D:\\employees_backup.csv中:

```

COPY employees TO 'D:\\employees_backup.csv' DELIMITER ',' CSV HEADER;

```

导出成功后,命令行会显示导出的数据条数。查看文件D:\\employees_backup.csv,可以看到导出的数据内容。

壹涵网络我们是一家专注于网站建设、企业营销、网站关键词排名、AI内容生成、新媒体营销和短视频营销等业务的公司。我们拥有一支优秀的团队,专门致力于为客户提供优质的服务。

我们致力于为客户提供一站式的互联网营销服务,帮助客户在激烈的市场竞争中获得更大的优势和发展机会!

点赞(46) 打赏

评论列表 共有 0 条评论

暂无评论
立即
投稿
发表
评论
返回
顶部