参考资料:https://www.liaoxuefeng.com/wiki/001374738125095c955c1e6d8bb493182103fac9270762a000/001391435131816c6a377e100ec4d43b3fc9145f3bb8056000
1、MySQL是Web世界中使用最广泛的数据库服务器。SQLite的特点是轻量级、可嵌入,但不能承受高并发访问,适合桌面和移动应用。而MySQL是为服务器端设计的数据库,能承受高并发访问,同时占用的内存也远远大于SQLite。此外,MySQL内部有多种数据库引擎,最常用的引擎是支持数据库事务的InnoDB。
2、使用MySQL前,需要从官网下载可用的版本(最好是免费的),我下载的是community-5.6.40.1 的Windows版本,该版本还需要电脑上安装有Visual C++ Redistributable for Visual Studio 2015。
3、MySQL安装过程中需要配置root(超级用户)的密码,这个必须牢记。
4、安装完成后即可通过python的MySQL connector实现MySQL数据库访问啦。
下面是我的学习代码:
import mysql.connector
class MySqlDB(object):
def __init__(self, db, username, passwd):
self.errorcode = 0
self.connected = False
try:
self.conn = mysql.connector.connect(user=username, password=passwd, database = db, use_unicode=True)
if self.conn:
self.connected = True
except BaseException, e:
self.connected = False
self.errorcode = 1
self.error = e.message
def close(self):
if self.connected:
self.conn.close()
self.connected = False
#执行查询语句
def executeSQL(self, sql):
self.errorcode = 0
if self.connected:
try:
cursor = self.conn.cursor()
cursor.execute(sql)
cursor.close()
cursor = None
except BaseException, e:
self.errorcode = 5
self.error = e.message
finally:
if cursor:
cursor.close()
else:
self.errorcode = 1
#查询并获取结果
def getValues(self, sql):
self.errorcode = 0
values = None
if self.connected:
try:
cursor = self.conn.cursor()
cursor.execute(sql)
values = cursor.fetchall()
cursor.close()
cursor = None
except BaseException, e:
self.errorcode = 4
self.error = e.message
finally:
if cursor:
cursor.close()
else:
self.errorcode = 1
return values
#创建表
def createTable(self, tablename, fields):
self.errorcode = 0
if self.connected:
try:
cursor = self.conn.cursor()
if cursor:
sFields = ''
for s in fields:
if sFields != '':
sFields = sFields + ','
sFields = sFields + s
sql = 'CREATE TABLE %s(%s)' % (tablename, sFields)
cursor.execute(sql)
cursor.close()
cursor = None
self.conn.commit()
else:
self.errorcode = 2
except BaseException, e:
self.errorcode = 3
self.error = e.message
finally:
if cursor:
cursor.close()
else:
self.errorcode = 1
def Test():
#输入用户名
u = raw_input('input a username:')
#输入密码
p = raw_input('input a password:')
#输入数据库文件名
d = raw_input('input a database name:')
#连接数据库
db = MySqlDB(d, u, p)
if not db or not db.connected:
print 'connect failure'
if db:
print 'error %d:%s' % (db.errorcode, db.error)
return
#输入表名
t = raw_input('input a tablename:')
#输入字段定义
fields = []
while True:
f = raw_input('input field define, none to break:')
if f and f != '':
fields.append(f)
else:
break
#创建表
db.createTable(t, fields)
if db.errorcode == 0:
print 'create successfull!'
else:
print 'create failure, error: %d, %s' % (db.errorcode, db.error)
#执行SQL语句
sql = raw_input('input a sql to execute:')
db.executeSQL(sql)
if db.errorcode != 0:
print 'error on execute SQL %s: %d %s' % (sql, db.errorcode, db.error)
else:
print 'execute successful!'
#查询
values = db.getValues('SELECT * FROM %s' % t)
if db.errorcode == 0:
print values
else:
print 'error on query table %s:%d %s' % (t, db.errorcode, db.error)
#关闭数据库连接
db.close()
今天就学习到这里,下一节准备学习一下Python访问其他常用数据库的方法。