Hive表DDL操作(一)

第1关:Create/Alter/Drop 数据库

创建数据库的语法为:

  • DATABASE|SCHEMA:用于限定创建数据库或数据库模式
  • IF NOT EXISTS:目标对象不存在时才执行创建操作(可选)
  • COMMENT:起注释说明作用
  • LOCATION:指定数据库位于HDFS上的存储路径。若未指定,将使用${hive.metastore.warehouse.dir}定义值作为其上层路径位置
  • WITH DBPROPERTIES:为数据库提供描述信息,如创建database的用户或时间

修改数据库的语法为:

ALTER (DATABASE|SCHEMA)database_name SET DBPROPERTIES (property_name=property_value,…);

  • 只能修改数据库的键值对属性值。数据库名和数据库所在的目录位置不能修改

删除数据库语法:

  • DATABASE|SCHEMA:用于限定删除的数据库或数据库模式
  • IF EXISTS:目标对象存在时才执行删除操作(可选)
  • RESTRICT|CASCADERESTRICT为 Hive 默认操作方式,当database_name中不存在任何数据库对象时才能执行DROP操作;CASCADE 采用强制DROP方式,汇联通存在于database_name中的任何数据库对象和database_name一起删除(可选)

Hive表DDL操作(一)_第1张图片

 代码块:

#********* Begin *********#
echo "
CREATE DATABASE IF NOT EXISTS test1 
 LOCATION '/hive/test1'
 WITH DBPROPERTIES('creator'='John','date'='2019-02-25');
ALTER DATABASE test1 SET DBPROPERTIES('creator'='Marry');
DROP DATABASE test1;
"
#创建数据库test1,位于HDFS的/hive/test1下,创建人creator为John,创建日期date为2019-02-25
#修改数据库test1的创建人为Marry
#删除数据库test1

#********* End *********#

 第2关:Create/Drop/Truncate 表

创建表的语法为:

  1. CREATE [TEMPOPARY] [EXTERNAL] TABLE [IF NOT EXISTS] [db_name.] table_name
  2.   [(col_name data_type [COMMENT col_comment], ...)]
  3.   [COMMENT table_comment]
  4.   [PARTITIONED BY (col_name data_type [COMMENT col_comment], ...)]
  5.   [CLUSTERED BY (col_name, col_name, ...) [SORTED BY (col_name [ASC|DESC], ...)] INTO num_buckets BUCKETS]
  6. [SKEWED BY (col_name,col_name,…) ON ([(col_value,col_value,…),…|col_value,c

你可能感兴趣的:(hive,数据库,大数据)