schema对象名

本文介绍Hubble语句中的模式对象名。

说明

模式对象名用于命名Hubble中所有的模式对象,包括databasetableindexcolumn等。在SQL语句中,可以通过标识符来引用这些对象。

标识符可以被引号包裹,即select * from t 也可以写成 select * from "t"

示例

select * from "cust_info" WHERE "cust_info".cust_name = 'liudehua';

在创建表的时候,表名也可以被引号包裹起来

create table "user_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 user_cust(
    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)
 );

在查询语句中,别名部分可以用标识符或者字符串:

select 1 as "one col", 
       2 as "two col";
  one col | two col
----------+----------
        1 |       2

对象名字有时可以被限定或者省略。例如在创建表的时候可以省略数据库限定名:

create table a (b int);

如果之前没有使用 USE指定到特定的数据库,会报No database selected错误,此时可以指定数据库限定名:

create table test.a (b int);

.的左右两端可以出现空格,table_name.colname 等同于 table_name . colname

如要应用这个模式对象,请使用:

table_name.colname

"table_name"."colname"

table_name."colname"

"table_name".colname