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内容生成、新媒体营销和短视频营销等业务的公司。我们拥有一支优秀的团队,专门致力于为客户提供优质的服务。
我们致力于为客户提供一站式的互联网营销服务,帮助客户在激烈的市场竞争中获得更大的优势和发展机会!
发表评论 取消回复