COL FIRST_NAME FORMAT A15

 

题:在多表格查询中下列语法是什么意思啊???
SQL>   COL FIRST_NAME FORMAT A15
SQL>   COL LAST_NAME FORMAT A15
SQL>   COL DEPARTMENT_NAME FORMAT A15
SQL>   COL CITY FORMAT A15
请问在这里COL起什么作用???
FORMAT A15是什么意思阿???
回答:col就是column的缩写,FORMAT A15是设置对应的列宽度,A15就是宽度为15个字符。
COL命令:
主要格式化列的显示形式。
该命令有许多选项,具体如下:
COL[UMN] [{ column|expr} [ option ...]]
Option选项可以是如下的子句:
ALI[AS] alias
CLE[AR]
FOLD_A[FTER]
FOLD_B[EFORE]
FOR[MAT] format
HEA[DING] text
JUS[TIFY] {L[EFT]|C[ENTER]|C[ENTRE]|R[IGHT]}
LIKE { expr|alias}
NEWL[INE]
NEW_V[ALUE] variable
NOPRI[NT]|PRI[NT]
NUL[L] text
OLD_V[ALUE] variable
ON|OFF
WRA[PPED]|WOR[D_WRAPPED]|TRU[NCATED]
 
1). 改变缺省的列标题
COLUMN column_name HEADING column_heading
For example:
Sql>select * from dept;
     DEPTNO DNAME                        LOC
---------- ---------------------------- ---------
         10 ACCOUNTING                   NEW YORK
sql>col  LOC heading location
sql>select * from dept;
    DEPTNO DNAME                        location
--------- ---------------------------- -----------
        10 ACCOUNTING                   NEW YORK
 
2). 将列名ENAME改为新列名EMPLOYEE NAME并将新列名放在两行上:
Sql>select * from emp
Department  name           Salary
---------- ---------- ----------
         10 aaa                11        
SQL> COLUMN ENAME HEADING ’Employee|Name’
Sql>select * from emp
            Employee
Department  name           Salary
---------- ---------- ---------- 
         10 aaa                11
note: the col heading turn into two lines from one line.
 
3). 改变列的显示长度:
FOR[MAT] format
Sql>select empno,ename,job from emp;
      EMPNO ENAME      JOB       
---------- ----------     ---------
       7369 SMITH      CLERK     
       7499 ALLEN      SALESMAN  
7521 WARD       SALESMAN  
Sql> col ename format a40
      EMPNO ENAME                                    JOB
----------   ----------------------------------------         ---------
       7369 SMITH                                    CLERK
       7499 ALLEN                                    SALESMAN
       7521 WARD                                    SALESMAN
 
4). 设置列标题的对齐方式
JUS[TIFY] {L[EFT]|C[ENTER]|C[ENTRE]|R[IGHT]}
SQL> col ename justify center
SQL> /
      EMPNO           ENAME                   JOB
----------   ----------------------------------------       ---------
       7369 SMITH                                    CLERK
       7499 ALLEN                                    SALESMAN
7521 WARD                                     SALESMAN
对于NUMBER型的列,列标题缺省在右边,其它类型的列标题缺省在左边
 
5). 不让一个列显示在屏幕上
NOPRI[NT]|PRI[NT]
SQL> col job noprint
SQL> /
      EMPNO           ENAME
----------     ----------------------------------------
       7369 SMITH
       7499 ALLEN
7521 WARD
 
6). 格式化NUMBER类型列的显示:
SQL> COLUMN SAL FORMAT $99,990
SQL> /
Employee
Department Name        Salary    Commission
---------- ---------- --------- ----------
30          ALLEN        $1,600    300
 
7). 显示列值时,如果列值为NULL值,用text值代替NULL值
COMM NUL[L] text
SQL>COL COMM NUL[L] text
 
8). 设置一个列的回绕方式
WRA[PPED]|WOR[D_WRAPPED]|TRU[NCATED]
        COL1
--------------------
HOW ARE YOU?
 
SQL>COL COL1 FORMAT A5
SQL>COL COL1 WRAPPED
COL1
-----
HOW A
RE YO
U?
 
SQL> COL COL1 WORD_WRAPPED
COL1
-----
HOW
ARE
YOU?
 
