• python学习之操作mysql


    欢迎点击个人博客 http://www.iwangzheng.com/

    刚开始学python,所以很多代码都需要在ipython里尝试一下。今天记录的是最基本的操作mysql数据库。

    写数据库连接操作的时候,仿佛回到了当年在前两家公司写asp.net的感觉。

    1.首先在mysql数据库里新建个数据库

    create database db_02  default charset utf8;
    
    create table user (id int auto_increment primary key,username char(20),email char(20));

    2.开始写python代码

    import MySQLdb
    
    conn = MySQLdb.connect(user=’root’,host=’localhost’,passwd=”)
    
    conn.select_db(‘db_02′)
    
    cursor =conn.cursor()
    
    sql = ‘insert into user(name,email) values(“andy”,”andy@163.com”)’
    
    cursor.execute(sql)
    
    ————————————————
    
    cursor.execute(‘insert into user(name,email) values(“andy”,”andy@163.com”)’)

    查看:

    In [14]: sql=’select * from user’
    
     
    
    In [15]: cur.execute(sql)
    
    Out[15]: 2L
    
     
    
    In [16]: cur.fetchone()
    
    Out[16]: (1L, ‘andy’, ‘andy@163.com’, None)
    
     
    
    In [17]: cur.fetchone()
    
    Out[17]: (2L, ‘andy’, ‘andy@163.com’, None)
    
    In [19]: cur.execute(sql)
    
    Out[19]: 2L
    
    In [20]: cur.fetchall()
    
    Out[20]: ((1L, ‘andy’, ‘andy@163.com’, None), (2L, ‘andy’, ‘andy@163.com’, None))
    
    最后是
    
    cursor.close()
    
    conn.close()

    写到这里认为万事大吉喽,去mysql里一看发现数据没进来,找了原因才知道这是与表的类型有关。

    mysql> show create table user;
    
    +——-+————————————————————————————–
    
    | Table | Create Table
    
    +——-+————————————————————————————–
    
    | user  | CREATE TABLE `user` (
    
    `id` int(11) NOT NULL AUTO_INCREMENT,
    
    `name` char(20) NOT NULL,
    
    `email` char(20) NOT NULL,
    
    `password` char(200) DEFAULT NULL,
    
    PRIMARY KEY (`id`)
    
    ) ENGINE=InnoDB AUTO_INCREMENT=6 DEFAULT CHARSET=utf8 |
    
    +——-+————————————————————————————–

    因为用的是InnoDB,不是MyISAM, MyISAM类型不支持事务处理等高级处理,而InnoDB类型支持。MyISAM类型的表强调的是性能,其执行数度比InnoDB类型更快,但是不提供事务支持,而InnoDB提供事务支持已经外部键等高级数据库功能。MyISAM的读性能是比Innodb强不少的.

    所以只要加上一句conn.commit(),数据库里就可以看到记录了

  • 相关阅读:
    js或css文件后面的参数是什么意思?
    查看mysql语句运行时间的2种方法
    lumia手机wp系统应用列表如何设置按照拼音
    每一个你不满意的现在,都有一个你没有努力的曾经。
    一行代码实现防盗链!
    请写一个php函数,可以接受任意数量的参数
    ajax处理缓冲问题
    Textarea自动适用高度且无滚动条解决方案
    PHP Warning exec() has been disabled for security reasons怎么办
    各种字符编码方式详解及由来(ANSI,UNICODE,UTF-8,GB2312,GBK)
  • 原文地址:https://www.cnblogs.com/iwangzheng/p/3754892.html
Copyright © 2020-2023  润新知