在 PSQL 中运行 SQL 文件
有时,你可能需要一次运行多个查询,例如 CRUD
操作。为此,很难使用命令行或终端正确编写 SQL 命令。
如果你知道查询,请将其写入文件并使用扩展名 .sql
保存。它定义文件内的内容是标准查询语言。
从命令行或终端运行 SQL 文件
你想创建一个表并将一些数据插入到表中。
CREATE TABLE BANK(
ID INT PRIMARY KEY,
BANK_NAME VARCHAR,
SWIFTCODE VARCHAR NOT NULL
);
CREATE TABLE ACCOUNT(
ID INT PRIMARY KEY,
ACCOUNT_NAME VARCHAR NOT NULL,
BANK_ID INT,
BALANCE INT DEFAULT 0,
CONSTRAINT fk_bank FOREIGN KEY(BANK_ID) REFERENCES BANK(ID)
);
INSERT INTO bank(ID, BANK_NAME,SWIFTCODE) VALUES(1,'State Bank','123456');
INSERT INTO bank(ID, BANK_NAME,SWIFTCODE) VALUES(2,'Central Bank','654321');
INSERT INTO Account(ID,ACCOUNT_NAME,BANK_ID,BALANCE) VALUES(1,'Jhon',1,500);
下面给出了运行此文件的格式。
psql -h <host_address> -d <database_name> -U "database_user" -p "port_no" -a -q -f "file_path"
标志 | 意义 |
---|---|
-h |
主机地址(默认为 Localhost ) |
-d |
数据库名称(默认数据库是 postgres ) |
-U |
用户名(默认用户名是 postgress ) |
-p |
端口号(默认端口为 5432 ) |
-a |
如果 SQL 有任何可打印内容,则打印所有内容 |
-f |
SQL 脚本的文件目录 |
在命令行中运行 SQL 脚本
C:\Users\Admin>psql -h localhost -d postgres -U postgres -p 5432 -a -q -f C:\Users\Admin\Desktop\script1.sql
Password for user postgres:
CREATE TABLE BANK(
ID INT PRIMARY KEY,
BANK_NAME VARCHAR,
SWIFTCODE VARCHAR NOT NULL
);
CREATE TABLE ACCOUNT(
ID INT PRIMARY KEY,
ACCOUNT_NAME VARCHAR NOT NULL,
BANK_ID INT,
BALANCE INT DEFAULT 0,
CONSTRAINT fk_bank FOREIGN KEY(BANK_ID) REFERENCES BANK(ID)
);
INSERT INTO bank(ID, BANK_NAME,SWIFTCODE) VALUES(1,'State Bank','123456');
INSERT INTO bank(ID, BANK_NAME,SWIFTCODE) VALUES(2,'Central Bank','654321');
INSERT INTO Account(ID,ACCOUNT_NAME,BANK_ID,BALANCE) VALUES(1,'Jhon',1,500);
从 PSQL Shell 检查
postgres=# \dt
List of relations
Schema | Name | Type | Owner
--------+----------+-------+----------
public | account | table | postgres
public | accounts | table | postgres
public | bank | table | postgres
public | logger | table | postgres
public | randoms | table | postgres
public | students | table | postgres
public | times | table | postgres
(7 rows)
postgres=#
从 PSQL Shell 运行 SQL 文件
此外,你可以从 psql shell 运行 SQL 脚本,如下所示:
postgres-# \i C:/Users/Admin/Desktop/script1.sql
CREATE TABLE
CREATE TABLE
INSERT 0 1
INSERT 0 1
INSERT 0 1
在这里,你可以看到已经创建了两个表,并且执行了三个插入命令。有时在 Windows 中,你可能会收到 Permission Denied
。
这基本上会发生在\i
之后的目录路径中的反斜杠上。
相关文章
在一个 PostgreSQL 查询中使用多个 WITH 语句
发布时间:2023/03/20 浏览次数:127 分类:PostgreSQL
-
在本教程中,我们将学习如何使用多个 WITH 语句在 PostgreSQL 中使用两个临时表执行查询。
在 Ubuntu 上的 PostgreSQL 中找到配置文件
发布时间:2023/03/20 浏览次数:130 分类:PostgreSQL
-
本文介绍如何在 Ubuntu 上找到 PostgreSQL 数据库的配置文件。
在 PostgreSQL 中使用循环
发布时间:2023/03/20 浏览次数:124 分类:PostgreSQL
-
在 PL/SQL 中,你可能需要在 Postgres 中使用循环。我们可以使用 FOR 和 WHILE 语句来创建循环。
在 PostgreSQL 中重命名和更改列类型的单个查询
发布时间:2023/03/20 浏览次数:121 分类:PostgreSQL
-
本文介绍如何在 PostgreSQL 中仅使用单个查询来重命名列以及更改其类型。
在 PostgreSQL 中使用 Select 连接列
发布时间:2023/03/20 浏览次数:202 分类:PostgreSQL
-
本文介绍如何在 PostgreSQL 中使用 Select 方法连接列。
在 PostgreSQL 中将平均值舍入到小数点后 2 位
发布时间:2023/03/20 浏览次数:186 分类:PostgreSQL
-
本文介绍如何将 PostgreSQL 中的平均值四舍五入到小数点后 2 位。