HBase学习8(phoenix创建删除表、数据增删改查、数据分页查询)

发布时间 2023-09-15 17:07:59作者: 201812

1.建表

在Phoenix中,我们可以使用类似于MySQL DDL的方式快速创建表。例如

CREATE TABLE IF NOT EXISTS 表名 (

   ROWKEY名称 数据类型 PRIMARY KEY

列族名.列名1 数据类型 NOT NULL,

列族名.列名2 数据类型 NOT NULL,

列族名.列名3 数据类型);

 

CREATE TABLE IF NOT EXISTS ORDER_DTL(
    id varchar PRIMARY key,
    C1.status varchar,
    C1.money double,
    C1.pay_way integer,
    C1.user_id varchar,
    C1.operation_time varchar,
    C1.category varchar
);

把代码复制到虚拟机中,!tables查看是否成功建表。

 2.查看表信息

!desc ORDER_DTL

发现列名全都变为大写字母了,是因为在建表的时候我们是C1.列名如C1.money,如果想要列名是小写,需要加上双引号即,且任何SQL语句都需要加引号

CREATE TABLE IF NOT EXISTS ORDER_DTL(
    "id" varchar PRIMARY key,
    "C1"."status" varchar,
    "C1"."money" double,
    "C1"."pay_way" integer,
    "C1"."user_id" varchar,
    "C1"".""operation_time" varchar,
    "C1"."category" varchar
);

 3.删除表

drop TABLE if EXISTS ORDER_DTL;

4.插入数据

Phoenix中,插入并不是使用insert来实现的。而是 「upsert 」命令。它的功能为insert + update,与HBase中的put相对应。

 

upsert into ORDER_DTL values('000001','已提交',4070,1,'4944191','2020-04-25 12:09:16','手机');

 

5.查询数据

 

select * from ORDER_DTL;

查询指定数据

select * from ORDER_DTL where id = '000001';

 

 6.更新数据

在Phoenix中,更新数据也是使用UPSERT。语法格式如下:

UPSERT INTO 表名(列名, …) VALUES(对应的值, …);

upsert into ORDER_DTL(id, C1.status) values('000001','已付款');

7.删除指定数据

-- 删除
delete from ORDER_DTL where id = '000001';

8.分页查询数据

使用limitoffset可以快速进行分页。

limit表示每页多少条记录offset表示从第几条记录开始查起。

规律:

select * from ORDER_DTL limit 10 offset (n-1)*10
例子:
-- 第一页
select * from ORDER_DTL limit 10 offset 0;
-- 第二页
-- offset从10开始
select * from ORDER_DTL limit 10 offset 10;
-- 第三页
select * from ORDER_DTL limit 10 offset 20;