首页 > 其他分享 >Hive学习路线-Hive数据的DDL,DML

Hive学习路线-Hive数据的DDL,DML

时间:2023-11-25 10:05:05浏览次数:32  
标签:... database create DML tbName Hive DDL table 数据库

三.Hive数据的DDL,DML

SQL:数据库的核心语言,采纳为操作关系型数据库的国际标准语言( ISO )

非关系型数据库引入此语言( hive : HQL 额外的功能 )

分类:

  1. 数据定义语言(表结构) :Data definition language DDL ,create /drop /alter
  2. 数据操作语言 (数据修改):Data manipulation language DML ,update /delete /insert
  3. 数据查询语言(数据查询) :Data Query language DQL , select

1. DDL(和数据无关,与结构有关)

1.1 针对数据库

1.1.1. 创建数据库

语法:create database [if not exists] dbName [location path]; 例如: create database db1; //默认存储路径 /user/hive/warehouse/ create database db1;//报错 create database if not exists db1;//不报错 create database db2 location '/user/db2.db';//创建数据库并指定存储路径

1.1.2. 查看数据库

使用某一个数据库:use databaseName; 查看所有的数据库:show databases; 查看某一个数据库的详细信息:desc database [extended] dbName

1.1.3. 修改数据库

只能修改数据库的描述信息 语法:alter database dbName set dbproperties('desc'='ceshi db'); #例如: alter database db1 set dbproperties('desc'='ceshi db');

1.1.4. 删除数据库

语法: drop database [if not exists] dbName

1.2 针对数据表

1.2.1. 创建表

完整版的建表语句: create [external] table [if not exists] tbName (col definiton [comment 字段的描述信息] ... ... ...) [comment 表的描述信息] [PARTITIONED BY (col_name data_type [COMMENT col_comment], ...)] # 创建分区 [CLUSTERED BY (col_name, col_name, ...) ] # 创建分桶表 [row format ... ... ...] # 指定表的分隔符 [location path] # 指定表的存储位置 [AS select_statement] # 创建表的方式 LIKE existing_table_or_view_name # 创建表的方式 创建表方式一:直接创建 create table tbName (col type... ...) 创建表方式二:查询建表法 , AS (复制表结构,和表中所有数据到新的表中) create table tbName as select * from tbName2 ; 创建表方式三:like建表法 , LIKE (只复制表结构,不复制表中所有数据到新的表中) create table tbName like tbName2;

【知识点】Hive的分区表(文件夹)和分桶表(文件)的区别

1,Hive分区。

是指按照数据表的某列或某些列分为多个区,区从形式上可以理解为文件夹,比如我们要收集某个大型网站的日志数据,一个网站每天的日志数据存在同一张表上,由于每天会生成大量的日志,导致数据表的内容巨大,在查询时进行全表扫描耗费的资源非常多。那其实这个情况下,我们可以按照日期对数据表进行分区,不同日期的数据存放在不同的分区,在查询时只要指定分区字段的值就可以直接从该分区查找。

2,分桶。

分桶是相对分区进行更细粒度的划分。分桶将整个数据内容按照某列属性值得hash值进行区分,如要安装name属性分为3个桶,就是对name属性值的hash值对3取摸,按照取模结果对数据分桶。如取模结果为0的数据记录存放到一个文件,取模为1的数据存放到一个文件,取模为2的数据存放到一个文件。

1.2.2. 查看表

show tables; 查看当前库中的所有的表 show create table tbName; 查看某一个表的具体的建表语句(获取当前表设置的分隔符信息) show tables in dbName; 指定查看某一个数据库中的所有的表 show tables like 'stu*' ; 模糊查询多个表,不管用 desc tbName; 查看表中的具体的字段信息 desc extended tbName ; 查看表的详情 (查看外部表) desc formatted tbName ; 查看表的详情 (查看内部表和外部表)

1.2.3. 修改表

1. 修改表的名称 alter table tbName rename to newTbName ; #例如 alter table dog rename to dog ; 2. 修改表字段的定义 添加新的列: alter table tbName add columns(colName type... ....) #例如: alter table dog add columns(remk string); 修改列定义:change可以修改 列名称 / 列类型 / 列的位置 alert table tbName change oldColName newColName newType [first|after colName] #例如: ALTER TABLE dog CHANGE remk remark string; 表结构替换: 替换调原来的表结构 alert table tbName replace columns(colName type... ....) 注意:hive2.0+版本中,对类型转换进行限制 小类型 》大类型 ---> 运行 大类型 》小大类型 ---> 运行

