目录
1 背景知识
2 SQL基本语法
2.1 基本元素
2.2 运算符
2.3 comments
2.4 基本操作
3 用python创建database table
4 用python对数据库进行更改
1 背景知识
▲数据库Database概念:Table(Relation),row(tuple),column(attribute)
▲有许多不同的数据库系统,用于各种各样的目的,包括:Oracle, MySQL, Microsoft SQL Server, PostgreSQL,和SQLite。其中SQLite,它是一个非常常见的数据库,并且已经内置到Python中。
▲SQLite browser下载:
http://sqlitebrowser.org/http://sqlitebrowser.org/http://sqlitebrowser.org/
使用浏览器,可以轻松地创建表create table、插入数据insert data、编辑数据edit data或对数据库中的数据运行简单的SQL查询query。
▲SOLlite browser和python的优劣:
在某种意义上,数据库浏览器在处理文本文件时类似于文本编辑器。当您想要对文本文件执行一个或很少的操作时,您可以在文本编辑器中打开它并进行您想要的更改。当您需要对文本文件进行许多更改时,通常会编写一个简单的Python程序。在处理数据库时,您将发现相同的模式。您将在数据库管理器中执行简单的操作,而更复杂的操作将在Python中最方便地完成。
2 SQL基本语法
2.1 基本元素
▲keywords关键字是在SQL语言中定义的字:SQL关键词列表
▲identifiers标识符是数据库对象上的名称,如表、列和模式
▲Clauses子句,它们是语句和查询的组成部分
▲expresion表达式
▲predicates条件判断
▲queries根据特定的标准检索数据。这是SQL的一个重要元素
▲statement语句
▲insignificant whitespace在SQL语句和查询中,不重要的空格通常会被忽略,这使得对SQL代码进行可读性格式化更加容易。
2.2 运算符
| 运算符 | 描述 | 示例 |
| = | 等于 | Author = 'Alcott' |
| <> | 不等于 (many DBMSs accept != in addition to <>) | Dept <> 'Sales' |
| > | 大于 | Hire_Date > '2012-01-31' |
| < | 小于 | Bonus < 50000.00 |
| >= | 大于等于 | Dependents >= 2 |
| <= | 小于等于 | Rate <= 0.05 |
| [NOT] BETWEEN [SYMMETRIC] | 在一个包含范围之间。如果第一个值高于第二个值,则SYMMETRIC反转范围。 | Cost BETWEEN 100.00 AND 500.00 |
| [NOT] LIKE [ESCAPE] | 以字符开始 | Full_Name LIKE 'Will%' |
| 包含字符 | Full_Name LIKE '%Will%' | |
| [NOT] IN | 等于多个数值中的一个 | DeptCode IN (101, 103, 209) |
| IS [NOT] NULL | 等于null(缺失值) | Address IS NOT NULL |
| IS [NOT] TRUE or IS [NOT] FALSE | Ture或者false | PaidVacation IS TRUE |
| IS NOT DISTINCT FROM | 等于value或两者都为空(丢失的数据) | Debt IS NOT DISTINCT FROM - Receivables |
| AS | 用于在查看结果时更改列名 | SELECt employee AS department1 |
| case expression | 条件语句 | CASE WHEN n > 0
THEN 'positive'
WHEN n < 0
THEN 'negative'
ELSE 'zero'
END |
CASE n WHEN 1
THEN 'One'
WHEN 2
THEN 'Two'
ELSE 'I cannot count that high'
END | ||
COALESCE(x1,x2) | x1不为缺失值时返回x1,否则返回x2 相当于 CASE WHEN x1 IS NOT NULL THEN x1
ELSE x2
END | |
NULLIF(x1, x2) | x1=x2时,返回null,否则返回x1 相当于 CASE WHEN x1 = x2 THEN NULL ELSE x1 END |
2.3 comments
▲内部插入批注
2.4 基本操作
▲SQL不区分大小写,但为了阅读方便,常将keywords大写
▲创建表CREATE TABLE
CREATE TABLE Tracks (title TEXT, plays INTEGER)
▲插入数据INSERT INTO
INSERT INTO Tracks (title, plays) VALUES ('My Way', 15)
▲条件选择SELECT WHERe
SELECT * FROM Tracks WHERe title = 'My Way'
▲顺序选择SELECt ORDER BY
SELECT title,plays FROM Tracks ORDER BY title
▲删除行DELETe
DELETE FROM Tracks WHERe title = 'My Way'
▲更新行 UPDATe
UPDATE Tracks SET plays = 16 WHERe title = 'My Way'
3 用python创建database table
import sqlite3 ###加载sqlite3库
conn = sqlite3.connect('music.sqlite')###建立与数据库的连接,如果该数据库不存在则会创建一个数据库
cur = conn.cursor()###相当于处理file时的open()
###有cursor之后可以用excute执行SQL命令
cur.execute('DROP TABLE IF EXISTS Tracks')###如果Tracks表存在则删除该表
cur.execute('CREATE TABLE Tracks (title TEXT, plays INTEGER)')###创建表
conn.close()###关闭
▲通过cursor对数据库进行操作



