成功部署Hubble集群之后,便可以在Hubble中执行SQL语句了。因Hubble支持PostgreSQL协议和大多数 PostgreSQL语法,这意味着在 PostgreSQL上构建的现有应用程序通常可以迁移到Hubble,而无需更改应用程序代码。
SQL是一门声明性语言,它是数据库用户与数据库交互的方式。它像是一种自然语言,好像在用英语与数据库进行对话,本文档介绍基本的 SQL操作。
SQL 语言通常按照功能划分成以下的 4 个部分:
DDL (Data Definition Language):数据定义语言,用来定义数据库对象,包括库、表、视图和索引等。
DML (Data Manipulation Language):数据操作语言,用来操作和业务相关的记录。
DQL (Data Query Language):数据查询语言,用来查询经过条件筛选的记录。
DCL (Data Control Language):数据控制语言,用来定义访问权限和安全级别。
常用的 DDL功能是对象(如表、索引等)的创建、属性修改和删除,对应的命令分别是 CREATE
、ALTER
和 DROP
。
参考dbeaver连接数据库后,即可使用
需要注意certs-dir的地址和--host的端口信息
[root@hubble01 ~]# hubble sql --certs-dir=/var/lib/hubbletp/certs --host=hubble01:35432 --user hubble
# Welcome to the HubbleDB SQL shell.
# All statements must be terminated by a semicolon.
# To exit, type: \q.
#
# Server version: HubbleDB v3.10.2-dirty (same version as client)
# Cluster ID: fb578fa1-b32c-4c71-bf5b-a4ee6f2ab28c
#
# Enter \? for a brief introduction.
#
hubble@hubble01:35432/defaultdb>
查看系统中所有数据库:
show databases;
要创建一个名为hubble_db的数据库,可使用以下语句:
create database hubble_db;
使用SHOW TABLES
语句查看当前数据库中的所有表:
show tables from hubble_db;
使用DROP DATABASE
语句删除数据库:
drop database hubble_db;
切换到目标库
use hubble_db;
CREATE TABLE
语句建表:
create table cust_info(
cust_no string primary key,
cust_name varchar(30) not null,
cust_card_no varchar(18),
cust_phoneno decimal(15),
cust_address varchar(30),
cust_type varchar(10),
index(cust_card_no)
);
主键的创建必须在create table语句中,如果建表不指定主键的话,hubble数据库在建表时候自带rowid默认作为主键。
使用COMMENT
给表和字段添加注释:
comment on table cust_info IS '客户信息表';
comment on column cust_info.cust_no is '客户号';
comment on column cust_info.cust_name is '客户姓名';
comment on column cust_info.cust_card_no is '客户身份证号';
comment on column cust_info.cust_phoneno is '客户手机号';
comment on column cust_info.cust_address is '客户所在地';
comment on column cust_info.cust_type is '客户授信类型';
查看表的注释
show tables with comment;
查看字段的注释
show columns from cust_info with comment;
使用SHOW CREATE
语句查看建表语句:
show create table cust_info;
使用DROP TABLE
语句删除表:
drop table cust_info;
使用CREATE INDEX
语句创建索引:
create index custbak_index on cust_info(cust_name);
使用SHOW INDEX
语句查看表内所有索引:
show index from cust_info;
使用DROP INDEX
语句来删除索引:
drop index custbak_index ;
使用INSERT INTO
向表内插入数据:
insert into cust_info values('14435550','王吉','12022519960321531X',15122511874,'天津武清','抵押');
insert into cust_info values('14435551','张贺','431256197306265320',15534343555,'山西临汾','质押');
insert into cust_info values('14435552','刘明','371452199303034312',18967756743,'陕西延安','信用');
insert into cust_info values('14435553','李华','52112119860621421X',15833355455,'湖北武汉','抵押');
insert into cust_info values('14435554','郑青','213456199102275341',13054546567,'江西南昌','质押');
使用UPDATE
语句修改表数据:
update cust_info set cust_phoneno='13565466894' where cust_no='14435554';
使用DELETE
语句删除部分数据:
delete from cust_info where cust_no='14435554';
限制查询数据
select * from cust_info limit 3;
cust_no | cust_name | cust_card_no | cust_phoneno | cust_address | cust_type
-----------+-----------+--------------------+--------------+--------------+------------
14435550 | 王吉 | 12022519960321531X | 15122511874 | 天津武清 | 抵押
14435551 | 张贺 | 431256197306265320 | 15534343555 | 山西临汾 | 质押
14435552 | 刘明 | 371452199303034312 | 18967756743 | 陕西延安 | 信用