1.2.4. 删除表

1. 删除内部表 drop table tbName; truncate table tbName; 注意:更换mysql驱动包的版本 2. 删除外部表 方式一:设置外部表属性未false alter table tbName set tblproperties('external'='false'); drop table tbName; 方式二:删除外部表存储文件 hdfs dfs -rm -r -f /user/hive/warehouse/tbName

2. DML

数据仓库

标签:...,database,create,DML,tbName,Hive,DDL,table,数据库
From: https://blog.51cto.com/u_16270511/8556566

相关文章

  • Hive学习路线-优化
    十、优化1.数据倾斜maptask和reducetask的个数1.1maptask的个数:文件的大小、文件的个数、集群上blocksize的大小问题:小文件过多的问题(maptask并不是越多越好)在map执行前进行合并,减少maptask的个数//配置文件修改配置<property><name>hive.......
  • Hive学习路线-自定义函数
    九、自定义函数1.查看系统提供的函数列表showfunctions;2.查看具体某一个函数的描述信息descfunction[extended]函数名称;3.自定义函数Userdefinedfunction/UDF3.1创建一个java项目,导入hive的libs3.2创建类,继承org.apache.hadoop.hive......
  • 3-Hive学习路线-软件的基本操作
    2.3.软件的基本操作2.3.1.进入hive[root@localhost~]hive回车2.3.2.操作showdatabases;//显示所有数据库usedatabaseName;//切换到指定数据库showtables;//显示数据中所有表createtable.......
  • 4.MySQL(数据模型,SQL简介,DDL,DML)
    MySQL(数据模型,SQL简介,DDL,DML)概述:数据库:DataBase(DB),是存储和管理数据的仓库;数据库管理系统:DataBaseManagementSystem(DBMS),操纵和管理数据库的大型软件;SQL:StructuredQueryLanguage,操作关系型数据库的编程语言,定义了一套操作关系型数据库统一标准;MySQL是一......
  • 【题解 P2839】 middle
    [国家集训队]middle题目描述一个长度为\(n\)的序列\(a\),设其排过序之后为\(b\),其中位数定义为\(b_{n/2}\),其中\(a,b\)从\(0\)开始标号,除法下取整。给你一个长度为\(n\)的序列\(s\)。回答\(Q\)个这样的询问:\(s\)的左端点在\([a,b]\)之间,右端点在\([c,d]\)......
  • 06-基础SQL-DML(数据操作语言)
    DML介绍DML英文全称是DataManipulationLanguage(数据操作语言),用来对数据库中表的数据记录进行增删改操作DML-添加数据给指定字段添加一条数据INSERTINTO表名(字段名1,字段名2,...)VALUES(值1,值2,...);给全部字段添加一条数据INSERTINTO表名VALUES(值1,......
  • 05-基础SQL-DDL(数据定义语言)-数据库操作
    DDL-数据库操作1.查询查询所有数据库SHOWDATABASES;查询当前数据库SELECTDATABASE();2.创建创建一个数据库CREATEDATABASE[IFNOTEXISTS]数据库名[DEFAULTCHARSET字符集][COLLATE排序规则];3.删除删除一个数据库DROPDATABASE[IFEXISTS]数据库名;......
  • 如何使用Fiddler进行弱网测试
    测试APP、web经常需要用到弱网测试,也就是在信号差、网络慢的情况下进行测试。我们自己平常在使用手机APP时,在地铁、电梯、车库等场景经常会遇到会话中断、超时等情况,这种就属于弱网。普通的弱网测试可以选择第三方工具对带宽、丢包、延时等模拟弱网环境。这里带大家一起解锁Fidd......
  • SQL DDL语句
    DataDefinationLanguage,数据定义语言。这类SQL语句用于定义或修改数据库结构。主要的DDL操作包括CREATE(创建新表或数据库)、ALTER(修改现有数据库对象的结构)和DROP(删除表、视图或其他数据库对象)。表操作创建表CREATETABLE创建数据表的时候,不但需要指定表名字和列名,还需......
  • SQL DML语句
    DataManipulationLanguage数据操纵语言,用于数据的增加、删除、更新等操作。包括INSERT(向表中插入新数据)、UPDATE(修改表中的数据)和DELETE(从表中删除数据)。插入数据INSERT插入一行数据插入数据的时候,不指定列名直接使用VALUES指定数据,表示为表中的每一列提供一个值,值的顺......