DDL数据定义--Hive中数据可和表的基本操作(增删改查)

  • 数据库

创建数据库:

CREATE DATABASE [ IF NOT EXISTS ]  database_name 

*****IF NOT EXISTS进行判断,避免创建的数据库已经存在的错误

 创建一个数据库,指定数据库在HDFS上存放的位置:

  CREATE DATABASE database_name location ' 存放在HDFS的路径 '

查询数据库:

显示数据库:show databases ;

过滤显示查询的数据库:show databases like ' 库名* ';

查看数据库详情:

显示数据库信息:desc database database_name;

显示数据库详细信息:desc datbase extended database_name;

切换当前数据库:

 use database_name;

修改数据库:

为数据库设置键值对属性值:

  alter database extended database_name set dbproperties(' createtime ' = ' 20170830 ');

删除数据库:

删除空数据库:drop database database_name;

删除数据库不存在用 IF EXISTS进行判断:drop database if exists database_name;

数据库不为空,采用cascade命令,强制删除:drop database database_name cascade;

 

创建表:

 CREATE [ EXTERNAL ] TABLE [ IF NOT EXISTS ] table_name(  //创建表,如果相同名字的表已经存在,则抛出异常,用户可以通过 IF NOT EXISTS 来忽略这个异常

//EXTERNAL关键字可以让用户创建一个外部表,默认都是内部表(管理表)

  col_name data_type..... ) //创建表字段和字段类型

  COMMENT table_comment  //为表和列添加注释

  PARTITIONEND BY ( col_name data_type .....)  //创建分区表

  CLUSTERED BY (col_name , col_name , ....)  //创建分桶表

  SORTED BY (col_name ASC / DESC,...) INTO num_byckets BUCKETS  //这个命令不常用,对桶中的一个或多个列另外排序

     row format delimited fields terminated by ' \t '  //以\t对字段进行分割

  collection items terminated by '_'  //MAP STRUCT 和 ARRAY 的分隔符(数据分割符号)

  map keys terminated by ':'    //MAP中的key与value的分隔符

  lines terminated by '\n';   //行分隔符

管理表

  默认创建的表都是管理表,有时也称为内部表,因为这种表,Hive会(或多或少)控制着数据的生命周期。当我们删除一个管理表时,Hive也会删除这个表中的数据。

根据查询结果创建表(查询的结果会添加do新创建的表中):

  create table if not exists student3 as select id , name from student ;

 

  

 

posted @ 2020-11-28 20:05  sycl  阅读(236)  评论(0编辑  收藏  举报