CREATE DATABASE mydb;
CREATE DATABASE IF NOT EXIST mydb;
SHOW DATABASES;
SHOW DATABASES LIKE 'm.*';
CREATE DATABASE mydb LOCATION 'my/directory';
CREATE DATABASE mydb COMMENT 'hello';
DESCRIBE DATABASE mydb;
CREATE DATABASE mydb
WITH DBPROPERTIES('creator' = 'ZQ','date' = '2016-11-19');
DESCRIBE DATABASE EXTENDED mydb;
USE mydb;
--无法查看当前所在的是哪个数据库,可以重复使用USE,无嵌套
DROP DATABASE IF EXISTS mydb;
--无法删除包含表的数据库
DROP DATABASE IF EXISTS mydb PESTRICT;
--同上默认情况
DROP DATABASE IF EXISTS mydb CASCADE;
-CASCADE可以自行删除数据库中的表
修改数据库:
ALTER DATABASE mydb SET DBPROPERTIES ('edited-by'='Zqqq'); CREATE TABLE IF NOT EXISTS mydb.employees ( name STRING COMMENT 'Employee name', salaty FLOAT COMMENT 'Salary') COMMENT 'Description of the table' TBLPROPERTIES('creator'='me','created_at'='2016-11-19') LOCATION '/user/hive/warehouse/mydb.db/employees'; CREATE TABLE IF NOT EXISTS mybd.employees2 LIKE mydb.employees; --拷贝模式,而无需拷贝数据 SHOW TABLES; USE default; SHOW TABLE IN mydb; --不支持与正则表达式同时使用 USE mydb; SHOW TABLES LIKE 'empl.*'; DESCRIBE EXTENDED mydb.employees; --实际使用情况如下,用FORMATTED替换EXTENED,更加可读 DESCRIBE FORMATTED mydb.employees; --DESCRIBE也可以描述每个字段的信息 --外部表 CREATE EXTERNAL TABLE IF NOT EXISTS stocks ( exchange STRING. symbol STRING ) ROW FORMAT DELIMITED FIELDS TERMINATED BY ',' LOCATION 'data/stocks'; --分区表 CREATE TABLE employees( name STRING, country STRING ) PARTITIONED BY(country STRING); SHOW PARTITIONS employees; SHOW PARTITIONS employees PARTITION(country='china'); --通过载入数据的方式创建分区 LOAD DATA LOCAL INPATH '${env:HOME}/california-employees' INTO TABLE employees PARTITION (country='US', state='CA'); --如果分区目录不存在的话,会先创建分区目录,然后再拷贝数据
LOAD DATA LOCAL INPATH '${env:HOME}/california-employees' OVERWRITE INTO TABLE employees PARTITION (country='US', state='CA');
SELECT * FROM employees
WHERE country = 'china';
--修改表
ALTER TABLE mydb RENAME TO my_db;
--增加新分区
ALTER TABLE mydb ADD IF NOT EXISTS
PARTITION (year=2016,month=11,day=1) LOACTION 'logs/2016/11/01'
PARTITION (year=2016,month=11,day=2) LOACTION 'logs/2016/11/01'
PARTITION (year=2016,month=11,day=3) LOACTION 'logs/2016/11/01' ...; --修改路径 ALTER TABLE mydb PARTITION(year=2016,month=11,day=2) SET LOCATION 's3n://ourbucket/logs/2016/11/02'; ALTER TABLE mydb DROP IF EXISTS PARTITION (year=2016,month=11,day=1);