您的位置:首页 > 编程语言 > Python开发

python操作三大数据库(一)---------------mysql

2018-11-23 16:44 441 查看

所有操作之前需要先安装mysql模块pymysql

连接mysql

import pymysql
#建立连接
conn=pymysql.connect(host=’127.0.0.1’,port=3306,user=’root’,passwd=’123456’,db=’xxxx’,charset=’utf8’)
#生成游标
cur = conn.cursor()
#添加sql语句
sql=’CREATE TABLE teacher(id INT NOT NULL AUTO_INCREMENT,name VARCHAR(20) NOT NULL,PRIMARY KEY (id))’
#执行sql语句
cur.execute(sql)
cur.close()
conn.close()

'''
connect()参数解释
host:连接的mysql主机,本机localhost
prot:连接的mysql主机的端口,默认是3306
db:要连接的数据库名称
user:连接的用户名
passwd:连接的密码
charset:通信采用的编码方式
'''

connect对象

close()关闭连接
commit() 事务,需要提交才会生效
rollback()事务,放弃之前的操作
cursor()返回cursor对象,用于执行sql语句并获得结果

cursor对象

close()关闭
execute()执行语句,返回受影响的行数
fetchone()执行查询语句时,获取查询结果集的第一行数据,返回一个元组
fetchall()执行查询时,获取结果集的所有行,一行构成一个元组,再将这些元组装入一个元组返回
next() 执行查询语句时,获取当前行的下一行
scroll() 将行指针移动到某个位置

参数传入

如果想在sql语句中传参,可以这样写

name='xxx'
cur.execute('insert into student(name) values(%s)',[name])

实例:用户登陆


table userinfos(
id int primary key auto_increment,
uname varchar(20),
upwd char(40),
isdelete bit default 0
);

mysqlObjct.py

#coding=utf-8
import pymysql

class MysqlHelper:
def __init__(self,host='localhost',port=3306,db='demo',
user='root',passwd='123456',charset='utf8'):
self.conn=pymysql.connect(host=host,port=port,db=db,user=user,passwd=passwd,charset=charset)
def insert(self,sql,params):
return self.__cud(sql,params)

def update(self,sql,params):
return self.__cud(sql,params)

def delete(self,sql,params):
return self.__cud(sql,params)

def __cud(self,sql,params=[]):
try:
cs1 = self.conn.cursor()
rows=cs1.execute(sql, params)
self.conn.commit()
cs1.close()
self.conn.close()
return rows
except Exception as e:
print (e)
self.conn.rollback()

def fetchone(self,sql,params=[]):
try:
cs1=self.conn.cursor()
cs1.execute(sql,params)
row=cs1.fetchone()
cs1.close()
self.conn.close()
return row
except Exception as e:
print (e)

def fetchall(self,sql,params):
try:
cs1=self.conn.cursor()
cs1.execute(sql,params)
rows=cs1.fetchall()
cs1.close()
self.conn.close()

return rows
except Exception as e:
print (e)

mysqldb.py

from mysql import mysqlObject
#创建用户
name = input("请输入姓名:")
pwd = input("请输入密码:")
param=[name,pwd]
sql='insert into userinfo(name,pwd) values(%s,%s)'
sqlObj = mysqlObject.MysqlHelper('localhost',3306,'demo','root','123456','utf8')
sqlObj.insert(sql,param)
#登陆用户
name = input("请输入姓名:")
pwd = input("请输入密码:")
sql='select pwd from userinfo where name=%s'
param=[name]
result = sqlObj.fetchone(sql,param)

if result==None:
print('用户名错误')
elif result[0]==pwd:
print('登陆成功')
else:
print('密码错误')
阅读更多
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: