python_MySQLdb
获取列和值
#!/bin/env python
#coding: utf:8
import MySQLdb
conn = MySQLdb.connect(host="localhost",user="root",passwd="coship",db="pythondb")
cur = conn.cursor() #获取游标,打印时只有value
cur = conn.cursor(cursorclass = MySQLdb.cursors.DictCursor) #打印时是字典 {列:value}
resgeshu = cur.execute("select * from students") #获取select 个数
data = cur.fetchall() #
print data
cur.close()
conn.close()
批量插入
#!/bin/env python
#coding: utf:8
import MySQLdb
conn = MySQLdb.connect(host="localhost",user="root",passwd="coship",db="pythondb")
cur = conn.cursor() #列:value
parm = [
('3','hello'),
('4','word'),
]
sql = "insert into students(id,name) values(%s,%s)"
recount = cur.executemany(sql,parm)
conn.commit()
print cur.lastrowid #获取最后自增序列
#data = cur.fetchall()
cur.close()
conn.close()
print recount
#print data
记录偏移
#!/bin/env python
#coding: utf:8
import MySQLdb
conn = MySQLdb.connect(host="localhost",user="root",passwd="coship",db="pythondb")
cur = conn.cursor()
#cur = conn.cursor(cursorclass = MySQLdb.cursors.DictCursor) #列:value
resgeshu = cur.execute("select * from students") #获取select 个数
data = cur.fetchone() #刚执行获取第一条记录,再次调用就获取下一条
#cur.scroll(-1,mode='relative') #实际位置后退一条记录
print data
data = cur.fetchone() #
print data
cur.scroll(-1,mode='relative') #实际位置后退一条记录
#cur.scroll(0,mode='absolute') #回到开头
data = cur.fetchone() #
print data
cur.close()
conn.close()
#-*- coding:utf-8 -*-
#mysqldb
import time, MySQLdb, sys
#connect
conn = MySQLdb.connect(host="localhost",user="root",passwd="coship",db="pythondb")
cursor = conn.cursor()
#add
sql = "insert into user(name,age) values(%s,%s)"
param = ("tom",str(20))
n = cursor.execute(sql,param)
print n
#更新
sql = "update user set name=%s where Id=9001"
param = ("ken")
n = cursor.execute(sql,param)
print n
#查询
n = cursor.execute("select * from user")
for row in cursor.fetchall():
for r in row:
print r,
print ""
#删除
sql = "delete from user where name=%s"
param =("ted")
n = cursor.execute(sql,param)
print n
cursor.close()
#关闭
conn.close()
python连接mssql数据库编码问题:
python一直对中文支持的不好,最近老遇到编码问题,而且几乎没有通用的方案来解决这个问题,但是对常见的方法都试过之后,发现还是可以解决的,下面总结了常用的支持中文的编码问题(这些方法中可能其中一个就能解决问题,也可能是多个组合)。
1. 首先,要保证文件的开头要加上编码设置来说明文件的编码
#encoding=utf-8
2. 然后,在连接数据的连接参数里加上字符集说明查询出的结果的编码,这个不加的后果可能是查询出的汉字字符都是问号
conn=pymssql.connect(server='.',user='', password='',database='MyTest',charset='utf8')
3. 设置python系统的默认编码(对于文件来说,这招几乎屡试不爽,呵呵~~)
import sys
reload(sys)
sys.setdefaultencoding('utf8')