零基础学编程024:如何快速学会SQL?

一位朋友问我如何能够较快地学会SQL,我一时还真不知道如何回答。想学会SQL(结构化查询语言),大概需要理解这些术语:数据库、关系型数据库、面向对象的数据库、键值型的数据库、数据表、数据记录、数据列、数据表的关系运算等等,但对于一个对数据库一无所知的人来说,该如何一步一步地让他建立起这个知识体系?

我尝试着先把大脑中的相关知识清空,利用《“零基础学编程”都需要哪些基础?》中提到的搜索技巧,先试着google一下,关键词用“how to learn sql",第一行的广告被我去掉了,后面的几条结果如下图:

1、CodeCademy

在开始学习python的时候,我写过《零基础学编程001:用在线编程环境快速上手》,学习一门语言需要快速上手来建立信心,一步一步地输入代码并马上看到反馈结果,时刻体会到自己的进步,从而进入程序的世界,而不要在安装编程环境方面就花上2天时间,使刚建立的一点点学习热情严重受挫。

这个Codecademy 也支持SQL的学习,我进去试了一下,第一课就是输入SELECT语句,直接看到查询的结果。可惜课程界面和讲解都是英文的,英语基础好的朋友首选用这个网站学SQL或其它语言。

2、Quora

这个网站相当于英文版的知乎,点进去之后,列出来一堆的学习资源和教程,因为是用户自己评价排名,所以比较可信,自己去看吧。

3、Learn SQL

这是一款手机APP,我简单地安装试用了一下,仍是纯英文的,设计成关卡模式,不完成一关无法进入下一关。一上来介绍数据库的基本概念,让你回答问题,有一定难度,需要注册之后才能使用更多功能。

4、SQLCourse.com

一个专门学SQL的网站,大段大段的英文内容,介绍得非常详细。从google上搜索到的前四条结果相当不错,如果英文不好,你就只能在知乎上搜索“如何自学SQL”,也有不错的回答。

5、通过python学SQL

单单学SQL效果不好,需要与编程语言配合学习,才能明白SQL在编程中的强大用处。既然已经学了一些基本Python知识,能否通过python的环境快速上手SQL?我尝试着搜索了几个相关模块库,最后锁定了这个db.py,能够达到上述目的。

1)安装

如果你之前安装过WinPython,则直接跳到下一步,看清楚了,是WinPython

之前介绍过WinPython这个安装程序包含许多常用的模块库,如果你只是安装纯净的Python 3.6,后面的 import 语句会出现问题,新手还是尽量别被安装问题折磨得死去活来吧。重复一遍,在Windows上推荐安装WinPython软件包,有人试验小海龟画图出错,很可能也是这个原因。

2)快速试验SELECT语句

SELECT语句相当于编程语言中的Hello World,如果将来你有幸成为了一名程序员,并经常与数据库打交道,那么你写的80%的SQL都是SELECT语句!

直接在 python 的集成环境 IDLE 中输入下面三行语句:

from db import DemoDB
db = DemoDB()
db.query("select * from album")

查询结果:

这个样例是一个歌曲的数据库(Database),album是一个数据表(Table),就像EXCEL电子表格一样,它由许多列(Column或Field)组成,这里有三列:AlbumId(歌曲ID)、Title(曲名)、ArtistId(艺术家ID),这个数据表还有许多行(Row),一行称为一条记录(Record)

再看看我们以前在《零基础学编程019:生成群文章目录》学过的CSV,是不是挺类似?其实CSV就是一个文本格式的数据表

我们刚才写的 select * from ALBUM 就是一条最简单的SQL语句,意思是查询ALBUM中的所有记录(Record),SQL语句一般不区分大小写,这种语言有点像自然语言,只说明目的,而不关心背后的实现逻辑,复杂的处理逻辑由数据库管理系统(DBMS)来完成。

今天先介绍一个开头,大家是否对SQL感兴趣?欢迎留言,如果留言人数超过20,我就专门写上几篇有关数据库和SQL的文章。

小结:

  • SQL是数据库的结构化查询语言
  • 想快速学SQL,首先得会搜索
  • 英文基础好,学编程会容易许多
  • 快速上手反馈建立学习的信心
  • CodeCademy可以快速学习,值得一试
  • python中可以用db模块学习SQL
  • 数据库由数据表构成,表由行和列组成
  • select是基础的sql语句,以后操作数据库时80%以上都是写这条语句

--- END ---

原文发布于微信公众号 - 申龙斌的程序人生(slbGTD)

原文发表时间:2017-02-22

本文参与腾讯云自媒体分享计划,欢迎正在阅读的你也加入,一起分享。

发表于

我来说两句

0 条评论
登录 后参与评论

相关文章

来自专栏架构师之路

数据库中间件为何不支持join

有网友对《假如让你来设计数据库中间件》一文中,数据库中间件仅仅支持四类SQL存有疑问: partition key普通查询 partition key上的IN查...

36760
来自专栏PPV课数据科学社区

用R进行文本挖掘与分析:分词、画词云

要分析文本内容,最常见的分析方法是提取文本中的词语,并统计频率。频率能反映词语在文本中的重要性,一般越重要的词语,在文本中出现的次数就会越多。词语提取后,还可以...

56140
来自专栏牛客网

今日头条测试实习生面经#  一面#二面#三面

24630
来自专栏更流畅、简洁的软件开发方式

关于Int自增字段和GUID字段的性能测试。只有测试,没有分析,呵呵

      最近有两篇关于GUID和Int自增的文章,我是一直使用Int自增的,不习惯使用GUID,感觉GUID很麻烦,用着不方便,性能也比不上Int自增。但是...

281100
来自专栏牛客网

头条三轮面试

29100
来自专栏杨建荣的学习笔记

一条update语句的优化探索(r9笔记第80天)

今天经开发同学反馈,发现有一些update语句阻塞了部分业务流程,为什么说一些而不是一条,是因为这些update语句都在一个存储过程中,语句结构相仿,真有一种一...

33740
来自专栏牛客网

迟到的贝壳面经

上周末在北京贝壳的一面+二面经历,很遗憾,二面没有通过,与其埋怨面试官问的太深太细,不如找找自己的原因。 

15920
来自专栏睿哥杂货铺

我的写作工具链

1)源文件持续修改中出现的回归编辑工作,互相引用的链接较多

29390
来自专栏数据科学与人工智能

【SQL技能】SQL技能对于ETL开发人员的重要性

我最初是一个Oracle开发者,我喜欢它的结构化查询语言,一年后,我意识到SQL并非Oracle的专有。 作为70年代Sequel标准的一个分支,SQL走向成...

38590
来自专栏牛客网

阿里 & 酷家乐:实习生面试

最近海投了十家公司,暂时有阿里两面(已凉)、酷家乐两面(大概凉了)、网易一面。前两个都是基础知识发挥得还可以,两家公司二面都凉凉。 阿里一面(3.21 26mi...

57740

扫码关注云+社区

领取腾讯云代金券