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

时间:2022-05-03
本文章向大家介绍零基础学编程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 ---