使用python读取mysql数据库并进行数据的操作

时间:2024-06-17 18:35:25

  (一)环境的配置
  
  使用python调用mysql数据库要引进一些库。
  
  目前我使用的python版本是python3.6。引进库为pymysql
  
  其他对应的库可以有以下选择:
  
  mysqldb,oursql, PyMySQL, myconnpy 等,参考如下链接:
  
  http://dev.mysql.com/doc/connector-python/en/index.html
  
  http://packages.python.org/oursql/
  
  https://github.com/petehunt/PyMySQL/
  
  https://launchpad.net/myconnpy
  
  (二)连接数据库
  
  conn = pymysql.connect(host='127.0.0.1', user='root', passwd='123456', db='exam', charset='utf8')
  
  cur=conn.cursor()
  
  关于游标cursor:
  
  close():关闭此游标对象
  
  fetchone():得到结果集的下一行
  
  fetchmany([size = cursor.arraysize]):得到结果集的下几行
  
  fetchall():得到结果集中剩下的所有行
  
  excute(sql[, args]):执行一个数据库查询或命令
  
  excutemany(sql, args):执行多个数据库查询或命令
  
  ( 三)数据库基本操作:
  
  #表的创建
  
  cur.execute("drop table if exists exam_class")
  
  cur.execute("CREATE TABLE IF NOT EXISTS exam_class( \
  
  id INT(11) NOT NULL PRIMARY KEY AUTO_INCREMENT ,\
  
  big_class VARCHAR(255), \
  
  small_class VARCHAR(255) , \
  
  charact VARCHAR(255) ,\
  
  fre DOUBLE(5,4) ) ")
  
  #注意DOUBLE等浮点数声明的时候应该是DOUBLE(M,N) m为数字长度,n为小数点后的位数
  
  #SELECT查询操作
  
  select_sql = 'SELECT small_class,big_class,job_intro FROM table2'
  
  try:
  
  cur.execute(select_sql)
  
  print(cur.execute(select_www.quwanyule157.com sql))
  
  except:
  
  print("Select is failed")
  
  #INSERT插入操作
  
  cur.execute("INSERT INTO exam_class (big_class, small_class, charact, fre)\
  
  VALUES (%s, %s, %s, %s )", (big_name, small_name, context[m][0], context[m][1]))
  
  conn.commit()
  
  #对于插入、更新等对数据库进行修改的工作,在插入之后一定要commit提交。
  
  #此时插入操作是插入一些变量转化成的值。
  
  #正确操作 (%s, %s, %s, %s )", (big_name, small_name, context[m][0], context[m][1])
  
  #错误操作 (%s, %s, %s, %s )" %(big_name, small_name, context[m][0], context[m][1])
  
  #更新、删除同理
  
  #我也很想知道为什么这个代码片的颜色这么怪,没有正确识别注释和代码
  
  (四)注意事项
  
  对于查询操作而言:
  
  cur.execute(select_sql)
  
  result = cur.fetchall(www.wanmeiyuele.cn)
  
  for c in cur:
  
  ... #cursor是游标所在位置,如果输出会发现只有一行数据。
  
  for r in result:
  
  ... #result是在对cursor调用fetchall之后,result是获取的查询所有结果。result是一个列表,r是每一行数据。
  
  对于数据增删改之后,一定要提交!提交!提交!
  
  在所有操作完成之后,一个好习惯是关闭数据库连接,关闭游标。
  
  cur.close(www.michenggw.com)
  
  conn.close()