HIVE入门一之数据库DDL语句
2017-08-10 22:25
260 查看
数据库Create|Drop|Alter|Show|Use|Desc
create database 语法:
①创建数据库时,不指定LOCATION参数,默认存储在/user/hive/warehouse,会在该目录下生产一个database_name.db文件
show databases :查看所有数据库,default为默认数据库
desc database database_name 或describe database database_name :查看具体某个database_name数据库
use database_name :切换到database_name数据库
drop database database_name :删除database_name数据库,默认情况下只能删除空数据库,当数据库为非空时,可以使用drop database databse_name cascade 级联删除
Alter database 语法:
create database 语法:
CREATE (DATABASE|SCHEMA) [IF NOT EXISTS] database_name [COMMENT database_comment] [LOCATION hdfs_path] [WITH DBPROPERTIES (property_name=property_value, ...)];我们都知道hive是基于hadoop平台的数据仓库,hive的数据存储在hadoop的分布式系统文件中,默认情况下,其存储在hive配置文件hive-site.xml参数hive.metastore.warehouse.dir指定的目录下,默认值为/user/hive/warehouse,当然也可以在创建数据库时,指定LOCATION值来修改默认的路径
①创建数据库时,不指定LOCATION参数,默认存储在/user/hive/warehouse,会在该目录下生产一个database_name.db文件
hive> CREATE DATABASE IF NOT EXISTS study > COMMENT 'study' > WITH DBPROPERTIES ('create_time'='2017-08-09');通过命令dfs -ls /user/hive/warehouse查看文件是否存在
hive> dfs -ls /user/hive/warehouse; Found 2 items drwxr-xr-x - hadoop * 0 2017-08-08 00:28 /user/hive/warehouse/emp drwxr-xr-x - root * 0 2017-08-09 21:38 /user/hive/warehouse/study.db②创建数据库时,指定LOCATION参数,会发现在指定的目录下并没有生产一个database_name.db文件
hive> CREATE DATABASE IF NOT EXISTS bi > COMMENT 'bi' > LOCATION '/user/hadoop' > WITH DBPROPERTIES ('create_time'='2017-08-09');通过命令dfs -ls /user/hadoop查看,发现并没有生产bi.db文件
hive> dfs -ls /user/hadoop; Found 1 items drwxr-xr-x - root * 0 2017-08-09 22:16 /user/hadoop/test再通过show create database database_name查看数据库的创建脚本,也会发现上述两种方法LOCATION值的不同之处
hive> show create database study; OK CREATE DATABASE `study` COMMENT 'study' LOCATION 'hdfs://Master:9000/user/hive/warehouse/study.db' WITH DBPROPERTIES ( 'create_time'='2017-08-09') Time taken: 0.052 seconds, Fetched: 7 row(s) hive> show create database bi; OK CREATE DATABASE `bi` COMMENT 'bi' LOCATION 'hdfs://Master:9000/user/hadoop' WITH DBPROPERTIES ( 'create_time'='2017-08-09') Time taken: 0.048 seconds, Fetched: 7 row(s)如果LOCATION参数指定具体user/hadoop/learning.db时,则hadoop目录下会生产learning.db文件
hive> show create database learning; OK CREATE DATABASE `learning` COMMENT 'learning' LOCATION 'hdfs://Master:9000/user/hadoop/learning.db' WITH DBPROPERTIES ( 'create_time'='2017-08-09') Time taken: 0.073 seconds, Fetched: 7 row(s) hive> dfs -ls /user/hadoop; Found 2 items drwxr-xr-x - root * 0 2017-08-09 23:16 /user/hadoop/learning.db drwxr-xr-x - root * 0 2017-08-09 22:16 /user/hadoop/test我们也可以通过hive的元数据信息查看刚创建的数据库
show databases :查看所有数据库,default为默认数据库
hive> show databases ; OK bi bi_test default learning study Time taken: 0.015 seconds, Fetched: 5 row(s)并没有show database database_name 命令,只有show create database database_name命令查看database_name数据库的创建脚本,不过可以通过DESC 或describe 命令查看
desc database database_name 或describe database database_name :查看具体某个database_name数据库
hive> desc database bi; OK bi bi hdfs://Master:9000/user/hadoop root USER Time taken: 0.061 seconds, Fetched: 1 row(s) hive> describe database study; OK study study hdfs://Master:9000/user/hive/warehouse/study.db root USER Time taken: 0.052 seconds, Fetched: 1 row(s)
use database_name :切换到database_name数据库
hive> use default; OK Time taken: 0.028 seconds hive> show tables; OK emp test Time taken: 0.023 seconds, Fetched: 2 row(s) hive> use bi; OK Time taken: 0.024 seconds hive> show tables; OK test Time taken: 0.017 seconds, Fetched: 1 row(s)
drop database database_name :删除database_name数据库,默认情况下只能删除空数据库,当数据库为非空时,可以使用drop database databse_name cascade 级联删除
hive> use bi; OK Time taken: 0.05 seconds hive> show tables; OK test Time taken: 0.051 seconds, Fetched: 1 row(s) hive> drop table test; Moved: 'hdfs://Master:9000/user/hadoop/test' to trash at: hdfs://Master:9000/user/root/.Trash/Current OK Time taken: 1.528 seconds hive> drop database bi; Moved: 'hdfs://Master:9000/user/hadoop' to trash at: hdfs://Master:9000/user/root/.Trash/Current OK Time taken: 0.177 seconds hive> use learning; OK Time taken: 0.039 seconds hive> show tables; OK test1 Time taken: 0.043 seconds, Fetched: 1 row(s) hive> drop database learning cascade; Moved: 'hdfs://Master:9000/user/hadoop/learning.db/test1' to trash at: hdfs://Master:9000/user/root/.Trash/Current Moved: 'hdfs://Master:9000/user/hadoop/learning.db' to trash at: hdfs://Master:9000/user/root/.Trash/Current OK Time taken: 0.195 seconds通过上述结果看:删除数据库或表,只是对应目录或文件移到了Trash(垃圾箱)目录下
hive> dfs -ls hdfs://Master:9000/user/root/.Trash/Current/user/hadoop; Found 3 items drwx------ - root * 0 2017-08-10 00:01 hdfs://Master:9000/user/root/.Trash/Current/user/hadoop/learning.db drwxr-xr-x - root * 0 2017-08-10 00:01 hdfs://Master:9000/user/root/.Trash/Current/user/hadoop/learning.db1502294480618 drwxr-xr-x - root * 0 2017-08-09 22:16 hdfs://Master:9000/user/root/.Trash/Current/user/hadoop/test hive> dfs -ls hdfs://Master:9000/user/root/.Trash/Current/user/zxy; Found 1 items drwxr-xr-x - root * 0 2017-08-09 22:34 hdfs://Master:9000/user/root/.Trash/Current/user/zxy/student hive> dfs -ls hdfs://Master:9000/user/root/.Trash/Current/user/hadoop; Found 3 items drwx------ - root * 0 2017-08-10 00:01 hdfs://Master:9000/user/root/.Trash/Current/user/hadoop/learning.db drwxr-xr-x - root * 0 2017-08-10 00:01 hdfs://Master:9000/user/root/.Trash/Current/user/hadoop/learning.db1502294480618 drwxr-xr-x - root * 0 2017-08-09 22:16 hdfs://Master:9000/user/root/.Trash/Current/user/hadoop/test hive> dfs -ls hdfs://Master:9000/user/root/.Trash/Current/user/hadoop/learning.db; Found 1 items drwxr-xr-x - root * 0 2017-08-10 00:00 hdfs://Master:9000/user/root/.Trash/Current/user/hadoop/learning.db/test1通过show databases查看删除后的结果
hive> show databases; OK default study Time taken: 0.042 seconds, Fetched: 2 row(s)
Alter database 语法:
ALTER (DATABASE|SCHEMA) database_name SET DBPROPERTIES (property_name=property_value, ...); ALTER (DATABASE|SCHEMA) database_name SET OWNER [USER|ROLE] user_or_role;修改数据的create_time属性
hive> alter database study set dbproperties ('create_time' ='2017-8-10'); OK Time taken: 0.046 seconds
相关文章推荐
- Hive 操作数据库语句总结
- Hive 操作数据库语句总结
- Oracle获得数据库对象DDL语句
- oracle 如何查看创建表等数据库对象时的DDL语句
- 第17天(就业班) jdbc连接数据库、statement执行DDL语句、statement执行DQL查询语句、preparedstatement、callablestatement、通讯录改造jdb
- 数据库操作语句类型(DQL、DML、DDL、DCL)简介
- 【Oracle入门系列】第07章_DDL与数据库对象
- 数据库入门-基本sql语句及数据类型
- Hive学习之函数DDL和Show、Describe语句
- oracle入门之 DDL数据定义语句(一)
- Hive_3. DDL -- 数据库 & 内部表 & 外部表
- Hive 操作数据库语句总结
- 数据库操作语句类型(DQL、DML、DDL、DCL)简介
- EBS_获取数据库对象的DDL语句
- 大数据(二十一)Hive【Hive【DDL语句】】
- hadoop学习之HIVE(3.1):hive建库,建表语句(DDL)
- 【原】数据库SQL语句入门
- MySQL 数据库SQL语句---DDL语句
- Hive学习之函数DDL和Show、Describe语句
- 在Hive中执行DDL之类的SQL语句时遇到的一个问题