数据库表基本操作、内部表和外部表

数据库表基本操作

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, col_name, ...) 分桶
[SORTED BY (col_name [ASC|DESC], ...)] INTO num_buckets BUCKETS] 
[ROW FORMAT DELIMITED | SERDE serde_name WITH SERDEPROPERTIES(property_name=property_value,..)] 
[STORED AS file_format] 
[LOCATION hdfs_path]
[] 中括号的语法表示可选。
|  表示使用的时候,左右语法二选一。
建表语句中的语法顺序要和语法树中顺序保持一致。

字段简单说明
-  CREATE TABLE 创建一个指定名字的表。如果相同名字的表已经存在,则抛出异常;用户可以用 IF NOT EXISTS 选项 来忽略这个异常。
-  EXTERNAL  外部表
-  COMMENT: 为表和列添加注释。
-  PARTITIONED BY 创建分区表
-  CLUSTERED BY 创建分桶表
-  SORTED BY  排序不常用
- ROW FORMAT DELIMITED 使用默认序列化LazySimpleSerDe 进行指定分隔符
- SERDE 使用其他序列化类 读取文件
- STORED AS 指定文件存储类型
- LOCATION 指定表在HDFS上的存储位置。
- LIKE 允许用户复制现有的表结构,但是不复制数据

内部表和外部表

默认情况下创建的表就是内部表,Hive拥有该表的结构和文件。换句话说,Hive完全管理表(元数据和数据)的生命周期,类似于RDBMS中的表。当你删除内部表时,它会删除数据以及表的元数据。可以使用DESCRIBE FORMATTED tablename,来获取表的元数据描述信息,从中可以看出表的类型。

[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-9sIv6Jpq-1684411977597)(img/内部表01.png)]

外部表(External table )中的数据不是Hive拥有或管理的,只管理表元数据的生命周期。要创建一个外部表,需要使用**EXTERNAL**语法关键字。删除外部表只会删除元数据,而不会删除实际数据。在Hive外部仍然可以访问实际数据。实际场景中,外部表搭配**location语法指定数据的路径**,可以让数据更安全。

**主要差异**

- 无论内部表还是外部表,Hive都在Hive Metastore中管理表定义、字段类型等元数据信息。
- 删除内部表时,除了会从Metastore中删除表元数据,还会从HDFS中删除其所有数据文件。
- 删除外部表时,只会从Metastore中删除表的元数据,并保持HDFS位置中的实际数据不变。
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
外部内部数据库中的两种不同类型的,它们在数据存储和访问上有一些区别。 内部内部)是数据库管理系统(DBMS)中默认的类型。它们由DBMS直接管理和维护,并以特定的格式存储在数据库的文件系统中。内部的数据存储在数据库服务器的本地磁盘上。常见的关系型数据库如MySQL和Oracle都使用内部。 举个例子来说明,假设有一个内部存储着学生的成绩信息,包括学生ID、姓名、科目和分数等字段。这个数据库中直接创建和管理,可以使用SQL查询语句对其进行操作(如插入、更新、删除和查询)。 外部外部)则是数据库中的一种虚拟,它不存储实际的数据,而是引用外部数据源中的数据。外部数据源可以是文件(如CSV、JSON或Parquet文件)、其他数据库系统或者Web服务等。外部提供了对这些外部数据的访问能力,允许在数据库中使用SQL查询语句对其进行操作。 举个例子来说明,假设有一个外部引用了一个CSV文件中的数据,该文件包含了销售订单的信息,包括订单ID、产品名称、客户ID等字段。通过在数据库中创建外部,并定义它与CSV文件的映射关系,可以使用SQL查询语句对这个外部进行查询、过滤和连接操作,而无需将数据实际导入数据库。 总的来说,内部数据库中直接存储和管理的,而外部是引用外部数据源中数据的虚拟内部适用于需要频繁访问和操作的数据,而外部适用于对外部数据源进行查询和分析的场景。

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值