目录
[需求2. 默认分隔符案例](#需求2. 默认分隔符案例)
需求1.数据库基本操作
-- 1.创建数据库test_sql,cs1,cs2,cs3
sql
create database test_sql;
create database cs1;
create database cs2;
create database cs3;
-- 2.1删除数据库cs2
sql
drop database cs2;
-- 2.2在cs3库中创建一个stu表,有id,name两个字段,然后删除cs3
sql
use cs3;
create table stu(
id int,
name string);
drop database cs3 cascade ; --有表的库要加cascade
-- 3.切换数据库cs1
sql
use cs1;
-- 4.1查询所有数据库
sql
show databases ;
-- 4.2查看当前使用的数据库 select current_database
sql
select current_database();
-- 4.3查看cs1数据库信息 desc database 表名
sql
desc database cs1;
需求2. 默认分隔符案例
文件team_ace_player.txt中记录了手游《王者荣耀》主要战队内最受欢迎的王牌选手信息,内容如下,分隔符是hive的默认分隔符,要求在Hive中建表,把对应的数据存储到hdfs中
1成都AG超玩会一诺 2重庆QGhappyHurt 3DYG久诚 4上海EDG.M浪浪 5武汉eStarProCat 6RNG.M暴风锐 7RW侠渡劫 8TES滔搏迷神 9杭州LGD大鹅伪装 10南京Hero久竞清融
字段:id、team_name(战队名称)、ace_player_name(王牌选手名字)
分析一下:数据都是原生数据类型,且字段之间分隔符是\001
,因此在建表的时候可以省去row format语句,因为hive默认的分隔符就是\001
。
提示: 可以直接使用insert方式插入数据,也可以提前建文件把对应的文件上传到hdfs中
1.创建表
sql
--步骤1创建表
create table team_ace(
id int,
team_name string,
ace_player_name string
)row format delimited
fields terminated by ''
;
2.加载数据
txt文件如下
sql
--步骤2加载数据,手动将此题目里的txt文件上传到hdfs中 ,然后加载到表中
load data inpath '/input/team_ace_player.txt' into table team_ace;
3.验证数据
sql
--步骤3验证数据
select * from team_ace;
--结果如下
--1,成都AG超玩会,一诺
-- 2,重庆QGhappy,Hurt
-- 3,DYG,久诚
-- 4,上海EDG.M,浪浪
-- 5,武汉eStarPro,Cat
-- 6,RNG.M,暴风锐
-- 7,RW侠,渡劫
-- 8,TES滔搏,迷神
-- 9,杭州LGD大鹅,伪装
-- 10,南京Hero久竞,清融
--需求:请查询来自上海战队的ace选手名字
sql
select ace_player_name from team_ace where team_name like '%上海%';