一、命令行登录客户端
鉴于前几篇大家的反馈,今天讲一下梧桐数据库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 语句:
INSERTINTOusers(username, email)VALUES('johndoe','john@example.com');
2. 查询数据(查)
查询users表中的所有记录:
SELECT*FROMusers;
查询特定条件的记录,例如找出所有以@example.com结尾的邮箱:
SELECT*FROMusersWHEREemailLIKE'%@example.com';
3. 更新数据(改)
更新users表中的记录,例如将johndoe的邮箱改为john.doe@newmail.com:
UPDATEusersSETemail ='john.doe@newmail.com'WHEREusername ='johndoe';
4. 删除数据(删)
从users表中删除一条记录,例如删除johndoe:
DELETEFROMusersWHEREusername ='johndoe';
五、数据的加载导出(基本操作)
1. 复制数据从表到文件(COPY命令)
梧桐数据库提供了COPY命令,允许你将表中的数据复制到服务器的文件系统中的一个CSV 文件。例如,将users表的数据复制到users.csv文件中:
COPY users TO '/path/to/users.csv'WITH(FORMATcsv, HEADERtrue);
这里的/path/to/是你的服务器上的路径,FORMAT csv指定了输出格式为 CSV ,HEADER true表示在 CSV 文件的第一行包含列名。
2. 使用 SQL 的 INSERT INTO...SELECT * FROM
如果你有一个现有的 CSV 文件或其他数据源,你可以使用SELECT语句结合INSERT INTO来加载数据。例如,将一个临时表tmp_users的数据插入到users表:
INSERTINTOusers(username, email)SELECTusername, emailFROMtmp_users;
3. 使用外部表
梧桐数据库支持外部表,允许你访问存储在其他数据库或文件中的数据,就像它们是本地表一样。
创建一个外部表,使用 CREATE EXTERNAL TABLE 命令。在这个命令里,需声明新表名称,各列名称及其数据类型,基于命令的 EXECUTE 子句或基于 URL 的 LOCATION 子句的外部数据来源,数据格式。
CREATEreadableEXTERNALTABLEext_customer(idint,nametext,sponsortext)LOCATION('gpfdist://filehost:8081/*.txt')FORMAT'TEXT'( DELIMITER'|'NULL' ')
或者创建 csv 格式的外部表
CREATEreadableEXTERNALTABLEext_customer(idint,nametext, sponsortext)LOCATION ('gpfdist://filehost:8081/*.csv')FORMAT'CSV'( DELIMITER',');
或者使用 hdfs 的外部表
CREATEEXTERNALTABLEtbexternal (aint,bdecimal(10,2),ttext,ddate)LOCATION ('hdfs://host1:port1/tbexternaldir')FORMAT'csv'(DELIMITER'|')
更多外部表的操作会在中级篇中讲述。
4. 批量插入数据与数据加载
如果你有大量数据需要插入,使用批量插入可以提高效率。例如,使用INSERT INTO语句的批量插入:
BEGIN;INSERTINTOusers(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(FORMATcsv, HEADERtrue);
六、退出 psql
完成操作后,可以通过以下命令退出psql命令行界面:
\q
或者使用其快捷方式:
CTRL+D