0


【理论】Hive SQL和SQL的常用语法及区别

    Hive SQL和SQL存在若干关键区别。首先,Hive采用了类SQL的查询语言HQL (hive query language),但其与标准SQL在许多方面并不完全相同。例如,Hive是为数据仓库而设计的,并在Hadoop上进行数据存储,这与MySQL等关系型数据库将数据存储在设备或本地系统中的方式有明显区别。

具体来说,以下是Hive SQL和SQL之间的几个主要区别:

  1. 存储位置:Hive的数据存储在Hadoop上,而像MySQL这样的关系型数据库将数据存储在设备或本地系统中。
  2. Hive不支持等值连接,通常使用left join、right join 或者inner join替代。例如,在SQL中内关联可以这样写:select * from a, b where a.key = b.key,而在Hive中则不能这样做。
  3. Hive不支持“Insert into 表 Values ()”、UPDATA、DELETE操作,而标准的SQL是支持这些操作的。
  4. Hive不支持事务,这与许多关系型数据库的支持事务的特性不同。

总体来说,尽管Hive SQL与SQL在某些方面有所相似,但由于其设计目的和底层实现的不同,两者之间存在显著差异。最初的设计目的就是为了让熟悉SQL但不熟悉编程MapReduce的人也能使用Hadoop进行数据处理。

一、Hive SQL的常用语法

Hive SQL是一种基于Hadoop的数据仓库工具,它允许用户使用类似于SQL的语法来查询和分析存储在Hadoop集群中的数据。以下是一些常用的Hive SQL语法:

  1. 数据定义语言(DDL):

    • 创建数据库:CREATE DATABASE database_name;
    • 删除数据库:DROP DATABASE database_name;
    • 显示所有数据库:SHOW DATABASES;
    • 使用数据库:USE database_name;
    • 创建表:CREATE TABLE table_name (column1 data_type, column2 data_type, ...);
    • 删除表:DROP TABLE table_name;
    • 显示所有表:SHOW TABLES;
    • 修改表结构:ALTER TABLE table_name ADD/ALTER/DROP COLUMN column_name data_type;
  2. 数据操作语言(DML):

    • 插入数据:INSERT INTO table_name (column1, column2, ...) VALUES (value1, value2, ...);
    • 查询数据:SELECT column1, column2, ... FROM table_name WHERE condition;
    • 更新数据:UPDATE table_name SET column1 = value1, column2 = value2, ... WHERE condition;
    • 删除数据:DELETE FROM table_name WHERE condition;
  3. 数据查询语言(DQL):

    • 聚合函数:COUNT(), SUM(), AVG(), MIN(), MAX()
    • 分组:GROUP BY column1, column2, ... HAVING condition;
    • 排序:ORDER BY column1 ASC/DESC, column2 ASC/DESC, ...;
    • 分页:LIMIT start, count;
    • 连接查询:JOIN table1 ON table1.column = table2.column;
    • 子查询:SELECT * FROM table_name WHERE column IN (SELECT column FROM another_table);
  4. 数据控制语言(DCL):

    • 授权:GRANT permissions ON database_name.table_name TO user_name;
    • 撤销权限:REVOKE permissions ON database_name.table_name FROM user_name;
    • 创建用户:CREATE USER user_name IDENTIFIED BY password;
    • 删除用户:DROP USER user_name;
  5. 其他常用语句:

    • 查看表结构:DESCRIBE table_name;
    • 查看表详情:DESCRIBE FORMATTED table_name;
    • 查看表分区:SHOW PARTITIONS table_name;
    • 查看表统计信息:ANALYZE table_name;
    • 查看表数据文件位置:MSCK REPAIR table_name;

二、SQL常用语法

SQL是一种结构化查询语言,用于管理和操作关系数据库系统。它包含三个主要部分:数据定义语言(DDL),数据操作语言(DML)和数据查询语言(DQL)。

  1. 数据定义语言(DDL):这是用来定义或更改数据库结构的语句集合。主要包括关键字如CREATE(创建新表或数据库)、ALTER(修改现有数据库或表)以及DROP(删除数据库或表)等。例如,创建一个名为Websites的表,可以执行如下命令:CREATE TABLE Websites(id INT, name VARCHAR(255), url VARCHAR(255));

  2. 数据操作语言(DML):这个部分包括INSERT、UPDATE 和 DELETE等语句,这些语句用于添加新数据、更新现有数据和删除数据。比如,向Websites表中插入一条新的记录,可以使用以下语句:INSERT INTO Websites(id, name, url) VALUES(1, 'Google', 'www.google.com');

  3. 数据查询语言(DQL):这是用来从数据库中获取数据的语句。SELECT是最常用的一个语句,用于检索表中的数据。例如,如果你想查询Websites表中的所有记录,你可以使用以下语句:SELECT * FROM Websites;

需要注意的是,对于大多数数据库系统来说,每条SQL命令的末端都需要使用分号作为分隔符。此外,SQL对大小写不敏感。

标签: hive

本文转载自: https://blog.csdn.net/m0_64801066/article/details/135137086
版权归原作者 草莓肥 所有, 如有侵权,请联系我们删除。

“【理论】Hive SQL和SQL的常用语法及区别”的评论:

还没有评论