CREATE [EXTERNAL] TABLE [IF NOT EXISTS] [数据库名.]表名
[(列名 数据类型 [COMMENT col_comment], ...)]
[COMMENT table_comment]
[PARTITIONED BY (col_name data_type [COMMENT col_comment], ...)]
[CLUSTERED BY (col_name, col_name, ...) [SORTED BY (col_name [ASC|DESC], ...)] INTO num_buckets BUCKETS]
[ROW FORMAT row_format]
[STORED AS file_format]
| STORED BY 'storage.handler.class.name' [WITH SERDEPROPERTIES (...)]
(Note: only available starting with 0.6.0)]
[LOCATION hdfs_path]
[TBLPROPERTIES (property_name=property_value, ...)] (Note: only available starting with 0.6.0)
参数解释:
EXTERNAL:是否为外部表(加EXTERNAL为外部表)。
外部表
建表时,可以指定一个指向实际数据的路径(LOCATION)。
删表时,只删除元数据,不删除数据(即不删除HDFS上的数据文件)。
内部表
建表时,会将数据移动到数据仓库指向的路径。
删表时,只删除元数据和数据文件一起删除。
IF NOT EXISTS:是否检查表已存在。
加上IF NOT EXISTS,表存在时不做任何操作,返回true。
不加,表存在时报错。
COMMENT:添加注释。
PARTITIONED BY:分区。
查询时,有时候只需扫描表中的一部分数据,无需全表扫描,所以引入的分区。
分区的目的,就是辅助查询,缩小查询范围,加快数据的检索速度和对数据按照一定的规格和条件进行管理。
一个表可以拥有一个或者多个分区,每个分区以文件夹的形式单独存在表文件夹的目录下。
分区是以字段的形式在表结构中存在,但是该字段不存放实际的数据内容,仅仅是分区的表示。通过describe table命令可以查看到字段存在。
CLUSTERED BY:群集(桶)。
CLUSTERED是在分区的基础上,按照列,对数据的进一步拆分和归类。
表和分区都可以对列进行 CLUSTERED BY 操作,将若干个列放入一个桶(bucket)中。
bucket的主要作用:
① 数据抽样。
② 提升某些查询操作效率,例如mapside join。
也可以利用SORT BY 对数据进行排序。这样可以为特定应用提高性能。
ROW FORMAT:设置列分隔符。
row_format支持格式
① DELIMITED [FIELDS TERMINATED BY char]
② DELIMITED [COLLECTION ITEMS TERMINATED BY char]
③ DELIMITED [MAP KEYS TERMINATED BY char]
④ SERDE serde_name [WITH SERDEPROPERTIES property_name=property_value,property_name=property_value, ...]
STORED AS:设置加载数据的数据类型。
TEXTFILE表示纯文本文件(默认)。
SEQUENCE表示压缩文件。
LOCATION:实际数据的路径。
分享到:
相关推荐
### 创建表空间语句知识点详解 #### 一、表空间概念 在Oracle数据库中,表空间(Tablespace)是逻辑存储结构的一部分,用于组织和管理数据。每一个Oracle数据库至少包含一个表空间,通常称为系统表空间(SYSTEM)。...
### SQL语句创建数据库及修改、删除数据库:深入解析与应用 #### 1. SQL语句创建数据库 在SQL Server中,使用`CREATE DATABASE`语句来创建一个新的数据库。此命令允许用户定义数据库的结构,包括主数据文件、辅助...
CREATE TABLE 语句用于创建一个新的 Informix 表。语法如下: ```sql CREATE [TEMP] TABLE table_name (column_name data_type [NOT NULL], …) [IN “pathname”] ``` 其中,`table_name` 是表的名称,`column_name...
在Python编程中,当我们需要执行SQL语句时,有时会遇到参数中包含单引号(')的情况,这可能导致SQL语法错误。在描述的问题中,作者在尝试插入数据到`teacher`表时遇到了编程错误,因为`t_info`字段的值`result2`...
### 创建表空间语句知识点详解 #### 一、Oracle创建表空间概述 在Oracle数据库管理中,表空间是逻辑存储单元,它将物理文件映射到数据库中的逻辑结构上。表空间由一个或多个数据文件组成,每个数据文件都是操作...
首先,从标题"python自动生成sql建表语句"我们可以了解到,我们要讨论的是如何用Python编写程序,以读取某种数据源(例如Excel文件),然后根据数据结构自动生成适用于不同数据库系统的SQL创建表的语句,如Oracle、...
之后,编写SQL语句来创建表,SQL语句应基于之前从Excel文件中提取的字段名和类型。 在构建SQL语句时,可以使用Java字符串拼接或StringBuilder类来动态生成CREATE TABLE语句。确保包含所有字段,并正确设置每个字段...
### Oracle语句优化53个规则详解 #### 一、选用适合的Oracle优化器 在Oracle数据库中,优化器的选择对于SQL语句的执行效率至关重要。Oracle提供了三种优化器模式: 1. **基于规则的优化器(RULE)**:这是一种较...
### 语句表编程(STL)知识点解析 #### 一、STL语句表简介 语句表(Statement List, STL)是一种编程语言,主要用于西门子SIMATIC S7-300和S7-400系列PLC的编程。它遵循IEC 61131-3标准中定义的“指令表”语言规范...
Oracle的共享池允许相同SQL语句的解析结果被复用,减少解析开销。SQL语句必须完全一致(包括空格和换行)才能共享。共享池大小通过init.ora文件中的参数设置,越大则能存储更多语句供共享。 4. 缓冲高速缓存 简单表...
本文将详细介绍达梦数据库中的常用系统视图及查询语句,帮助管理员更好地监控和管理数据库。 一、常用的系统视图: 1. `dba_objects`:此视图显示数据库中所有对象的详细信息,包括表、视图、索引、过程等。通过...
系统还需要能够执行CREATE语句,创建数据表、视图、索引等数据库对象,并确保在创建过程中定义了主键、外键、唯一性约束、非空约束等完整性约束,以维护数据的一致性和准确性。 执行SELECT语句是数据库最常用的查询...
- 文件中还包括了`drop database`和`drop table`语句,用于删除已创建的数据库和表。 - 多个`select * from`语句用于查询各个表中的所有记录,方便检查数据的正确性和完整性。 以上就是从给定文件中提取的主要知识...
### 精彩SQL语句用法详解 #### 一、引言 SQL(Structured Query Language,结构化查询语言)是一种用于管理和处理关系型数据库的标准计算机语言。它被广泛应用于数据库查询、更新、管理和控制等方面。本文将详细...
### Hive外部表创建详解 #### 一、引言 在大数据处理领域,Hive作为一款广泛使用的数据仓库工具,能够高效地对存储在Hadoop文件系统中的数据进行查询与管理。其中,外部表的创建是Hive使用过程中的一个重要概念。...
### Informix SQL 语句详解 #### 1. CREATE DATABASE 数据库名称 [WITH LOGIN “路径名”] **创建数据库** - **语法结构**: `CREATE DATABASE database_name [WITH LOGIN "pathname"]` - **功能描述**: 该命令...
根据提供的文件信息,本文将详细解释如何通过SQL查询来获取数据库中各数据表所占用的空间大小,这在数据库管理及优化工作中尤为重要。 ### SQL查询语句解析 #### 标题:“SQL查表大小语句” 该标题直接指出本文...
以下是对"Oracle 创建表空间命令"以及"Oracle 创建用户及表空间,及用户权限分配"的详细解释。 首先,让我们了解如何创建Oracle用户。Oracle用户是数据库系统中的身份实体,用于访问和操作数据库资源。创建用户的...