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

打印 上一主题 下一主题

主题 677|帖子 677|积分 2031

        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对大小写不敏感。

免责声明:如果侵犯了您的权益,请联系站长,我们会及时删除侵权内容,谢谢合作!更多信息从访问主页:qidao123.com:ToB企服之家,中国第一个企服评测及商务社交产业平台。
回复

使用道具 举报

0 个回复

倒序浏览

快速回复

您需要登录后才可以回帖 登录 or 立即注册

本版积分规则

盛世宏图

金牌会员
这个人很懒什么都没写!

标签云

快速回复 返回顶部 返回列表