mySQL和Hive的区别

本文探讨了SQL和Hive的主要区别,包括存储位置、数据更新、索引、执行方式和可扩展性。Hive适合大数据量处理,不支持数据改写和添加,无索引,而SQL支持CRUD操作,有索引,适用于在线查询。同时,文章列举了SQL的执行顺序、语法对比,并给出了一些SQL面试题和相关知识点。
摘要由CSDN通过智能技术生成

SQL和HQL的区别

整体

1、存储位置:Hive在Hadoop上;Mysql将数据存储在设备或本地系统中;
2、数据更新:Hive不支持数据的改写和添加,是在加载的时候就已经确定好了;数据库可以CRUD;
3、索引:Hive无索引,每次扫描所有数据,底层是MR,并行计算,适用于大数据量;MySQL有索引,适合在线查询数据;
4、执行:Hive底层是MapReduce;MySQL底层是执行引擎;
5、可扩展性:Hive:大数据量;MySQL:相对就很少了。

SQL执行顺序:
from -> where -> group by -> having -> select -> order by -> limit

语法

内容

SQL

Hive

非等值连接

支持

不支持

子查询

支持

不支持

insert和update

支持

不支持,仅支持覆盖重写整个表

IS [NOT] NULL

null代表空值

String类型的字段若是空(empty)字符串, 即长度为0, 那么对它进行IS NULL的判断结果是False

数组拆分

LATERAL VIEW explode(数组类型字段) newTable AS newzd

数组包含

find_in_set(value,Array)

array_contains(Array, value)

分号

语句结束标识

需要对分号进行转义表示

不等于

!=或者<>

不能使用!=,只能使用<>

group by别名问题

select中新命名的别名可以直接在group by 中使用

不能直接使用别名,只能使用原内容或者再嵌套一层

更多相关细节:
https://zhuanlan.zhihu.com/p/322399014
https://www.cnblogs.com/yxzfscg/p/4892124.html

SQL相关面试题

学生成绩表Grade

id

name

subject

grade

001

张三

语文

81

001

张三

数学

75

002

李四

语文

76

002

李四

数学

90

003

王五

语文

81

003

王五

数学

100

学生班级表Class

name

class

张三

一班

李四

二班

王五

二班

题目一:用一条SQL 语句查询出每门课都大于80分的学生姓名
法一:

select name 
from Grade 
group by name 
having min(grade) > 80

法二:

select distinct name 
from Grade 
where name not in (select distinct name 
                   from Grade 
                   where grade <= 80)

题目二:用一条SQL语句查询出每个班语文成绩排名第一的学生班级以及姓名
法一:

select class,name
from
(select Grade.name,class,grade,
 dense_rank() over(partition by class order by Grade.grade desc) as ranking
from Grade,Class
where Grade.name = Class.name and subject = "语文"
)
where ranking = 1

法二:

select class,name 
from
(select cla
  • 0
    点赞
  • 2
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
### 回答1: 很高兴为您服务。MySQLHive的主要区别在于,MySQL是一个关系型数据库管理系统,它提供了用于存储和管理数据的功能,而Hive是一种基于Hadoop的数据仓库系统,它执行基于Hadoop的数据处理任务,例如查询和分析。MySQL只支持结构化的数据,而Hive支持结构化数据和非结构化数据。 ### 回答2: MySQLHive是两种不同的数据库管理系统,主要用于不同的数据处理和存储需求。 首先,MySQL是关系型数据库管理系统(RDBMS),而Hive是基于Hadoop的数据仓库基础结构,主要用于大数据分析和处理。MySQL适用于处理结构化数据,而Hive适用于处理半结构化和非结构化数据。 其次,MySQL使用SQL作为查询语言,而Hive使用类似于SQL的查询语言HiveQL(HQL)作为查询语言。HiveQL可以将查询转化为Hadoop MapReduce任务,利用集群并行计算能力进行大规模数据处理。 此外,MySQL是一个实时性较高的数据库系统,支持快速的读写操作,并具有较低的延迟。Hive则是为了处理大规模数据而设计的,其查询速度可能相对较慢,但可以处理海量数据。Hive通过将查询转化为MapReduce任务,利用集群的计算能力来实现大规模数据处理。 最后,MySQL适用于在线事务处理(OLTP),例如Web应用程序和电子商务网站等需要频繁读写操作的场景。而Hive适用于数据仓库和大数据分析场景,例如处理日志数据、用户行为分析和数据挖掘等。 综上所述,MySQLHive在功能、适用场景和查询性能等方面存在差异。选择使用哪种数据库系统要根据具体的需求和数据处理任务来决定。 ### 回答3: MySQLHive是两种不同的数据库管理系统,具有一些明显的区别。以下是MySQLHive的主要区别: 1. 数据处理方式:MySQL是关系型数据库管理系统(RDBMS),而Hive是建立在Hadoop之上的数据仓库基础架构。MySQL使用结构化查询语言(SQL)来操作和管理数据,而Hive则使用Hive查询语言(HQL)来进行数据处理。 2. 数据存储方式:MySQL将数据存储在磁盘上的表格中,每个表格有其特定的模式和结构。Hive则将数据存储在分布式文件系统中,如Hadoop的HDFS。它可以处理大规模数据,并支持数据的分区和存储桶。 3. 数据处理能力:MySQL适用于小规模的数据处理任务,可以实时地进行数据读写和查询操作。Hive则更适用于大规模的数据处理和分析任务,可以通过MapReduce并行计算框架来处理大数据集。 4. 数据类型:MySQL具有丰富的内置数据类型,如整数、字符串、日期等。Hive也有类似于MySQL的数据类型,但它还支持结构化数据类型(如数组、结构体和映射)来处理复杂的数据。 5. 执行速度:由于MySQL是关系型数据库,对于简单的查询和事务处理,其执行速度较快。而Hive的执行速度较慢,因为它是为处理大数据而设计的,并且需要通过MapReduce进行计算。 综上所述,MySQL适合小规模的实时数据处理,而Hive则适合于大规模数据的批处理和分析。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值