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,COMMENT,CONNECT,CREATE,DISCONNECT,DROP,EXIT,GRANT,NOAUDIT,QUIT,REVOKE,RENAME。
③ 自动提交:若把AUTOCOMMIT设置为ON,则在插入、修改、删除语句执行后,系统将自动进行提交,这就是自动提交。
5、数据控制语言 解决方案
--新增字段表 添加在最后
alter table 表名 add columns(字段名 数据类型)
--移动到指定位置,address字段的后面
alter table table_name change c_time c_time string after address;
--修改字段类型
Alter table 表名 change column 原字段名称 现字段名称 数据类型