零基础学编程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 条评论
登录 后参与评论

相关文章

来自专栏Golang语言社区

棋牌游戏服务器架构: 详细设计(三) 数据库设计

主要有3类Database: ServerInfoDB,UserInfoDB和GameDB。 ServerInfoDB主要存储的是游戏列表的信息,UserIn...

3989
来自专栏程序猿

If life can come again, what would you do differently?

假如 If life can come again, what would you do differently? 假如生活能够重来 假如生活能...

3246
来自专栏华章科技

程序员那些牛逼闪闪的禁术,看到第二条我就忍不住哈哈哈哈哈哈哈哈

在和产品经理进行需求对峙时,一本正经地把不好/不想实现的功能通过玄学等方式口述出来,让产品经理当场懵逼,知难而退。

472
来自专栏Crossin的编程教室

程序员教流浪汉编程,开发APP

一天,Patrick McConlogue宣布他将要教一个流浪汉学JavaScript语言,帮助他开发一个属于他自己的app。今年23岁的Patrick是一名软...

3074
来自专栏程序人生

软件开发升级打怪之路

周末两天收到很多鼓励和赞同的留言,程序君感到非常开心。虽然有不少呼声希望能够天天看到连载,但程序君真得没法一周七天写同一件事,那样,写出来的东西无法保证质量。虽...

2764
来自专栏LiveEdu在线科技教育平台

LiveEdu中文教程项目分享(2)

在过去的两周里,报名参加LiveEdu中文项目创建者招募计划 的用户人数在不断增加。我们非常感谢项目创建者们对我们平台的支持。我们明白,每一个项目都是项目创建者...

795
来自专栏北京马哥教育

新手程序员必须要知道的10个秘密

初出茅庐的你带着仍残留墨香的毕业证书踏上工作岗位,马上就被书上没写的规则和各种繁杂的日常事务来了个下马威。这样的故事实在是司空见惯,编程工作也不例外。 没有几个...

3325
来自专栏程序员互动联盟

【程序人生】糟糕的程序员你会做?

一个好程序员不好做,那么一个糟糕的程序应该不难吧! 秘籍一:让你看不懂我写的是什么 都说让人看不懂的代码,才是牛逼代码。一类是算法高深,一般人实在是看不懂。另一...

3138
来自专栏Golang语言社区

棋牌游戏服务器架构: 详细设计(三) 数据库设计

主要有3类Database: ServerInfoDB,UserInfoDB和GameDB。 ServerInfoDB主要存储的是游戏列表的信息,UserIn...

4036
来自专栏向治洪

前端开发我为什么选择cordova

cordova与phonegap有什么关系? phoengap 官方网址:http://phonegap.com 如果能了解一个框架的兴起还是一件比较有趣...

1867

扫描关注云+社区