一、命令行登录客户端
鉴于前几篇大家的反馈,今天讲一下梧桐数据库v5版本的基本使用。
在开始使用梧桐数据库之前,你需要通过命令行客户端工具登录到数据库。打开你的终端或命令提示符,使用以下命令登录:
psql -h ipaddress -p port -U username -d databasename
这里的ipaddress 是数据库的 ip 地址, port指的是数据库开放连接的端口号,username是你的数据库用户名,databasename是你想要连接的数据库名。如果登录成功,你将进入psql命令行界面。

psql常用的参数:
-h hostname: 指定数据库服务器的主机名或 IP 地址。-p port: 指定数据库服务器的端口号。-d dbname: 指定要连接的数据库名。-U username: 指定连接数据库的用户名。-w: 连接数据库时不提示输入密码。-W: 强制psql提示输入密码。-f filename: 执行指定的 SQL 文件,然后退出。-l: 列出所有可用的数据库,然后退出。-v variable: 设置psql的变量。
二、查看数据库中的表
在登录到数据库之后,如果你想查看当前数据库中所有的表,可以使用以下 SQL 命令:
\dt
这个命令会列出当前数据库下的所有表。

三、查看表结构
要查看某个表的结构,包括列名、数据类型等信息,可以使用以下命令:
\d+ tablename
将tablename替换为你想要查看的表名。

四、基本的 SQL 操作
1. 插入数据(增)
假设你有一个名为users的表,想要插入一条新记录,可以使用以下 SQL 语句:
INSERT INTO users (username, email) VALUES ('johndoe', 'john@example.com');
2. 查询数据(查)
查询users表中的所有记录:
SELECT * FROM users;
查询特定条件的记录,例如找出所有以@example.com结尾的邮箱:
SELECT * FROM users WHERE email LIKE '%@example.com';
3. 更新数据(改)
更新users表中的记录,例如将johndoe的邮箱改为john.doe@newmail.com:
UPDATE users SET email = 'john.doe@newmail.com' WHERE username = 'johndoe';
4. 删除数据(删)
从users表中删除一条记录,例如删除johndoe:
DELETE FROM users WHERE username = 'johndoe';
五、数据的加载导出(基本操作)
1. 复制数据从表到文件(COPY命令)
梧桐数据库提供了COPY命令,允许你将表中的数据复制到服务器的文件系统中的一个CSV 文件。例如,将users表的数据复制到users.csv文件中:
COPY users TO '/path/to/users.csv' WITH (FORMAT csv, HEADER true);
这里的/path/to/是你的服务器上的路径,FORMAT csv指定了输出格式为 CSV ,HEADER true表示在 CSV 文件的第一行包含列名。
2. 使用 SQL 的 INSERT INTO...SELECT * FROM
如果你有一个现有的 CSV 文件或其他数据源,你可以使用SELECT语句结合INSERT INTO来加载数据。例如,将一个临时表tmp_users的数据插入到users表:
INSERT INTO users (username, email)
SELECT username, email FROM tmp_users;
3. 使用外部表
梧桐数据库支持外部表,允许你访问存储在其他数据库或文件中的数据,就像它们是本地表一样。
创建一个外部表,使用 CREATE EXTERNAL TABLE 命令。在这个命令里,需声明新表名称,各列名称及其数据类型,基于命令的 EXECUTE 子句或基于 URL 的 LOCATION 子句的外部数据来源,数据格式。
CREATE readable EXTERNAL TABLE ext_customer
(id int,
name text,
sponsor text)
LOCATION('gpfdist://filehost:8081/*.txt')
FORMAT 'TEXT' ( DELIMITER '|' NULL ' ')
或者创建 csv 格式的外部表
CREATE readable EXTERNAL TABLE ext_customer
(id int,
name text,
sponsor text)
LOCATION ( 'gpfdist://filehost:8081/*.csv' )
FORMAT 'CSV' ( DELIMITER ',' );
或者使用 hdfs 的外部表
CREATE EXTERNAL TABLE tbexternal (
a int,
b decimal(10,2),
t text,
d date)
LOCATION ('hdfs://host1:port1/tbexternaldir')
FORMAT 'csv' (DELIMITER '|')
更多外部表的操作会在中级篇中讲述。
4. 批量插入数据与数据加载
如果你有大量数据需要插入,使用批量插入可以提高效率。例如,使用INSERT INTO语句的批量插入:
BEGIN;
INSERT INTO users (username, email) VALUES
('user1', 'user1@example.com'),
('user2', 'user2@example.com'),
-- 更多的值
('userN', 'userN@example.com');
COMMIT;
使用事务(通过BEGIN和COMMIT)可以确保数据的一致性。
从文件加载数据到表
可以使用COPY命令从文件系统加载 CSV 文件数据到表中。例如,将users.csv文件中的数据加载到users表:
COPY users FROM '/path/to/users.csv' WITH (FORMAT csv, HEADER true);
六、退出 psql
完成操作后,可以通过以下命令退出psql命令行界面:
\q
或者使用其快捷方式:
CTRL+D




