第一步:連接
import MySQLdb #首先需要引入mysqldb即Python 連接 MySQL 的模塊。
conn=MySQLdb.connect(host="localhost",user="root",passwd="")#此處等價於缺省值時即conn=MySQLdb.connect()
cur = conn.cursor() #創建遊標,用於發送sql指令
這樣就可以用遊標cur發送sql指令給mysql了。
第二步:操作
1.創建數據庫
cur.execute('create database adams')
再在mysql下查看一下,當然也可以直接在python中查看,但這裏寫一下如何在mysql下查看,便於兩種環境的轉換。
2.創建表
cur.execute('use adams') #表示接下來要使用數據庫adams同mysql下的用法
cur.execute('create table test(ID int,name varchar(8),sex varchar(1))')
cur.execute('show tables')#在這裏不能直接打印出tables,而要用如下命令查看
cur.fetchone()
得到如下結果:
3.表操作
只介紹添加記錄和查找記錄,因爲刪除和修改mysqldb所設計的操作比較少,基本只和sql語句有關。
3.1.增
sqlim = "insert into test(ID,name,sex) values(%s,%s,%s)"#先把sql語句寫下來,用格式化方法方便操作時傳入可變的值,注意這裏無論什麼數據類型都用%s
m1 = (1,'aaa','f')
m2 = (2,'bbb','m')
m3 = (3,'ccc','m')
m4 = (4,'ddd','f')
m5 = (5,'eee','m')
cur.executemany(sqlim,[m1,m2,m3,m4,m5])#用列表把5個值和sql命令通過executemany命令執行。如果只有一個值的話把executemany改爲execute把sqlim中values改爲value,傳入一個m參數就可以了。
3.2.查
cur.execute('select * from test')
cur.fetchall()
得到如下結果
在這裏,指針移動到了最後面,在執行cur.fetchone()就無法得到任何結果,所以需要移動指針
cur.scroll(offset,mode)#這scroll的用法和python中的文件操作所用的seek函數只有第一個參數是一樣的,mode=absolute | relative,默認爲relative。
我們把cur移到最前面
cur.scroll(0,‘absolute’)
cur.catchmany(2) #查到前兩條數據
因爲前面我們由cur.execute('select * from test')得到的是test中記錄的條數,所以可以直接這樣使用輸出所有條目
cur.catchmany(cur.execute('select * from test'))
第三步:退出
先退出遊標
cur.close()
在退出連接
conn.close()
申明
本文是在聽網易雲課堂瘋狂的Python:快速入門精講第37課時所做的筆記