数据库DDL
1.创建库的语法
CREATE DATABASE [IF NOT EXISTS] database_name [IF NOT EXISTS] --增强代码的健壮性
[COMMENT database_comment] --这个库是干嘛的
[LOCATION hdfs_path] --你当前的库存储的hdfs路径
[WITH DBPROPERTIES (property_name=property_value, ...)]; --一点用没有(鸡肋)
create database db_hive
comment 'this in my first db'
2.创建数据库: (增)
创建一个数据库,指定数据库在HDFS上存放的位置
hive (default)> create database db_hive2 location '/db_hive2';
--在你不指定的location的情况下 默认在你的hdfs/user/hive/warehouse下创建一个以database_name.db名的文件夹 来当做库
--在你指定location的情况下 拿最后一级目录当做库的名字
3.过滤显示查询的数据库: (查)
hive> show databases like 'db_hive*';
OK
db_hive
db_hive_1
显示数据库信息:
hive> desc database extended db_hive;
OK
db_hive hdfs://hadoop102:8020/user/hive/warehouse/db_hive.db atguiguUSER
4.改
用户可以使用ALTER DATABASE命令为某个数据库的DBPROPERTIES设置键-值对属性值,来描述这个数据库的属性信息。数据库的其他元数据信息都是不可更改的,包括数据库名和数据库所在的目录位置。
alter database db_hive set dbproperties('dbtype'='db'); --修改原来的属性
alter database db_hive set dbproperties('createtime'='2020-08-19'); --增加原来的属性
所以其实数数据库的属性就是为了凑一个改的效果,并不怎么用
5.删
drop database if exists db_hive2; --加上 if exists 增加代码的健壮性
drop database db_hive cascade; --强制删除 (当你库下面有表的时候) 慎用(只有你确定所有表都没用的时候)
表DDL
创建表
CREATE [EXTERNAL] TABLE [IF NOT EXISTS] table_name
--external表示创建的表是否为外部表,内外部表的效果底下介绍
[(col_name data_type [COMMENT col_comment], ...)]
--列名--列的类型 --列的注释(列拿来干什么的)
例子: create table test (age int comment 'agemean');
可能会有问题的是,这里为什么列名和列的类型都是可选项,因为我们可以用底下写的模范命令(as,like)来模仿一个数据库,这样原本数据库的列的架构就是可选项了。!!!
=================================================================================
[COMMENT table_comment] --表的注释 这个表拿来干嘛的
=================================================================================
[PARTITIONED BY (col_name data_type [COMMENT col_comment], ...)] --分区表
[CLUSTERED BY (col_name,