一、数据准备
为了演示查询操作,这里需要预先创建三张表,并加载测试数据。
数据文件 emp.txt 和 dept.txt 可以从本仓库的resources 目录下载。
1.1 员工表
- -- 建表语句
- CREATE TABLE emp(
- empno INT, -- 员工表编号
- ename STRING, -- 员工姓名
- job STRING, -- 职位类型
- mgr INT,
- hiredate TIMESTAMP, --雇佣日期
- sal DECIMAL(7,2), --工资
- comm DECIMAL(7,2),
- deptno INT) --部门编号
- ROW FORMAT DELIMITED FIELDS TERMINATED BY "\t";
-
- --加载数据
- LOAD DATA LOCAL INPATH "/usr/file/emp.txt" OVERWRITE INTO TABLE emp;
1.2 部门表
- -- 建表语句
- CREATE TABLE dept(
- deptno INT, --部门编号
- dname STRING, --部门名称
- loc STRING --部门所在的城市
- )
- ROW FORMAT DELIMITED FIELDS TERMINATED BY "\t";
-
- --加载数据
- LOAD DATA LOCAL INPATH "/usr/file/dept.txt" OVERWRITE INTO TABLE dept;
1.3 分区表
这里需要额外创建一张分区表,主要是为了演示分区查询:
- CREATE EXTERNAL TABLE emp_ptn(
- empno INT,
- ename STRING,
- job STRING,
- mgr INT,
- hiredate TIMESTAMP,
- sal DECIMAL(7,2),
- comm DECIMAL(7,2)
- )
- PARTITIONED BY (deptno INT) -- 按照部门编号进行分区
- ROW FORMAT DELIMITED FIELDS TERMINATED BY "\t";
-
-
- --加载数据
- LOAD DATA LOCAL INPATH "/usr/file/emp.txt" OVERWRITE INTO TABLE emp_ptn PARTITION (deptno=20)
- LOAD DATA LOCAL INPATH "/usr/file/emp.txt" OVERWRITE INTO TABLE emp_ptn PARTITION (deptno=30)
- LOAD DATA LOCAL INPATH "/usr/file/emp.txt" OVERWRITE INTO TABLE emp_ptn PARTITION (deptno=40)
- LOAD DATA LOCAL INPATH "/usr/file/emp.txt" OVERWRITE INTO TABLE emp_ptn PARTITION (deptno=50)
二、单表查询
2.1 SELECT
- -- 查询表中全部数据
- SELECT * FROM emp;
2.2 WHERE