目录
一、DDL(Data Definition Language 数据库定义语言)
一、DDL(Data Definition Language 数据库定义语言)
1.创建数据库
CREATE DATABASE [IF NOT EXISTS] database_name --[IF NOT EXISTS] 增强代码的健壮性
[COMMENT database_comment] --库的注释
[LOCATION hdfs_path] -- 指定对应的hdfs路径
[WITH DBPROPERTIES (property_name=property_value, ...)]; --库的属性
创建库
//数据库在HDFS上的默认存储路径是/user/hive/warehouse/*.db
hive (default)> create database db_hive;
hive (default)> create database if not exists db_hive; //标准写法
hive (default)> create database db_hive2 location '/db_hive2';//指定在hdfs上存放的位置
2.查询数据库
hive> show databases; //查询数据库
hive> show databases like 'db_hive*'; //查询指定要求的数据库
hive> desc database db_hive; //显示数据库信息
hive> desc database extended db_hive; //显示数据库详细信息
hive (default)> use db_hive; //切换数据库
3.修改数据库
只可以使用ALTER DATABASE命令为某个数据库的DBPROPERTIES设置键-值对属性值,来描述这个数据库的属性信息。数据库的其他元数据信息都是不可更改的,包括数据库名和数据库所在的目录位置。
hive (default)> alter database db_hive set dbproperties('createtime'='20170830');
//设置某些键值对属性
4.删除数据库
hive>drop database db_hive2; //删除空数据库
hive> drop database if exists db_hive2; //标准写法
hive> drop database db_hive cascade; //强制删除数据库
5.创建表
CREATE [EXTERNAL] TABLE [IF NOT EXISTS] table_name --external 如果不加创建表为内部表
--加上以后创建表为外部表
[(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] --表的数据对应格式
[FIELDS TERMINATED BY char] --字段分隔符 ascii 1号位 ^A ctrl+v ctrl+a
[COLLECTION ITEMS TERMINATED BY char] --集合分隔符 ascii 2号位 ^B ctrl+v ctrl+b
[MAP KEYS TERMINATED BY char] --map的kv分隔符 ascii 3号位 ^C ctrl+v ctrl+c
[LINES TERMINATED BY char] ] --行分隔符 默认值'\n'
以上的默认值非常不好用
[STORED AS file_format] --表对应的数据存储的格式 TEXTFILE .txt orc
[LOCATION hdfs_path] --表所对应hdfs

本文详细介绍了Hive中的DDL(数据定义语言)和DML(数据操作语言),涵盖了数据库和表的创建、查询、修改、删除等操作,以及数据的导入和导出方法。
最低0.47元/天 解锁文章
1354

被折叠的 条评论
为什么被折叠?



