1. 程式人生 > >MySQLdb操作數據庫(三)

MySQLdb操作數據庫(三)

char abs set ive com cursor 事務回滾 rand name

刪除數據
刪除單條數據

#conding=utf-8
import MySQLdb
import random
try:
    conn = MySQLdb.connect(
        host = ‘127.0.0.1‘,
        user = ‘root‘,
        passwd = "123456",
        port = 3306)

    conn.select_db(‘python‘)# 選擇pythonDB數據庫

    cur = conn.cursor()# 獲取遊標

    cur.execute("delete from user where id=0")
    cur.execute("select * from user")

    for v in cur.fetchall():
        print v

    cur.close()
    conn.commit()
    conn.close()
    print u"sql執行成功"
except Exception, e:
print e

刪除多條數據

#conding=utf-8
import MySQLdb
import random
try:
    conn = MySQLdb.connect(
        host = ‘127.0.0.1‘,
        user = ‘root‘,
        passwd = "123456",
        port = 3306)

    conn.select_db(‘python‘)# 選擇pythonDB數據庫

    cur = conn.cursor()# 獲取遊標

    sql = "delete from user where id=%s"
    cur.executemany(sql,[(3),(2,)])
    cur.execute("select * from user")

    for v in cur.fetchall():
        print v

    cur.close()
    conn.commit()
    conn.close()
    print u"sql執行成功"
except Exception, e:
    print e

事務回滾

import MySQLdb
import random
try:
    conn = MySQLdb.connect(
        host = ‘127.0.0.1‘,
        user = ‘root‘,
        passwd = "123456",
        port = 3306)

    conn.select_db(‘python‘)# 
    cur = conn.cursor()# 獲取遊標
    cur.execute("select * from user")
    datas = cur.fetchall()
    print u"修改前的數據:\n", datas[0]

    cur.execute("update user set birthday=‘2100-08-12‘where name=‘tom6")
    cur.execute("select * from user")
    datas = cur.fetchall()
    print u"修改後的數據:\n", datas[0]
    #回滾事務
    conn.rollback()
    cur.execute("select * from user")
    datas = cur.fetchall()
    print u"事務回滾後的數據:\n", datas[0]
    #關閉遊標
    cur.close()
    #提交事務
    conn.commit()
    #關閉數據庫連接
    conn.close()
    print u"sql語句執行成功!"

except Exception, e:
    print e

重置遊標位置
scroll(value, mode=‘relative‘)
移動指針到參數value指定的行;
Mode = relative則表示從當前所在行前移value行
Mode=absolute表示移動到絕對位置的value行。遊標索引從0開始
cursor.rownumber
返回當前遊標所在位置

數據庫表內容:

#coding=utf-8
import MySQLdb
#打開數據庫連接
conn = MySQLdb.connect(
    host = "localhost", 
    port = 3306,
    user = "root", 
    passwd = "123456", 
    db = "python", 
    charset = "utf8") 

#使用cursor()方法獲取數據庫的操作遊標
cursor = conn.cursor()
cursor.execute("select * from user order by id")
print u"當前遊標所在位置:", cursor.rownumber

print cursor.fetchone()
print u"當前遊標所在位置:", cursor.rownumber
cursor.scroll(0,mode="absolute")#移動遊標到第一行
print u"當前遊標所在位置:", cursor.rownumber
print cursor.fetchone()
#coding=utf-8
import MySQLdb
#打開數據庫連接
conn = MySQLdb.connect(
    host = "localhost", 
    port = 3306,
    user = "root", 
    passwd = "123456", 
    db = "python", 
    charset = "utf8") 

#使用cursor()方法獲取數據庫的操作遊標
cursor = conn.cursor()
cursor.execute("select * from user order by id")
print u"當前遊標所在位置:", cursor.rownumber

res = cursor.fetchmany(5)
for value in res:
    print value

print u"當前遊標所在位置:", cursor.rownumber

cursor.scroll(3,mode="relative")#遊標會向前移動3,對應數據庫表就是向後移動3行
print u"當前遊標所在位置:", cursor.rownumber
print cursor.fetchone()

MySQLdb操作數據庫(三)