数据库(4)---SQL语言

【声明】本文章来自穆晨 - 博客园,记录于此方便后期的学习和查阅

一、前言

关于SQL的学习资料,各类文档在网上到处都是,绝大多数的出发点都局限在旧有关系数据库里,内容近乎千篇一律。在当今大数据的浪潮下,SQL已被赋予了新的责任和意义。

本篇中,笔者将结合过去的学习和工作经历,对传统SQL语法进行一次回顾性学习。同时,思考这门语言在大数据时代的重要意义。

二、SQL在大数据技术中的作用

SQL的全称:Structured Query Language,即结构化查询语言。关系数据库中,SQL是用户使用数据库的基本手段,它能用于创建数据库或者关系,能对数据库中各关系进行增删改查,还能对数据库进行维护和管理等。

随着分布式计算平台如Hadoop,Spark的兴起,SQL的应用范围发生了较大变化,但它作为数据分析核心的地位,始终没有动摇。在新的背景下,SQL语言具有新的意义。

1. 管理大型分布式数据仓储系统中的"元仓"

所谓"元仓",可以理解为存放元数据的数据库。在关系数据库中叫数据字典(data dictionary),在分布式的仓储系统里,如Hadoop数仓工具Hive、Spark平台的Spark SQL,则将其称为metastore。

在分布式的仓储系统里,数据计算都是在分布式平台上进行,但其metastore几乎都是建立在传统的关系数据库(如MySQL)上。

元仓的数据内容,主要包括:各关系的基本信息(表名列名等)、数据血缘及调度依赖关系、数据权限关系、数据资产关系、数据监控关系等,举例说明:

基于元仓,还可以开发出类似数据地图系统、数据资产管理系统、数据质量工程系统等高级数据管理工具,供公司各类开发人员使用。关于这些数据在分布式平台的采集、管理属于一个非常有趣而有挑战的话题,甚至可能是将来云计算发展的一个重要趋势。

如上所述,元仓通常是存放在关系数据库里,因此要想管理好元仓,需要非常熟练地掌握SQL。

2. 操作大数据平台完成数据分析任务

了解大数据技术的童鞋想必清楚,Hadoop平台没有实现数据库,其核心只在于MapReduce编程框架和Hdfs文件系统,而计算任务则需要通过MR代码完成,通过这种方式进行数据分析,是很让人抓狂的。

Apache公司针对该问题发布了Hive数据仓库工具,提供了一种类SQL的语言,用户能直接使用它进行数据分析,而它则负责将类SQL语言转化为MR代码,提交Hadoop平台执行。

Hive在Hadoop生态圈中的意义恐怕不是最大也是最大之一,很多公司甚至就单纯为了使用Hive而搭建的Hadoop环境。可见熟练掌握SQL非常有必要。

3. 在线报表展示

通过大数据分析平台进行数据分析后,最终结果需要提交到在线报表系统,进行可视化展示。由于数据分析结果的量并不大,同时为了利用关系数据库强一致性等优势,数据分析的结果通常存入关系数据库,然后让报表系统从关系数据库中取数。所以为了顺利高效的在线发布数据分析结果,也需要熟练掌握SQL。

4. 其他

以上部分仅仅是SQL应用的冰山一角。对于从事数据研发的人来说,无论在什么环境框架下,都可能用到这门语言。

三、SQL命令综述

SQL基础应用广泛非常重要,但学起来相对比较容易。总的来说,SQL语法可以划分为几大块:

  1. 数据定义语言DDL:用于具体实现关系,以及关系附带的一些结构。
  • CREATE:用于创建数据库、关系表、视图等。建表时,除了表本身,还要定义主外键约束,以及一些附带结构,如索引等。
  • ALTER:用于调整数据库、关系表、视图等的结构信息。
  • DROP:用于删除数据库、关系表、视图等。删除时,要注意先删除外码所在关系,然后再删除被外码参照的主码的关系。
  1. 数据查询语言DML:用于操作数据库,包括增删改查,是SQL的主体成分。该部分知识比较杂而多,本文选择从整体角度,以经验总结的形式进行讲解,相关语法细节请读者查询有关函数手册。
  • 基本查询:SELECT+WHERE+GROUP BY(聚集函数)+HAVING+ORDER BY
  • 高级检索:嵌套查询层级不要太多、注意区分几种JOIN、集合运算的本质是进行合并。
  • 插入语句:INSERT INTO 表名 VALUES(表内容),没有外码的关系要优先执行插入。
  • 更新语句:UPDATE 表名 SET 列值='XX' WHERE 条件。
  • 删除语句:DELETE FROM 表名 WHERE 条件。注意不要和删除表的命令DROP搞混。
  1. 数据控制语言DCL:管理数据库权限,负责数据的安全。最常用的是GRANT和ROVOKE命令。

  2. 事务控制语言TCL:用于数据库中的事务管理。主要面向数据库的备份和恢复两大主题,常用命令为COMMIT和ROLLBACK。

