zoukankan      html  css  js  c++  java
  • 二十、Python与Mysql交互

    先安装一个python与MySQL交互的包:MySQL-python
    $ gunzip MySQL-python-1.2.2.tar.gz
    $ tar -xvf MySQL-python-1.2.2.tar
    $ cd MySQL-python-1.2.2
    $ python setup.py build
    $ python setup.py install
    ===========================================================================================================================
    import MySQLdb
    try:
    conn=MySQLdb.connect(host='localhost',user='root',passwd='123456',db='py_s10',port=3306)
    cur=conn.cursor() #指针(游标)
    insert_data = "insert into students (name,sex,degree) values(%s,%s,%s,)" #插入数据保存在insert_data变量中,students表的结构为id, #name,sex,degree
    cur.excute(insert_data,("jack",3,99)) #这里我执行插入数据操作
    cur.execute('select * from students') #执行命令
    print (cur.fetchone()) #取得一条数据(第一条)
    print (cur.fetchall()) #取得所有数据
    query_res = cur.fetchmany(4) #取得4条数据
    conn.rollback() #我在提交之前回滚下,它的数据是提交不到数据库的
    conn.commit() #提交到数据库,如果没有这条,只是写到了内存,没有真正写入数据库
    cur.close()
    conn.close()
    except MySQLdb.Error,e:
    print "Mysql Error msg:" ,e
     
     
    一次性插入多条数据(谨慎操作):
    import MySQLdb
    try:
    conn=MySQLdb.connect(host='localhost',user='root',passwd='123456',db='py_s10',port=3306)
    cur=conn.cursor()
    data_list = []
    for i in range(10):
    data_list.append(('rain_%s' % i,i,i))
    insert_data = "insert into students (name,sex,degree) values(%s,%s,%s,)"
    cur.excutemany(insert_data,data_list) #这里我就一次性插入了10条数据
    cur.execute('select * from students')
    cur.scroll(2,mode='ralative') #从现在的光标位置继续往下找
    print (cur.fetchone())
    print (query_res)
    cur.close()
    conn.close()
    except MySQLdb.Error,e:
    print "Mysql Error msg:" ,e
     
    ==============================================================================================================================
    常用函数:
    对事务操作的支持,标准的方法
    commit() 提交
    rollback() 回滚 #提交了之后就不能回滚了
     
     
    cursor用来执行命令的方法:
    callproc(self,procname,args):用来执行存储过程,接收的参数为存储过程名和参数列表,返回值为受影响的行数
    excute(self,query,args):执行单条sql语句,接收的参数为sql语句本身和使用的参数列表,返回值为受影响的行数
    executemany(self,quiry,args):执行单条sql语句,但是重复执行参数列表里的参数,返回值为受影响的行数
    nextset(self):移动到下一个结果集
     
     
    cursor用来接收返回值的方法:
    fetchall(self):接收全部的返回结构行
    fetchmany(self,size=None):接收size条返回结果行,如果size的值大于返回的结果行的数量,则会返回cursor.arraysize条数据
    fetchone(self):返回一条结果行
    scroll(self,value,mode='relative'):移动指针到某一行,如果mode='relative',则表示从当前所在行移动value条,如果mode='absolute',则表示从结果集的第一行移动value条(不常用)
     
     
     
     
  • 相关阅读:
    promethus监控JVM jar包
    ubuntu中文乱码解决办法
    IT焦躁中的赤子青年
    ftp neo4j http kafka搭建
    查看python脚本执行过程
    解决coredns-7f9c544f75-2sjs2一直处于ContainerCreating
    番茄工作法
    数据库的性能优化
    MyBatis
    CentOS下安装JDK,Tomcat,Redis,Mysql,及项目发布
  • 原文地址:https://www.cnblogs.com/steven9898/p/11329454.html
Copyright © 2011-2022 走看看