python操作mysql数据库 内存占用100_python操作MySQL数据库
python標(biāo)準(zhǔn)數(shù)據(jù)庫(kù)接口為Python DB-API,為開發(fā)人員提供了數(shù)據(jù)庫(kù)應(yīng)用編程接口
DB-API是一個(gè)規(guī)范,定義了一系列必須的對(duì)象和數(shù)據(jù)庫(kù)存取方式,
便于各種各樣的底層數(shù)據(jù)庫(kù)系統(tǒng)和多種多樣的數(shù)據(jù)庫(kù)接口程序提供一致的訪問接口
MySQLdb用于python連接Mysql數(shù)據(jù)庫(kù)的接口,
實(shí)現(xiàn)了python數(shù)據(jù)庫(kù)API規(guī)范v2.0,基于mysql c API上建立
使用前需要安裝該模塊
簡(jiǎn)單實(shí)例:
importMySQLdb#打開數(shù)據(jù)庫(kù)連接
db = MySQLdb.connect("localhost", "testuser", "test123", "TESTDB", charset="utf8")#使用cursor()方法獲取操作游標(biāo)
cursor =db.cursor()#使用execute方法執(zhí)行SQL語(yǔ)句
cursor.execute("SELECT VERSION()")
使用fetchone()方法獲取一條數(shù)據(jù)
data=cursor.fetchone()print "Database version: %s" %data#關(guān)閉數(shù)據(jù)庫(kù)
db.close()
創(chuàng)建數(shù)據(jù)庫(kù)表:
可以使用execute()方法來為數(shù)據(jù)庫(kù)創(chuàng)建表
數(shù)據(jù)庫(kù)插入/更新/刪除操作,事務(wù)的方式執(zhí)行
try:
cursor.execute(sql)
db.commit()exceptException,e:
db.rollback()
數(shù)據(jù)庫(kù)查詢操作:
fetchone():該方法獲取下一個(gè)查詢結(jié)果集,結(jié)果集是一個(gè)對(duì)象
fetchall():接受全部的返回結(jié)果行
rowcount:這是一個(gè)只讀屬性,并返回執(zhí)行execute()方法后影響的行數(shù)
錯(cuò)誤處理:
#!/usr/bin/env python#coding:utf-8
importMySQLdb
conn=MySQLdb.connect(host='127.0.0.1',user='root',passwd='123')
conn.select_db('08day5')#選擇數(shù)據(jù)庫(kù)
cur=conn.cursor()#以元組的形式展示#cur=conn.cursor(cursorclass=MySQLdb.cursors.DictCursor)#以字典的形式展示
cur.execute('DROP TABLE IF EXISTS admin')#如果數(shù)據(jù)表已經(jīng)存在,則使用execute()方法刪除#創(chuàng)建數(shù)據(jù)表
sql='''CREATE TABLE admin(
id INT PRIMARY KEY AUTO_INCREMENT,
user VARCHAR(20) NOT NULL,
passwd VARCHAR(20) NOT NULL
)'''cur.execute(sql)#插入單條記錄
sql='insert into admin(user,passwd) values(%s,%s)'#使用sql語(yǔ)句,無論我們要插入的數(shù)據(jù)是什么類型,占位符都可以用%s
params=('alex','usa')
cur.execute(sql,params)
conn.commit()#請(qǐng)注意:用commit()提交事務(wù)之后,才能真正的插入數(shù)據(jù)。#插入多條記錄(批量插入)
sql='insert into admin(user,passwd) values(%s,%s)'l=[('song','222aaa'),('shi','333bbb'),('yuan','444ccc'),('xing','abcddd'),('cheng','kkjjhh')]
cur.executemany(sql,l)#使用executemany()實(shí)現(xiàn)批量插入!
conn.commit()#刪除記錄
sql='delete from admin where id=%s'params=(3,)
cur.execute(sql,params)
conn.commit()#查詢記錄
reCount=cur.execute('select * from admin')#返回本次操作影響的記錄數(shù)
printreCount
data=cur.fetchall()#獲得 'select * from admin'語(yǔ)句 返回的結(jié)果集
printdata
cur.scroll(0,mode='absolute')#光標(biāo)回到初始位置0處(絕對(duì)定位)
print cur.fetchone()#此時(shí),光標(biāo)位置為0;返回位置為0的記錄
print cur.fetchone()#返回位置為1的記錄
cur.scroll(1,mode='absolute')#光標(biāo)回到1處(絕對(duì)定位)
print cur.fetchone()#返回位置為1的記錄
cur.scroll(-2,mode='relative')#光標(biāo)回退2步(相對(duì)定位)
print cur.fetchmany(3)#從光標(biāo)所在的位置(此時(shí),光標(biāo)位于0處),連續(xù)讀取3條記錄
cur.scroll(1,mode='relative')#光標(biāo)前進(jìn)1步(相對(duì)定位)
print cur.fetchone()#返回光標(biāo)(位于4處)指向的那一條記錄
print cur.lastrowid #獲取插入數(shù)據(jù)的當(dāng)自增ID#修改
sql='update admin set passwd=%s where user=%s'params=('123123','song')
cur.execute(sql,params)
conn.commit()
cur.close()
conn.close()
總結(jié)
以上是生活随笔為你收集整理的python操作mysql数据库 内存占用100_python操作MySQL数据库的全部?jī)?nèi)容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: 插值法补齐缺失数据_关于数据清洗的常见方
- 下一篇: python镜像下载包_python包详