PyMySQL 连接数据库

数据库连接:
连接数据库前,请先确认以下事项:
1.您已经创建了数据库school。
2.在school数据库中您已经创建了表test1。
3.test1表字段为 id,name,sex。
4.连接数据库school使用的用户名为 "root" ,密码为 "123456",你可以可以自己设定或者直接使用root用户名及其密码,Mysql数据库用户授权请使用Grant命令。
5.在你的机子上已经安装了pymysql。

创建数据库表:
import pymysql
def createtable():
    #1.建立连接
    conn=pymysql.connect('localhost','root','123456','school')
    #2.得到cursor对象
    mycursor=conn.cursor()
    #3.执行sql语句
    sqlstr='''
       create table test1(
           id int PRIMARY KEY auto_increment,
           name varchar(20) not null,
           sex char(2)
       )DEFAULT CHARSET UTF8
    '''
    mycursor.execute(sqlstr)
    #4.获取执行结果,如果是创建表的语句则返回none
    mycursor.fetchone()
    #5.关闭连接对象
    conn.close()
createtable()
在数据库表中添加内容:
import pymysql
def inserttable():
    conn = pymysql.connect('localhost', 'root', '123456', 'school')
    mycursor = conn.cursor()
    sqlstr='''
       insert into test1(name,sex) values('李四','男')
    '''.encode('utf8')
    try:
        # 执行sql语句
        mycursor.execute(sqlstr)
        # 提交到数据库执行
        conn.commit()
    except:
        # 如果发生错误则回滚
        conn.rollback()
    conn.close()
inserttable()
在数据库表中删除内容:
import pymysql
#提取公共连接方法
def getconn():
    conn = pymysql.connect('localhost', 'root', '123456', 'school')
    mycursor=conn.cursor()
    return [conn,mycursor]
def deltable():
    conn=getconn()
    sqlstr='''delete from test1 WHERE id=1'''
    try:
        print(conn[1].execute(sqlstr))
        conn[0].commit()
    except:
        conn[0].rollback()
    conn[0].close()
deltable()
在数据库表中修改内容:
import pymysql
#提取公共连接方法
def getconn():
    conn = pymysql.connect('localhost', 'root', '123456', 'school')
    mycursor=conn.cursor()
    return [conn,mycursor]
def updatetable():
    conn=getconn()
    sqlstr='''update test1 set NAME='瑞克' WHERE id=3'''
    try:
        print(conn[1].execute(sqlstr))
        conn[0].commit()
    except:
        conn[0].rollback()
    conn[0].close()
updatetable()

import pymysql
#提取公共连接方法
def getconn():
    conn = pymysql.connect('localhost', 'root', '123456', 'school')
    mycursor=conn.cursor()
    return [conn,mycursor]
def operationtable(sqlstr):
    conn=getconn()
    try:
        print(conn[1].execute(sqlstr))
        conn[0].commit()
    except:
        conn[0].rollback()
    conn[0].close()
#删除
#sqlstr='''delete from test1 WHERE id=1'''
#修改
#sqlstr='''update test1 set NAME='瑞克' WHERE id=3'''
#增加
sqlstr='''insert into test1(name,sex) values('王五','男')'''
operationtable(sqlstr)

数据库查询:
Python查询Mysql使用 fetchone()方法获取单条数据, 使用fetchall()方法获取多条数据。
fetchone(): 该方法获取下一个查询结果集。结果集是一个对象。
fetchall(): 接收全部的返回结果行。
rowcount: 这是一个只读属性,并返回执行execute()方法后影响的行数。

import pymysql
#提取公共连接方法
def getconn():
    conn = pymysql.connect('localhost', 'root', '123456', 'school')
    mycursor=conn.cursor()
    return [conn,mycursor]
class Test():
    def __init__(self,id=None,name=None,sex=None):
        self.id=id
        self.name=name
        self.sex=sex
    def __str__(self):
        return 'id:'+str(self.id)+',name:'+self.name+',sex:'+self.sex
#查询
def querytable():
    list=[]
    conn=getconn()
    sqlstr='''select id,name,sex from test1'''
    conn[1].execute(sqlstr)
    rs=conn[1].fetchall()
    for row in rs:
        test=Test(row[0],row[1],row[2])
        list.append(test)
    conn[0].close()
    return list
testlist=querytable()
for row in testlist:
    print(row)
结果:
id:2,name:张三,sex:男
id:3,name:瑞克,sex:男
id:4,name:王五,sex:男
  • 0
    点赞
  • 2
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值