Python操作MySQL数据库的方法

  

  

pymsql是Python中操作MySQL的模块,其使用方法和MySQLdb几乎相同。

  

下载安装

  

<代码> pip3安装pymysql

  

  

1,执行SQL

        进口pymysql   #创建连接   康涅狄格州=pymysql.connect(主机=127.0.0.1,端口=3306,用户=?passwd=?23’, db=t1)   #创建游标   光标=conn.cursor ()   #执行SQL,并返回收影响行数   effect_row=游标。执行(“更新主机设置主机=1.1.1.2”)   #执行SQL,并返回受影响行数   # effect_row=游标。执行(“更新主机设置主机=1.1.1.2的祝辞,国家免疫日;% s”, (1))   #执行SQL,并返回受影响行数   # effect_row=游标。executemany(“插入主机(主机、color_id)值(% s % s)”,(“1.1.1.11”,1),(“1.1.1.11”,2)))   #提交,不然无法保存新建或者修改的数据   conn.commit ()   #关闭游标   cursor.close ()   #关闭连接   conn.close ()      

2,获取新创建数据自增ID

        进口pymysql   康涅狄格州=pymysql.connect(主机=127.0.0.1,端口=3306,用户=?passwd=?23’, db=t1)   光标=conn.cursor ()   游标。executemany(“插入主机(主机、color_id)值(% s % s)”,(“1.1.1.11”,1),(“1.1.1.11”,2)))   conn.commit ()   cursor.close ()   conn.close ()   #获取最新自增ID   new_id=cursor.lastrowid      

3,获取查询数据

        进口pymysql   康涅狄格州=pymysql.connect(主机=127.0.0.1,端口=3306,用户=?passwd=?23’, db=t1)   光标=conn.cursor ()   游标。执行(“select * from主机”)   #获取第一行数据   row_1=cursor.fetchone ()   #获取前n行数据   # row_2=cursor.fetchmany (3)   #获取所有数据   # row_3=cursor.fetchall ()   conn.commit ()   cursor.close ()   conn.close ()      

注:在取数据时按照顺序进行,可以使用cursor.scroll (num,模式)来移动游标位置,如:

        cursor.scroll(1,模式=喽浴?#相对当前位置移动   cursor.scroll(2模式=熬浴?#相对绝对位置移动      

4,取数据类型

  

关于默认获取的数据是元祖类型,如果想要或者字典类型的数据,即:

        进口pymysql   康涅狄格州=pymysql.connect(主机=127.0.0.1,端口=3306,用户=?passwd=?23’, db=t1)   #游标设置为字典类型   光标=conn.cursor(光标=pymysql.cursors.DictCursor)   r=游标。p1()执行(“调用”)   结果=cursor.fetchone ()   conn.commit ()   cursor.close ()   conn.close ()      

  

<>强导出现有数据库数据:

  

, mysqldump - u用户名- p密码数据库名称祝辞导出文件路径,,,,,,,,,,#结构+数据

  

, mysqldump - u用户名- p密码- d数据库名称祝辞导出文件路径,,,,,,#结构

  

<>强导入现有数据库数据:

  

, mysqldump -uroot - p密码,数据库名称& lt;文件路径

  

  

(1): MyISAM存储引擎:不支持事务,也不支持外键,优势是访问速度快,对事务完整性没有要求或者以选择、插入为主的应用基本上可以用这个引擎来创建表

  

支持3种不同的存储格式,分别是:静态表;动态表;压缩表

  

静态表:表中的字段都是非变长字段,这样每个记录都是固定长度的,优点存储非常迅速,容易缓存,出现故障容易恢复;缺点是占用的空间通常比动态表多(因为存储时会按照列的宽度定义补足空格)注:在取数据的时候,默认会把字段后面的空格去掉,如果不注意会把数据本身带的空格也会忽略。

  

动态表:记录不是固定长度的,这样存储的优点是占用的空间相对较少,缺点:频繁的更新,删除数据容易产生碎片,需要定期执行优化表或者myisamchk-r命令来改善性能

  

压缩表:因为每个记录是被单独压缩的,所以只有非常小的访问开支

  

(2) InnoDB存储引擎*

  

该存储引擎提供了具有提交,回滚和崩溃恢复能力的事务安全。但是对比MyISAM引擎,写的处理效率会差一些,并且会占用更多的磁盘空间以保留数据和索引。
  InnoDB存储引擎的特点:支持自动增长列,支持外键约束

  

(3):内存存储引擎

  

内存存储引擎使用存在于内存中的内容来创建表。每个内存表只实际对应一个磁盘文件,格式是.frm.memory类型的表访问非常的快,因为它的数据是放在内存中的,并且默认使用哈希索引,但是一旦服务关闭,表中的数据就会丢失掉。

Python操作MySQL数据库的方法