00 SQL课程简介
文章目录
SQL课程内容
SQL
SQL初级:
SQL进阶:
SQL项目:
什么是SQL
我们来看看wiki对SQL的定义:
SQL是一种特定目的编程语言,用于管理关系数据库管理系统(RDBMS),或在关系流数据管理系统(RDSMS)中进行流处理。/原文链接/
SQL就是Structure Query Language的缩写,是用来查询和操作的数据的一种语言(课程中的定义式:a language used to interact with a database),看起来是这个样子滴:
是本课程中接触的第一种编程语言(大多数人认为SQL是一个编程语言,但是很多人因为其缺乏完整性而提出了异议,SQL虽然没有类和循环,但其仍然有算术表达式、函数和变量。因为只是面向数据库,也有说SQL是领域编程语言的)。课程中将会通过入门、高级、项目3个部分帮我们掌握SQL,加油!
完成课程的环境
首选 DB Browser for SQLite
课程中的练习在线完成即可,但在完成项目时需要我们自己搭建SQL环境。课程中对于环境有详细的说明:/SQL环境说明/建议如下:
- 下载 DB Browser for SQLite。对于不同类型的数据库,可以使用的数据库浏览器也有很多。在本课程中,我们将使用 DB Browser for SQLite。当然了,你也可能使用其他类似的浏览工具。/下载/
- 在项目时下载数据库,如果项目文件打不开,我在weiyun中有搬砖。
- 将 Browser 与数据库连接起来
- 打开 DB Browser to SQLite
- 点击 Open Database
- 导航到 Northwind.sqlite3 文件
- 点击 Execute SQL
- 开始查询数据
备选 SQLite3
- sqllite是一个轻量化的关系型数据库,下载后,在命令行调用就可以进入(和Uda的工作空间相同了),下载地址:https://sqlite.org/download.html
- python和数据库。有很多操作数据库的接口,比如sqlite3是用来操作sqlite库的。其实python一般不直接操作数据库,而是用一个orm框架作为中间层,用操作对象的方法来操作数据库,避免直接写sql语句,这样比较方便,也可以防止sql注入攻击。sqlalchemy是比较常用的orm,另外一些web框架也会提供自己的orm,比如django自带的就很好用/廖雪峰的一篇orm介绍/
集成 Jupyter Notebook
处理sql文件
如果想在python环境(比如说课程后面的 Jupyter Notebook)中处理 sqllite 数据也是可以的,导入sqlite3库即可:
import sqlite3
import pandas as pd
cnx = sqlite3.connect('database.sqlite')
df = pd.read_sql_query("SELECT * FROM Player_Attributes", cnx)
# 彩蛋,复盘时候可以参考的kaggle的足球数据清理的一个例子:
# https://www.kaggle.com/dimarudov/data-analysis-using-sql
不同SQL的区别
SQL是Structured Query Language的缩写,并不是一种特定的语言,在SQL的发展中,有多个产品。课程中用的是 PostgreSQL,项目完成是 SQLite,商用开源扛把子是 MySQL。三者除了语言有些区别外,在特性和适用场所也有不同。/SQLite vs MySQL vs PostgreSQL: A Comparison Of Relational Database Management Systems/