mysql(一)

1、安装mysql

  如果是windows系统:登录https://pypi.python.org/pypi/MySQL-python/1.2.5找到.exe结尾的包,下载安装就好了,然后配置环境变量即可。

  如果是Linux系统,通过下载源码包进行安装。

2、连接mysql

 1 import MySQLdb
 2 #连接数据库:
 3 # host 数据库ip
 4 # user 连接数据库用户
 5 # passwd 用户密码
 6 # db     数据库名字
 7 # charset字符集  utf-8
 8 # port   数据库监听端口
 9 
10 # conn=MySQLdb.connect(host="101.132.125.136",user="root",passwd="aisirea802311",db="python",charset="utf8")
11 # 规范:
12 def connect_mysql():
13     db_config={
14         "host":"101.132.125.136",
15         "user":"root",
16         "passwd":"aisirea820311",
17         "db":"python",
18         "charset":"utf-8"
19 
20     }
21     try:
22         aaa=MySQLdb.connect(**db_config)
23     except Exception as e:
24         raise e
25     return aaa

3、mysql事务

MySQL 事务主要用于处理操作量大,复杂度高的数据。
事务处理可以用来维护数据库的完整性,保证成批的SQL语句要么全部执行,要么全部不执行。
一般来说,事务是必须满足4个条件(ACID): Atomicity(原子性)、Consistency(稳定性)、Isolation(隔离性)、Durability(可靠性)
1、事务的原子性:一组事务,要么成功;要么撤回。
2、稳定性:有非法数据(外键约束之类),事务撤回。
3、隔离性:事务独立运行。一个事务处理后的结果,影响了其他事务,那么其他事务会撤回。事务的100%隔离,需要牺牲速度。
4、可靠性:软、硬件崩溃后,InnoDB数据表驱动会利用日志文件重构修改。可靠性和高速度不可兼得, innodb_flush_log_at_trx_commit选项决定什么时候吧事务保存到日志里。
mysql事务的方法
commit():提交当前事务,如果是支持事务的数据库执行增删改后没有commit则数据库默认回滚,白操作了
rollback():取消当前事务

4、游标

 1 # 游标(cursor)
 2 # 游标是系统为用户开设的一个数据缓冲区,存放SQL语句的执行结果
 3 # 用户可以用SQL语句逐一从游标中获取记录,并赋给主变量,交由python进一步处理,一组主变量一次只能存放一条记录
 4 # 仅使用主变量并不能完全满足SQL语句向应用程序输出数据的要求
 5 
 6 # 常用方法:
 7 # cursor():创建游标对象
 8 # close():关闭此游标对象
 9 # fetchone():得到结果集的下一行
10 # fetchmany([size = cursor.arraysize]):得到结果集的下几行
11 # fetchall():得到结果集中剩下的所有行
12 # excute(sql[, args]):执行一个数据库查询或命令
13 # executemany (sql, args):执行多个数据库查询或命令
14 
15 if __name__ == '__main__':
16     aaa = connect_mysql()
17     cus = aaa.cursor()
18     sql = " create table test(id int not null);insert into test(id) values (100);"
19     try:
20         cus.execute(sql)
21         #执行
22         cus.close()
23         aaa.commit()
24         #提交,没有异常关闭,有异常except
25     except Exception as e:
26         aaa.rollback()
27         print('Error')
28         raise e
29     finally:
30         aaa.close()

 

 

  

posted @ 2017-11-21 10:13  依哈  阅读(177)  评论(0编辑  收藏  举报