• Python基础(十六)-操作数据库pymysql模块


    一、pymysql模块安装

    pip3 install pymysql

    二、连接数据库

    2.1、创建测试数据

    mysql> create database AA;
    mysql> use AA
    mysql> create table test(id int primary key auto_increment,name varchar(25),passwd varchar(25));
    mysql> insert into test(name,passwd) values('AA',123),('BB',456),('CC',789);
    mysql> select * from test;
    +----+------+--------+
    | id | name | passwd |
    +----+------+--------+
    |  1 | AA   | 123    |
    |  2 | BB   | 456    |
    |  3 | CC   | 789    |
    +----+------+--------+
    3 rows in set (0.00 sec)

    2.2、连接数据库

    #!/usr/bin/env python
    # -*- coding: utf-8 -*- 
    import pymysql
    user=input("用户名:").strip()
    pwd=input("密码:").strip()
    
    #连接
    conn = pymysql.connect(host="10.0.0.12",port=3306,user="root",passwd="mysql",db="AA")
    
    #游标
    cursor=conn.cursor()  #执行完毕返回的结果集默认以元组显示
    # cursor=conn.cursor(cursor=pymysql.cursors.DictCursor) #以字典形式返回
    
    #执行sql语句
    # sql = 'select * from AA.test where name="%s" and passwd="%s"' %(user,pwd)  #注意%s需要加引号
    # print(sql)
    # res=cursor.execute(sql)  #执行sql语句,返回sql查询成功的记录数目
    # print(res)
    
    #execute帮我们做字符串拼接,我们无需且一定不能再为%s加引号了,pymysql会自动为我们加上
    sql="select * from test where name=%s and passwd=%s"
    print(sql)
    res=cursor.execute(sql,[user,pwd])
    print(res)
    
    #关闭游标及连接
    cursor.close()
    conn.close()
    
    if res:
        print("登录成功")
    else:
        print("登录失败")

    三、增删改,conn.commit()

    #!/usr/bin/env python
    # -*- coding: utf-8 -*- 
    
    import pymysql
    #连接
    conn = pymysql.connect(host="10.0.0.12",port=3306,user="root",passwd="mysql",db="AA")
    
    #游标
    cursor=conn.cursor()  #执行完毕返回的结果集默认以元组显示
    # cursor=conn.cursor(cursor=pymysql.cursors.DictCursor) #以字典形式返回
    
    #执行sql语句
    #part1
    # sql="insert into test(name,passwd) values('DD',123456);"
    # print(sql)
    # res=cursor.execute(sql)
    # print(res)
    
    #part2
    # sql='insert into test(name,passwd) values(%s,%s);'
    # res=cursor.execute(sql,("root","123456"))
    # print(res)
    
    #part3 插多行数据
    sql='insert into test(name,passwd) VALUES (%s,%s);'
    res=cursor.executemany(sql,[("EE","123456"),("FF","123456"),("GG","123456"),])
    print(res)
    
    #关闭游标及连接
    conn.commit()  #提交后才发现表中插入记录成功
    cursor.close()
    conn.close()
    

    四、查找

    image

    #!/usr/bin/env python
    # -*- coding: utf-8 -*-
    
    import pymysql
    #连接
    conn = pymysql.connect(host="10.0.0.12",port=3306,user="root",passwd="mysql",db="AA")
    
    #游标
    cursor=conn.cursor()  #执行完毕返回的结果集默认以元组显示
    # cursor=conn.cursor(cursor=pymysql.cursors.DictCursor) #以字典形式返回
    
    #查找
    sql='select * from test;'
    rows=cursor.execute(sql)
    print(rows)  #8
    
    # cursor.scroll(3,mode="absolute")  # 相对绝对位置移动
    # cursor.scroll(3,mode="relative")  # 相对当前位置移动
    
    res1=cursor.fetchone()
    res2=cursor.fetchone()
    res3=cursor.fetchone()
    res4=cursor.fetchmany(2)
    res5=cursor.fetchall()
    
    print(res1)
    print(res2)
    print(res3)
    print(res4)
    print(res5)
    print('%s rows in set (0.00 sec)' %rows)
    
    #关闭游标及连接
    conn.commit()  #提交后才发现表中插入记录成功
    cursor.close()
    conn.close()
    
    '''
    (1, 'AA', '123')
    (2, 'BB', '456')
    (3, 'CC', '789')
    ((4, 'DD', '123456'), (5, 'root', '123456'))
    ((6, 'EE', '123456'), (7, 'FF', '123456'), (8, 'GG', '123456'))
    8 rows in set (0.00 sec)
    '''

    五、获取插入数据自增id

    #!/usr/bin/env python
    # -*- coding: utf-8 -*-
    import pymysql
    
    conn = pymysql.connect(host="10.0.0.12",port=3306,user="root",passwd="mysql",db="AA")
    cursor=conn.cursor()
    
    sql='insert into test(name,passwd) VALUES("xxx","123")'
    rows=cursor.execute(sql)
    print(cursor.lastrowid) #在插入语句后查看
    
    conn.commit()
    cursor.close()
    conn.close()
  • 相关阅读:
    正则表达式解决身份证号码和手机号
    redis:集群配置
    linux:NFS
    xshell提示必须安装最新的更新
    linux:ssh远程调用tomcat脚本时候出错
    linux:scp从入门到刚入门
    linux:SSH最简单教程
    nginx;keepalived配置出现主主的解决方法(脑裂问题)
    (4)事件处理——(4)网页上的多个脚本(Multiple scripts on one page)
    [php]应用控制器(一)
  • 原文地址:https://www.cnblogs.com/hujinzhong/p/11565889.html
Copyright © 2020-2023  润新知