付费的商用数据库:
-
Oracle,典型的高富帅;
-
SQL Server,微软自家产品,Windows定制专款;
-
DB2,IBM的产品,听起来挺高端;
-
Sybase,曾经跟微软是好基友,后来关系破裂,现在家境惨淡。
无论是Google、Facebook,还是国内的BAT,无一例外都选择了免费的开源数据库:
-
MySQL,大家都在用,一般错不了;
-
PostgreSQL,学术气息有点重,其实挺不错,但知名度没有MySQL高;
-
sqlite,嵌入式数据库,适合桌面和移动应用。
Python就内置了SQLite3,所以,在Python中使用SQLite,不需要安装任何东西,直接使用。
要操作关系数据库,首先需要连接到数据库,一个数据库连接称为Connection;
连接到数据库后,需要打开游标,称之为Cursor,通过Cursor执行SQL语句,然后,获得执行结果。
使用Cursor
对象执行insert
,update
,delete
语句时,执行结果由rowcount
返回影响的行数,就可以拿到执行结果。
使用Cursor
对象执行select
语句时,通过featchall()
可以拿到结果集。结果集是一个list,每个元素都是一个tuple,对应一行记录。
MySQL是Web世界中使用最广泛的数据库服务器。SQLite的特点是轻量级、可嵌入,但不能承受高并发访问,适合桌面和移动应用。而MySQL是为服务器端设计的数据库,能承受高并发访问,同时占用的内存也远远大于SQLite。
由于MySQL服务器以独立的进程运行,并通过网络对外服务,所以,需要支持Python的MySQL驱动来连接到MySQL服务器。MySQL官方提供了mysql-connector-python驱动,但是安装的时候需要给pip命令加上参数--allow-external
:
$ pip install mysql-connector-python --allow-external mysql-connector-python