import pymysql conn = pymysql.connect( host="192.168.85.129", port=3306, user="root", password="123456", database="pymysql", charset="utf8" ) cursor = conn.cursor() # 默认游标类型为 Cursor类,即表现形式为元组 while True: name = input("请输入插入记录的用户名>>>").strip() if name.upper() == "Q": break password = input("请输入插入记录的密码>>>").strip() gender = input("请输入插入记录的性别>>>").strip() # 枚举类型 male 和 female age = int(input("请输入插入记录的年龄>>>").strip()) sql = "insert into user (name,sex,age,password) values('%s','%s',%d,'%s')" % (name,gender,age,password) cursor.execute(sql) conn.commit() sql = "select * from user" ret = cursor.execute(sql) res = cursor.fetchall() # 获得所有记录 print(res) # ((1, 'chris', 'male', 28, '123456'), (2, 'jiayong', 'male', 18, '123'), (3, 'wuyi', 'female', 21, '123456'), (4, 'chendu', 'male', 23, '123')) cursor.scroll(0,mode="absolute") # 将光标以绝对方式,移动到绝对位置 0,即第一行记录 res = cursor.fetchone() print(res) # (1, 'chris', 'male', 28, '123456') cursor.scroll(2,mode="relative") res = cursor.fetchone() # (4, 'chendu', 'male', 23, '123') # 可见光标的下标从0开始,当最后一条记录获取后,光标移动到记录的结束。即结束也是一个光标位置 print(res) try: res = cursor.scroll(1,mode="relative") print(res) except IndexError as e: print(e) print("光标越界") cursor.scroll(-2,mode="relative") res = cursor.fetchone() print(res) cursor.scroll(0,mode="absolute") # 将游标移动到绝对位置 0,即,表的第一行记录处,好像不能直接移动表尾 # cursor.executemany() # cursor.nextset() print(cursor.fetchone()) # cursor.scroll(12,mode="absolute") # print(cursor.fetchone()) # 通过一条查询,插入多条数据 sql = "insert into user (name,password,sex,age) values(%s,%s,%s,%s)" # 自己拼接字符串,存在SQL注入问题,交给pymysql模块 ret = cursor.executemany(sql,[('wangyuan','123456','male',38),('naxing','123','female',33)]) conn.commit() print(ret)