最后编辑于
©著作权归作者所有,转载或内容合作请联系作者
  • 序言:七十年代末,一起剥皮案震惊了整个滨河市,随后出现的几起案子,更是在滨河造成了极大的恐慌,老刑警刘岩,带你破解...
    沈念sama阅读 203,772评论 6 477
  • 序言:滨河连续发生了三起死亡事件,死亡现场离奇诡异,居然都是意外死亡,警方通过查阅死者的电脑和手机,发现死者居然都...
    沈念sama阅读 85,458评论 2 381
  • 文/潘晓璐 我一进店门,熙熙楼的掌柜王于贵愁眉苦脸地迎上来,“玉大人,你说我怎么就摊上这事。” “怎么了?”我有些...
    开封第一讲书人阅读 150,610评论 0 337
  • 文/不坏的土叔 我叫张陵,是天一观的道长。 经常有香客问我,道长,这世上最难降的妖魔是什么? 我笑而不...
    开封第一讲书人阅读 54,640评论 1 276
  • 正文 为了忘掉前任,我火速办了婚礼,结果婚礼上,老公的妹妹穿的比我还像新娘。我一直安慰自己,他们只是感情好,可当我...
    茶点故事阅读 63,657评论 5 365
  • 文/花漫 我一把揭开白布。 她就那样静静地躺着,像睡着了一般。 火红的嫁衣衬着肌肤如雪。 梳的纹丝不乱的头发上,一...
    开封第一讲书人阅读 48,590评论 1 281
  • 那天,我揣着相机与录音,去河边找鬼。 笑死,一个胖子当着我的面吹牛,可吹牛的内容都是我干的。 我是一名探鬼主播,决...
    沈念sama阅读 37,962评论 3 395
  • 文/苍兰香墨 我猛地睁开眼,长吁一口气:“原来是场噩梦啊……” “哼!你这毒妇竟也来了?” 一声冷哼从身侧响起,我...
    开封第一讲书人阅读 36,631评论 0 258
  • 序言:老挝万荣一对情侣失踪,失踪者是张志新(化名)和其女友刘颖,没想到半个月后,有当地人在树林里发现了一具尸体,经...
    沈念sama阅读 40,870评论 1 297
  • 正文 独居荒郊野岭守林人离奇死亡,尸身上长有42处带血的脓包…… 初始之章·张勋 以下内容为张勋视角 年9月15日...
    茶点故事阅读 35,611评论 2 321
  • 正文 我和宋清朗相恋三年,在试婚纱的时候发现自己被绿了。 大学时的朋友给我发了我未婚夫和他白月光在一起吃饭的照片。...
    茶点故事阅读 37,704评论 1 329
  • 序言:一个原本活蹦乱跳的男人离奇死亡,死状恐怖,灵堂内的尸体忽然破棺而出,到底是诈尸还是另有隐情,我是刑警宁泽,带...
    沈念sama阅读 33,386评论 4 319
  • 正文 年R本政府宣布,位于F岛的核电站,受9级特大地震影响,放射性物质发生泄漏。R本人自食恶果不足惜,却给世界环境...
    茶点故事阅读 38,969评论 3 307
  • 文/蒙蒙 一、第九天 我趴在偏房一处隐蔽的房顶上张望。 院中可真热闹,春花似锦、人声如沸。这庄子的主人今日做“春日...
    开封第一讲书人阅读 29,944评论 0 19
  • 文/苍兰香墨 我抬头看了看天上的太阳。三九已至,却和暖如春,着一层夹袄步出监牢的瞬间,已是汗流浃背。 一阵脚步声响...
    开封第一讲书人阅读 31,179评论 1 260
  • 我被黑心中介骗来泰国打工, 没想到刚下飞机就差点儿被人妖公主榨干…… 1. 我叫王不留,地道东北人。 一个月前我还...
    沈念sama阅读 44,742评论 2 349
  • 正文 我出身青楼,却偏偏与公主长得像,于是被迫代替她去往敌国和亲。 传闻我的和亲对象是个残疾皇子,可洞房花烛夜当晚...
    茶点故事阅读 42,440评论 2 342

推荐阅读更多精彩内容