数据库

查看数据库: hive> show databases;

                        hive>show databases like 'h.*';---展示以h开头的所有数据库,注意:like后字符串匹配使用正则

创建数据库: hive> create database [if not exitsts] 数据库名

                                   [location 'HDFS的目录下'];-------不使用设置的warehouse目录

查看数据库属性命令:hive> desc database 数据库名;

使用数据库: hive> use 数据库名;

删除数据库:drop database 数据库名 [cascade(联级删除---连表一起删除)]

修改数据库:

临时显示当前正在使用的数据库名:set hive.cli.print.current.db=true;

临时显示字段名称:set hive.cli.print.header=true;

如果想永久显示:可在当前用户下→vi .hiverc。填入上两条sql语句。或者在hive-site.xml配置文件中修改该属性的值

创建内部表:当前使用drop table语句删除表时,存在hdfs上表的目录会被删除

create table [if not exitsts] 表名
     (列名 数据类型,
      ....)
      [comment '表的描述']
     [row format delimited
        fields terminated by '\001'--字段之间的分割符\001八进制对应^A
        collection items terminated by '\002'--数组元素和结构元素的的分割符  ^B
        map keys terminated by '\003'--对应map类型的key-value之间分隔符 ^C
        lines terminated by '\n'--行之间的分割符换行
     ]--指定表行的格式
     [stored as textfile]--指定表存储的数据格式
      [location '可以指定表存储的路径']

创建外部表:

create external table [if not exitsts] 表名
     (列名 数据类型,
      ....)
      [comment '表的描述']
     [row format delimited
        fields terminated by '\001'--字段之间的分割符\001八进制对应^A
        collection items terminated by '\002'--数组元素和结构元素的的分割符  ^B
        map keys terminated by '\003'--对应map类型的key-value之间分隔符 ^C
        lines terminated by '\n'--行之间的分割符换行
     ]--指定表行的格式
     [stored as textfile]--指定表存储的数据格式
      [location '可以指定表存储的路径']


     
    例如:
    指定hdfs上的外部存储目录,当使用drop table时,只会删除存储在元数据中的表的映射信息;
    而hdfs上的表对应的目录不会被删除;

查看表:

hive> show tables;

查看表信息:desc 表名;

查看表中第二个字段的内容个数:select count(2) from 表名;

修改表

修改表名:alter table 旧表名 rename to 新表名
追加分区
     alter table 表名 add [if not exitsts]
     partition(year=2014,month=1) location 'hdfs://master:9000/hive/2014/1'
     partition(year=2014,month=2) location 'hdfs://master:9000/hive/2014/2'
     partition(year=2014,month=3) location 'hdfs://master:9000/hive/2014/3'

修改外部表location

     alter table ability2_20181010 set location '/test_log/hemap_ability2_log'
删除分区
     alter table 表名 drop [if exitsts] partition(year=2014,month=1)
  修改列信息
     alter table 表名 change [column] 旧列名 新列名 修改的类型 [comment '列说明'] after 修改列的前一个列名;
     注意
     如果修改的是第一个列,使用first关键字替换after子句;
替换列
     例如:创建原始表,create table x1(a1 string);
          替换并追加列: alter table x1 replace columns(b1 string,b2 int);
          注意:对于以存在列可以修改列名,但是不能修改列的类型;可以添加新的列;          
添加列
      alter table x1 add columns(w4 double,w5 string);

退出hive:quit;