zoukankan      html  css  js  c++  java
  • Python操作MySql --Python3

    Python版本:v3.7

    模块:pymysql

    1、连接数据库

    connectDB.py:

    # coding:utf-8
    import pymysql

    host = 'localhost' # 主机
    username = 'root' # 用户名
    pwd = 'nxl123' # 密码
    dbName = 'testdb' # 数据库名
    # 打开数据库连接
    db = pymysql.connect(host, username, pwd, dbName)
    # 通过cursor方法获取操作游标
    cursor = db.cursor()
    # sql语句
    sql = 'SELECT VERSION()'
    # 执行sql语句
    cursor.execute(sql)
    # 使用fetchone方法获取一个查询结果集
    data = cursor.fetchone()
    # 输出结果集
    print('db version:%s' % data)
    # 关闭数据库连接
    db.close()

     

    2、创建表

    createTables.py:

    # coding:utf-8
    import pymysql

    host = 'localhost' # 主机
    username = 'root' # 用户名
    pwd = 'nxl123' # 密码
    dbName = 'testdb' # 数据库名
    # 打开数据库连接
    db = pymysql.connect(host, username, pwd, dbName)
    # 通过cursor方法获取操作游标
    cursor = db.cursor()
    # 执行sql语句,如果存在stusex表,就将其删除
    cursor.execute('DROP TABLE IF EXISTS stu')
    cursor.execute('DROP TABLE IF EXISTS sex')
    # sql语句创建stu
    sql = '''CREATE TABLE stu(
    stuId SMALLINT UNSIGNED PRIMARY KEY AUTO_INCREMENT,
    stuNo VARCHAR(20) NOT NULL UNIQUE KEY,
    stuName VARCHAR(10) NOT NULL,
    age SMALLINT UNSIGNED NOT NULL,
    sexId SMALLINT UNSIGNED NOT NULL)'''
    sql2 = '''CREATE TABLE sex(
    id SMALLINT UNSIGNED PRIMARY KEY,
    sex ENUM('','') NOT NULL)'''
    # 执行sql、sql2语句
    cursor.execute(sql)
    cursor.execute(sql2)
    # 关闭数据库连接
    db.close()

     

    3、插入数据

    insertData.py:

    # coding:utf-8
    import pymysql

    host = 'localhost' # 主机
    username = 'root' # 用户名
    pwd = 'nxl123' # 密码
    dbName = 'testdb' # 数据库名
    db = pymysql.connect(host, username, pwd, dbName)
    # 通过cursor方法获取操作游标
    cursor = db.cursor()
    # sql语句
    # sql = '''INSERT stu(stuNo,stuName,age,sexId) VALUES('2015011070','Thanlon',22,1) '''
    # sql = '''INSERT stu(stuNo,stuName,age,sexId) VALUES('2015011071','Maria',20,2) '''
    # sql = '''INSERT sex(id,sex) VALUES(1,'')'''
    sql = '''INSERT sex(id,sex) VALUES(2,'')'''
    try:
    # 执行sql语句
    cursor.execute(sql)
    # 提交到数据库执行
    db.commit()
    except:
    # 发生错误时回滚
    db.rollback()
    # 关闭数据库连接
    db.close()

    stu 表:

    sex 表:

    4、删除数据

    deleteData.py:

    # coding:utf-8
    import pymysql

    host = 'localhost' # 主机
    username = 'root' # 用户名
    pwd = 'nxl123' # 密码
    dbName = 'testdb' # 数据库名
    # 打开数据库连接
    db = pymysql.connect('localhost', username, pwd, dbName)
    # 通过cursor方法获取操作游标
    cursor = db.cursor()
    sql = "DELETE FROM stu WHERE age>'%d'" % (20)
    try:
    # 执行sql语句
    cursor.execute(sql)
    # 提交到数据库执行
    db.commit()
    except:
    # 语句产生异常时打印提示信息
    print('更新数据时出现异常!')
    finally:
    # 关闭数据库连接
    db.close()

    stu表:(删除数据后的stu表)

    5、查询数据

    selectData.py:

    # coding:utf-8
    import pymysql

    host = 'localhost' # 主机
    username = 'root' # 用户名
    pwd = 'nxl123' # 密码
    dbName = 'testdb' # 数据库名
    # 打开数据库连接
    db = pymysql.connect(host, username, pwd, dbName)
    # 通过cursor方法获取操作游标
    cursor = db.cursor()
    # sql = '''SELECT *FROM stu'''
    sql = '''SELECT stuID,stuNo,stuName,age,x.sex FROM sex AS x INNER JOIN stu AS s ON s.sexId = x.id'''
    try:
    # 执行sql语句
    cursor.execute(sql)
    # results接收全部的返回结果行
    results = cursor.fetchall()
    # print(results)
    # 返回执行execute方法后影响的行数
    results_count = cursor.rowcount
    # 打印输出影响的行数
    print('execute()方法执行后影响的行数:%d' % results_count)
    # 遍历结果集
    for row in results:
    stuID = row[0]
    stuNo = row[1]
    stuName = row[2]
    age = row[3]
    sex = row[4]
    # 打印查询结果
    print(stuID, stuNo, stuName, age, sex)
    except:
    print('获取数据出现异常!')
    finally:
    # 关闭数据库连接
    db.close()

    6、修改数据

    updateData.py:

    # coding:utf-8
    import pymysql

    host = 'localhost' # 主机
    username = 'root' # 用户名
    pwd = 'nxl123' # 密码
    dbName = 'testdb' # 数据库名
    # 打开数据库连接
    db = pymysql.connect(host, username, pwd, dbName)
    # 通过cursor方法获取操作游标
    cursor = db.cursor()
    # 将性别为男的学生年龄加1
    sql = '''UPDATE stu SET age=age+1 WHERE sexId=1'''
    try:
    # 执行语句
    cursor.execute(sql)
    # 提交到数据库执行
    db.commit()
    except:
    print('更新数据时出现异常!')
    finally:
    # 关闭数据库连接
    db.close()

    执行语句前stu表信息:

    执行语句后stu表信息:

  • 相关阅读:
    java 连接SQL Server
    JAVA泛型
    JAVA 数组遍历
    JAVA注释
    Python正则表达式
    python练习题二
    Python函数
    Python练习题一
    重学python-列表的一些操作
    重学python-python-pandas库
  • 原文地址:https://www.cnblogs.com/qikeyishu/p/10358032.html
Copyright © 2011-2022 走看看