數據庫如下:
直接上代碼,如下:
1 import MySQLdb # 導入數據庫包 2 3 conn = MySQLdb.connect( 4 host='fhdskhaf.aliyuncs.com', # 連接服務器 5 port=3306, # 端口號,默認3306的話可以省略這一行 6 user='zhangsan', # 用戶名 7 passwd='fhdkasjf', # 密碼 8 db='datav', # 數據庫名 ----- 1.此處也可以不指定數據庫名,在sql語句中寫庫名,可以使用多個不同的庫 2. 也可以此處指定數據庫A,sql中用到數據庫B 9 charset='utf8' # 編碼方式(字符集) 10 ) 11 12 c = conn.cursor() # 創建游標 13 14 # 查詢每一行 15 c.execute('select * from zy_1') 16 for i in range(c.rowcount): 17 row = c.fetchone() 18 print(row) 19 if row[1] == 'shuxue': # row[1]取出每行數據中的某一列,下標從0開始 20 print('ok') 21 break 22 23 c.close() # 關閉游標 24 conn.close() # 關閉數據庫連接
增刪改查,分別如下(增刪改需要使用commit()):
# 增 c.execute("insert into zy_1(name, score) VALUES('yuwen', 99), ('shuxue', 89)") conn.commit() # conn有commit方法,cur沒有
# 刪 c.execute("delete from zy_1 where id > 2") conn.commit()
# 改 c.execute("update zy_1 set score = 66 where id = 1") conn.commit()
# 查 c.execute('select * from zy_1') rows = c.fetchall() print(rows)
三種查詢方法:
1 c.fetchone() # 查詢一行 2 c.fetchmany(2) # 查詢2行 3 c.fetchall() # 全部查詢出來
ps:
單行sql
sql = "select version()"
多行sql
sql = "select " \ "version()"
完善一些的寫法(加上異常處理):
sql1 = "select * from tb_3" try: cur.execute(sql1) conn.commit() except: conn.rollback() # 發生錯誤時回滾