COMMENT
:数据库的注释说明语句LOCATION
:指定数据库在HDFS存储位置,默认/user/hive/warehouse/dbname.dbWITH DBPROPERTIES
:用于指定一些数据库的属性配置CREATE (DATABASE|SCHEMA) [IF NOT EXISTS] database_name
[COMMENT database_comment]
[LOCATION hdfs_path]
[WITH DBPROPERTIES (property_name=property_value, ...)];
create database if not exists itcast
comment "this is my first db"
with dbproperties ('createdBy'='Allen');
RESTRICT
,这意味着仅在数据库为空时才删除它。CASCADE
。DROP (DATABASE|SCHEMA) [IF EXISTS] database_name [RESTRICT|CASCADE];
CREATE TABLE [IF NOT EXISTS] [db_name.]table_name
(col_name data_type [COMMENT col_comment], ... )
[COMMENT table_comment]
[ROW FORMAT DELIMITED …];
CREATE TABLE [IF NOT EXISTS] [db_name.]table_name
(col_name data_type [COMMENT col_comment], ... )
[COMMENT table_comment]
[ROW FORMAT DELIMITED …];
CREATE TABLE table_name (col_name data_type);
ROW FORMAT DELIMITED
语法用于指定字段之间等相关的分隔符,这样Hive才能正确的读取解析数据。CREATE TABLE [IF NOT EXISTS] [db_name.]table_name
[(col_name data_type [COMMENT col_comment], ... ]
[COMMENT table_comment]
[ROW FORMAT DELIMITED …];
文件archer.txt中记录了手游《王者荣耀》射手的相关信息,包括生命、物防、物攻等属性信息,其中
字段之间分隔符为制表符\t,要求在Hive中建表映射成功该文件。
(1/3)数据文件
--创建数据库并切换使用
create database if not exists itheima;
use itheima;
--ddl create table
create table t_archer(
id int comment "ID",
name string comment "英雄名称",
hp_max int comment "最大生命",
mp_max int comment "最大法力",
attack_max int comment "最高物攻",
defense_max int comment "最大物防",
attack_range string comment "攻击范围",
role_main string comment "主要定位",
role_assist string comment "次要定位"
) comment "王者荣耀射手信息"
row format delimited
fields terminated by "\t";
(2/3)建表语句
#在node机器上进行操作
cd ~
mkdir hivedata
cd hivedata/
#把文件从课程资料中首先上传到node1 linux系统上
#执行命令把文件上传到HDFS表所对应的目录下
hadoop fs -put archer.txt /user/hive/warehouse/itheima.db/t_archer
(3/3)结果验证
文件team_ace_player.txt中记录了手游《王者荣耀》主要战队内最受欢迎的王牌选手信息,字段之间
使用的是\001作为分隔符,要求在Hive中建表映射成功该文件。
(1/3)数据文件
create table t_team_ace_player (
id int,
team_name string,
ace_player_name string
);
#在node机器上进行操作
cd ~
cd hivedata/
#把文件从课程资料中首先上传到node1 linux系统上
#执行命令把文件上传到HDFS表所对应的目录下
hadoop fs -put team_ace_player.txt
/user/hive/warehouse/itheima.db/t_team_ace_player
(3/3)结果验证
--1、显示所有数据库 SCHEMAS和DATABASES的用法 功能一样
show databases;
show schemas;
--2、显示当前数据库所有表
show tables;
SHOW TABLES [IN database_name]; --指定某个数据库
--3、查询显示一张表的元数据信息
desc formatted t_team_ace_player;
资料来源于《黑马程序员-大数据Hadoop入门》