美文网首页
Python操作Mysql数据库

Python操作Mysql数据库

作者: cnkai | 来源:发表于2017-11-23 12:57 被阅读0次

    连接数据库

    import pymysql
    
    db = pymysql.connect(host='localhost',user='root', password='123456', port=3306)
    cursor = db.cursor()
    cursor.execute('SELECT VERSION()')
    data = cursor.fetchone()
    print('Database version:', data)
    db.close()
    

    创建数据库

    import pymysql
    
    db = pymysql.connect(host='localhost',user='root', password='root', port=3306)
    cursor = db.cursor()
    cursor.execute("CREATE DATABASE demo DEFAULT CHARACTER SET utf8")
    db.close()
    

    创建表

    import pymysql
    
    db = pymysql.connect(host='localhost', user='root', password='123456', port=3306, db='demo')
    cursor = db.cursor()
    sql = 'CREATE TABLE IF NOT EXISTS students (id VARCHAR(255) NOT NULL, name VARCHAR(255) NOT NULL, age INT NOT NULL, PRIMARY KEY (id))'
    cursor.execute(sql)
    db.close()
    

    插入数据

    import pymysql
    
    id = '10'
    name = 'zhang'
    age = 18
    
    db = pymysql.connect(host='localhost', user='root', password='root', port=3306, db='demo')
    cursor = db.cursor()
    sql = 'INSERT INTO students(id, name, age) values(%s, %s, %s)'
    try:
        cursor.execute(sql, (id, name, age))
        db.commit()
    except:
        db.rollback()
    db.close()
    

    事务机制,一旦出错会回滚,不存在一半插入一半没插入的情况。

    更新数据

    sql = 'UPDATE students SET age = %s WHERE name = %s'
    try:
       cursor.execute(sql, (30, 'zhang'))
       db.commit()
    except:
       db.rollback()
    db.close()
    

    删除数据

    table = 'demo'
    condition = 'age > 20'
    
    sql = 'DELETE FROM  {table} WHERE {condition}'.format(table=table, condition=condition)
    try:
        cursor.execute(sql)
        db.commit()
    except:
        db.rollback()
    
    db.close()
    

    查询数据

    sql = 'SELECT * FROM students WHERE age >= 20'
    try:
        cursor.execute(sql)
        print('Count:', cursor.rowcount)
        row = cursor.fetchone()
        while row:
            print('Row:', row)
            row = cursor.fetchone()
    except:
        print('Error')
    

    fetch()存在指针偏移的问题,使用一次,指针就会向后偏移一次。

    相关文章

      网友评论

          本文标题:Python操作Mysql数据库

          本文链接:https://www.haomeiwen.com/subject/nflzvxtx.html