您的位置:首页 > 编程语言 > Python开发

mysql学习笔记---在python上操作mysql

2018-03-06 12:16 477 查看
import pymysql

# 创建连接
conn = pymysql.connect(host="rm-uf69d6mp154aocu5tbo.mysql.rds.aliyuncs.com",port=3306,user='root',passwd='123QWEqwe',db='testlv')

#创建游标
cursor = conn.cursor()  #游标为元祖类型

#result : 数据库下有多少表   当前数据库有7个
result = cursor.execute("show tables")
print(cursor.fetchall())  # 输出:(('class',), ('std3',), ('t1',), ('t2',), ('t3',), ('test',), ('xs',))

# 现在游标已经到了元组的末尾,如果在cursor.fetchone()就会输出None,所以先定为到元组的0位置
cursor.scroll(0,mode='absolute')   # 绝对位置
print(result,cursor.fetchone())   # 输出 : 7 ('class',)   注意要用cursor.fetchone() 而不是用 conn.fetchone() ,还有cursor.fetchmany(3)
result =cursor.execute("show tables")
#如果想取t2这个元素,可以
cursor.scroll(2,mode='relative')  # 相对位置 或者用cursor.scroll(3,mode='absolute')
print(cursor.fetchone())

cursor1 = conn.cursor(cursor=pymysql.cursors.DictCursor)   # 字典形式
result1 = cursor1.execute("show tables")
print(cursor1.fetchall())  #[{'Tables_in_testlv': 'class'}, {'Tables_in_testlv': 'std3'}, {'Tables_in_testlv': 't1'}, {'Tables_in_testlv': 't2'}, {'Tables_in_testlv': 't3'}, {'Tables_in_testlv': 'test'}, {'Tables_in_testlv': 'xs'}]

#插入数据,返回的值:受影响行数
res1 = cursor.execute("insert into class(id,name) values(10,'Tom1')")
print(res1)   # 1

#插入多行数据,返回的值:受影响行数
data = [(4,'John'),(5,'Anny'),(6,'AngelYan')]
res2 = cursor.executemany("insert into class(id,name) values(%s,%s)",data)
print(res2)    # 3

# 获取最新自增ID
print(conn.insert_id())    # 6  这个一定要写在commit之前,否者输出为0
# 提交,不然无法保存新建或者修改的数据
conn.commit()

# 关闭游标
cursor.close()

# 关闭连接
conn.close()

# 获取最新自增ID
new_id = cursor.lastrowid
print('new_id',new_id)  # 当前插入的最后id是6,所以输出也是6
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: