PyMySQL 是在 Python3.x 中链接MySQL服务器的一个库(纯Python实现),Python2 中使用 MySQLdbpython
pip install pymysql
# coding=utf-8 import pymysql conn = pymysql.connect( host='192.168.30.161', # 要链接数据库的IP或主机名 port=3306, # 端口,默认3306 user='root', # 用户名 password='000000', # 密码 database='test', # 数据库,以后能够更改 charset='utf8' # 字符集 ) # 建立一个游标 cursor = conn.cursor() # 以字典的方式返回数据 # cursor = conn.cursor(cursor=pymysql.cursors.DictCursor) # 执行DQL语句 cursor.execute('select * from student') print(cursor.fetchone()) # 从管道中取一条数据 cursor.scroll(-1) # 将游标从当前位置向后移动一位(相对位置),即开头位置 print(cursor.fetchall()) # 取全部数据 cursor.scroll(0, mode='absolute') # 将游标移动到开头(绝对位置) print(cursor.fetchmany(1000)) # 指定获取数量,超出查询结果的最大条数,则返回最大条数 # 关闭游标 cursor.close() #关闭数据库 conn.close()
commit
提交才能真正写入到数据库,默认支持事务# coding=utf-8 import pymysql conn = pymysql.connect( host='192.168.30.161', # 要链接数据库的IP或主机名 port=3306, # 端口,默认3306 user='root', # 用户名 password='000000', # 密码 database='test', # 数据库,以后能够更改 charset='utf8' # 字符集 ) # 建立一个游标 cursor = conn.cursor() try: # 开启事务 conn.begin() sql= 'insert into student(sname,age,gender,addr,telnum) value("张三",20,1,"北京市","123456")' # 返回值是做用的行数 rest = cursor.execute(sql) # 向数据库提交 conn.commit() print(rest) sql = 'update student set telnum="10086" where telnum="123456"' cursor.execute(sql) # 手动抛出异常 raise ValueError() conn.commit() except: # 回滚 conn.rollback() # 关闭游标 cursor.close() # 关闭数据库 conn.close()