数据库
- SQLite:一个软件库,实现了自给自足的、无服务器的、零配置的、事务性的SQL数据库引擎,对应包sqlite3
- MySQL: 开源数据库系统,对应包pymysql
数据库操纵步骤
- 创建connection对象,建立于数据库的连接
- 创建游标cursor对象
- 利用cursor.execute()方法执行SQL语句
- 如果SQL语句为DML语句(涉及到增删改操作),则执行connection.commit()命令,提交事务
- 关闭连接
SQL语句
- DDL 数据定义语言,用于创建表格,包括CREATE TABLE、DROP TABLE等
- DML 数据操纵语言,用于增删改表格中数据,包括INSERT、UPDATA、DELETE等
- DQL 数据查询语言,用于查询表格中数据,包括SELECT等
- DCL 数据控制语言,用于数据库用户权限设置等
Pythons数据库操作的封装
import pymysql
class MysqlHelper():
# 初始化连接参数
def __init__(self):
self.host = 'localhost'
self.port = ''
self.db = ''
self.user = ''
self.pwd = ''
self.charset = 'utf-8'
def connect(self):
self.conn = pymysql.connect(host=self.host, port=self.port,
user=self.user, passwd=self.pwd,
db=self.db, charset=self.charset)
self.cursor = self.conn.cursor()
def close(self):
self.cursor.close()
self.conn.close()
def get_one(self, sql, params=()):
result = ()
try:
self.connect()
self.cursor.execute(sql, params)
result = self.cursor.fetchone()
self.close()
except Exception as e:
print(e)
return result
def get_all(self, sql, params=()):
result = ()
try:
self.connect()
self.cursor.execute(sql, params)
result = self.cursor.fetchall()
self.close()
except Exception as e:
print(e)
return result
def insert(self, sql, params=()):
return self.__edit(sql, params)
def update(self, sql, params=()):
return self.__edit(sql, params)
def delete(self, sql, params=()):
return self.__edit(sql, params)
def __edit(self, sql, params=()):
count = 0
try:
self.connect()
count = self.cursor.execute(sql, params)
self.conn.commit()
self.close()
except Exception as e:
print(e)
return count