Table of Contents
数据库类别
目前广泛使用的关系数据库有如下几种:
付费的商用数据库:
-
Oracle,典型的高富帅;
-
SQL Server,微软自家产品,Windows定制专款;
-
DB2,IBM的产品,听起来挺高端;
-
Sybase,曾经跟微软是好基友,后来关系破裂,现在家境惨淡。
这些数据库都是不开源而且付费的,最大的好处是花了钱出了问题可以找厂家解决,不过在Web的世界里,常常需要部署成千上万的数据库服务器,当然不能把大把大把的银子扔给厂家,所以,无论是Google、Facebook,还是国内的BAT,无一例外都选择了免费的开源数据库:
-
MySQL,大家都在用,一般错不了;
-
PostgreSQL,学术气息有点重,其实挺不错,但知名度没有MySQL高;
-
sqlite,嵌入式数据库,适合桌面和移动应用。
python连接数据库
python连接sqlite
sqlite是用c编写的,非常小,它被内置于python当中,所以如果使用sqlite,我们无需下载数据库以及与数据库相连接的驱动,使用方式如下。
我们创建一个user表,并向其中插入一行数据
import sqlite3 # 导包
try:
# 连接到SQLite3
conn = sqlite3.connect(r'D:\test.db') # 说白了就是把这个文件读取到内存中,如果没有就创建
# 创建一个Cursor,用来执行sql语句:
cursor = conn.cursor()
# 执行一条sql,创建user表
cursor.execute('create table user(id varchar(20) primary key, name varchar(20))') # 表有两列,一列为id,一列为姓名
# 插入一条数据
cursor.execute('insert into user(id, name) values(\'1\', \'zzh\')') # 插入一行数据,id为1,name为zzh
# 查看插入的数据数
print(cursor.rowcount) # rowcount能返回数据库中受影响的行数,因为插入了一行数据,所以返回1
# 通过connect对象提交事务
conn.commit() # 只有提交了事务,数据才真正的被插入到了数据库当中
except Exception as e:
print(e)
conn.rollback() # 出现异常,事务回滚,意思就是再将插入的数据撤销
finally:
# 关闭cursor
cursor.close()
# 关闭数据库连接
conn.close()
<