1、python学习之操作mysql 电脑资料
刚开始学python,所以很多代码都需要在ipython里尝试一下,
写数据库连接操作的时候,仿佛回到了当年在前两家公司写asp.的感觉。
1.首先在mysql数据库里新建个数据库
create database db02 default charset utf8;
create table user (id int autoincrement primary key,username char(20),email char(20));
2.开始写python代码
import MySQLdb
conn = MySQL
2、db.connect(user=’root’,host=’localhost’,passwd=”)
conn.selectdb(‘db02′)
cursor =conn.cursor()
sql = ‘insert into user(name,email) values(“andy”,”andy@163.”)’
cursor.execute(sql)
————————————————
cursor.execute(‘insert into user(name,email) values(“andy”,”andy@163.”)’)
查看:
In [14]: sq
3、l=’select * from user’
In [15]: cur.execute(sql)
Out[15]: 2L
In [16]: cur.fetchone()
Out[16]: (1L, ‘andy’, ‘andy@163.’, None)
In [17]: cur.fetchone()
Out[17]: (2L, ‘andy’, ‘andy@163.’, None)
In [19]: cur.execute(sql)
Out[19]: 2L
In [20]: cur.fetchall()
Out[20]: ((1L, ‘andy’, ‘and
4、y@163.’, None), (2L, ‘andy’, ‘andy@163.’, None))
最后是
cursor.close()
conn.close()
写到这里认为万事大吉喽,去mysql里一看发现数据没进来,找了原因才知道这是与表的类型有关,
mysql> show create table user;
+——-+————————————————————————————–
| Table | Create Table
+——-+————————————————————————————–
| user | CREATE TABLE `user` (
5、
`id` int(11) NOT NULL AUTOINCREMENT,
`name` char(20) NOT NULL,
`email` char(20) NOT NULL,
`password` char(200) DEFAULT NULL,
PRIMARY KEY (`id`)
) ENGINE=InnoDB AUTOINCREMENT=6 DEFAULT CHARSET=utf8 |
+——-+————————————————————————————–
因为用的是InnoDB,不是MyISAM, MyISAM类型不支持事务处理等高级处理,而InnoDB类型支持。MyISAM类型的表强调的是性能,其执行数度比InnoDB类型更快,但是不提供事务支持,而InnoDB提供事务支持已经外部键等高级数据库功能。MyISAM的读性能是比Innodb强不少的.
所以只要加上一句conn.mit(),数据库里就可以看到记录了
原文:.iwangzheng./?p=257
模板,内容仅供参考