Hive 从入门到精通 - DQL 、DML、DDL、DCL 与 各种操作类型对应解决方案 (四)

本文详细解读了SQL语言的四大类别:数据查询(DQL)、数据操纵(DML)、数据定义DDL)和数据控制(DCL)。包括基本查询结构、数据操作(插入、更新、删除)、数据库对象创建、权限管理和事务控制。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

SQL(Structure Query Language)语言是数据库的核心语言。

SQL语言共分为四大类:

数据查询语言DQL(Data Query Language),数据操纵语言DML(Data Manipulation Language),
数据定义语言DDL(Data Definition Language),数据控制语言DCL(Data Control Language)。

1、DQL 数据查询语言

数据查询语言DQL基本结构是由SELECT(select)子句,FROM(from)子句,WHERE(where)
子句组成的查询块:
SELECT <字段名表>
FROM <表或视图名>
WHERE <查询条件>

2、DML 数据操纵语言

数据操纵语言DML主要有三种形式:
1) 插入:INSERT(insert)
DEMO : INSERT INTO table_name (列1, 列2,...) VALUES (值1, 值2,....)
2) 更新:UPDATE(update)
DEMO : UPDATE 表名称 SET 列名称 = 新值 WHERE 列名称 = 某值
3) 删除:DELETE(delete)
DEMO : DELETE FROM 表名称 WHERE 列名称 = 值

3、DDL 数据定义语言

数据定义语言DDL用来建立数据库中的各类对象-----表、视图、索引、同义词、聚簇等如:
DDL操做是隐性提交的!不能rollback
CREATE   TABLE/   VIEW/  INDEX/   SYN/  CLUSTER
           |        |       |      |       |
           表      视图     索引  同义词   簇数据库
-- 创建 分区、分桶、指定分隔符、指定表数据存储文件格式
set hive.enforce.bucketing = true;  -- (Note: Not needed in Hive 2.x onward)
 create table logs(ts bigint,line string)
 partitioned by(dt string,country string)
 clustered by (ts) sorted by (ts asc) into 4 buckets
 row format delimited fields terminated by '\t'
 STORED AS PARQUET;;

详解

-- Parquet is supported by a plugin in Hive 0.10, 0.11, and 0.12 and natively in Hive 0.13 and later.
-- Hive 0.10 - 0.12
CREATE TABLE parquet_test (
 id int,
 str string,
 mp MAP<STRING,STRING>,
 lst ARRAY<STRING>,
 strct STRUCT<A:STRING,B:STRING>) 
PARTITIONED BY (part string)
ROW FORMAT SERDE 'parquet.hive.serde.ParquetHiveSerDe'
 STORED AS
 INPUTFORMAT 'parquet.hive.DeprecatedParquetInputFormat'
 OUTPUTFORMAT 'parquet.hive.DeprecatedParquetOutputFormat';
 
-- Hive 0.13 and later
CREATE TABLE parquet_test (
 id int,
 str string,
 mp MAP<STRING,STRING>,
 lst ARRAY<STRING>,
 strct STRUCT<A:STRING,B:STRING>) 
PARTITIONED BY (part string)
STORED AS PARQUET;

4、DCL 数据控制语言

数据控制语言DCL用来授予或回收访问数据库的某种特权,并控制数据库操纵事务发生的时间及效果,对数据库实行监视等。
1) GRANT:授权

2)COMMIT [WORK]:提交
 在数据库的插入、删除和修改操做时,只有当事务在提交到数据库时才算完成。
 在事务提交前,只有操做数据库的这我的才能有权看到所作的事情,
 别人只有在最后提交完成后才能够看到。
 
 提交数据有三种类型:【显式提交】、【隐式提交】及【自动提交】
 ① 显式提交:用COMMIT命令直接完成的提交为显式提交
 ② 隐式提交:用SQL命令间接完成的提交为隐式提交
 => ALTER,AUDIT,COMMENTCONNECTCREATE,DISCONNECT,DROPEXITGRANT,NOAUDIT,QUIT,REVOKERENAME。
 ③ 自动提交:若把AUTOCOMMIT设置为ON,则在插入、修改、删除语句执行后,系统将自动进行提交,这就是自动提交。

5、数据控制语言 解决方案

--新增字段表  添加在最后
alter table 表名 add columns(字段名 数据类型) 
--移动到指定位置,address字段的后面
alter table table_name change c_time c_time string after address;
--修改字段类型
Alter table 表名  change column 原字段名称  现字段名称  数据类型
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

Splicing

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值