SQL> COL COL1 WORD_WRAPPED
COL1
-----
HOW A
<think>我们正在处理用户关于Hive/SparkSQL中CREATETABLE语句的语法解释请求。用户要求详细解释各个选项的含义。根据提供的引用内容,我们可以整合信息来回答。注意:引用[1]提到SparkSQL建表有三种方式,但用户主要关注通用语法结构(类似Hive的语法)。引用[2]提供了Hive建表语句的详细语法结构,我们将以此为基础进行解释,并补充引用[3]和[4]中的相关信息。我们按以下结构回答:1.首先给出CREATETABLE语句的基本语法结构(参考引用[2])。2.逐个解释关键选项:EXTERNAL,IFNOTEXISTS,COMMENT,PARTITIONEDBY,CLUSTEREDBY,SORTEDBY,ROWFORMAT,STOREDAS,LOCATION。3.在解释过程中,注意区分内部表和外部表(EXTERNAL关键字),以及分区表、分桶表等概念。4.最后,可以给出一个完整的建表示例,并说明各个选项的使用。注意:引用[3]提供了向分区表插入数据的示例,引用[4]提到修改表名的操作,但这些不是用户当前问题的重点,我们主要聚焦建表语法。同时,按照系统指令,我们需要在回答中自然地添加引用标识,例如在解释某个选项时如果参考了某个引用,则在句子末尾添加[^n]。另外,生成相关问题。开始回答:</think>### Hive/Spark SQL 中 CREATE TABLE 语句语法详解 #### 基本语法结构 ```sql CREATE [EXTERNAL] TABLE [IF NOT EXISTS] table_name [(col_name data_type [COMMENT col_comment], ...)] [COMMENT table_comment] [PARTITIONED BY (col_name data_type [COMMENT col_comment], ...)] [CLUSTERED BY (col_name, ...) [SORTED BY (col_name [ASC|DESC], ...)] INTO num_buckets BUCKETS] [ROW FORMAT row_format] [STORED AS file_format] [LOCATION hdfs_path] [TBLPROPERTIES (property_name=property_value, ...)] ``` #### 关键选项解析 1. **`EXTERNAL`** - 声明为外部表(数据由HDFS管理),删除表时**只删除元数据,不删除实际数据**[^4] - 默认创建内部表(删除表时同时删除元数据和数据) - 示例:`CREATE EXTERNAL TABLE ...`[^2][^4] 2. **`IF NOT EXISTS`** - 表不存在时才创建,避免重复建表报错[^2] - 示例:`CREATE TABLE IF NOT EXISTS employee ...` 3. **`COMMENT`** - 添加描述信息: - 列注释:`id INT COMMENT '工号'` - 表注释:`COMMENT '员工信息表'`[^2] 4. **`PARTITIONED BY`** - **水平划分数据**,提升查询效率 - 分区列**不能**出现在主列定义中 - 示例:按国家分区 ```sql PARTITIONED BY (country STRING) ```[^2][^3] 5. **分桶与排序** - `CLUSTERED BY`:按哈希值分桶(如`user_id`) - `SORTED BY`:桶内排序(如按时间降序) - `INTO ... BUCKETS`:指定桶数量 ```sql CLUSTERED BY (dept) SORTED BY (salary DESC) INTO 10 BUCKETS ```[^2] 6. **`ROW FORMAT`** - 定义数据格式: - 字段分隔符:`FIELDS TERMINATED BY ','` - 行分隔符:`LINES TERMINATED BY '\n'` - 示例:`ROW FORMAT DELIMITED FIELDS TERMINATED BY '|'`[^2] 7. **`STORED AS`** - 指定存储格式: - `TEXTFILE`(默认) - `ORC`(列式存储) - `PARQUET`(高效压缩) - 示例:`STORED AS PARQUET`[^2] 8. **`LOCATION`** - 指定数据在HDFS的存储路径 - 外部表必须指定,内部表可选 - 示例:`LOCATION '/user/hive/warehouse/emp'`[^1][^2] 9. **`TBLPROPERTIES`** - 设置表级属性(如作者、创建时间) - 示例:`TBLPROPERTIES ('creator'='admin', 'created_at'='2023-01-01')` #### 完整示例 ```sql CREATE EXTERNAL TABLE IF NOT EXISTS employee ( id INT COMMENT '工号', name STRING COMMENT '姓名', salary FLOAT ) COMMENT '员工信息表' PARTITIONED BY (dept STRING COMMENT '部门') CLUSTERED BY (id) INTO 5 BUCKETS ROW FORMAT DELIMITED FIELDS TERMINATED BY ',' LINES TERMINATED BY '\n' STORED AS ORC LOCATION '/user/hive/warehouse/emp' TBLPROPERTIES ('skip.header.line.count'='1'); ```
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值