美文网首页
python连接mysql

python连接mysql

作者: IthinkIcanfly | 来源:发表于2018-10-19 13:38 被阅读0次
    import pymysql
    conn = pymysql.connect(host='127.0.0.1',
                           user='root', passwd='root', db='ypyx')
    cur = conn.cursor()
    cur.execute("USE ypyx")
    
    cur.execute("SELECT * FROM posts WHERE id<100")
    print(cur.fetchone())
    cur.close()
    conn.close()
    

    这段程序有两个对象:连接对象(conn )和光标对象(cur )。

    连接 / 光标模式是数据库编程中常用的模式,不过刚刚接触数据库的时候,有些用户很难区分两种模式的不同。连接模式除了要连接数据库之外,还要发送数据库信息,处理回滚操作(当一个查询或一组查询被中断时,数据库需要回到初始状态,一般用事务控制手段实现状态回滚),创建新的光标对象,等等。

    而一个连接可以有很多个光标。一个光标跟踪一种状态 (state)信息,比如跟踪数据库的使用状态。如果你有多个数据库,且需要向所有数据库写内容,就需要多个光标来处理。光标还会包含最后一次查询执行的结果。通过调用光标函数,比如 cur.fetchone() ,可以获取查询结果。

    用完光标和连接之后,千万记得把它们关闭。如果不关闭就会导致连接泄漏 (connection leak),造成一种未关闭连接现象,即连接已经不再使用,但是数据库却不能关闭,因为数据库不能确定你还要不要继续使用它。这种现象会一直耗费数据库的资源,所以用完数据库之后记得关闭连接!

    刚开始的时候,你最想做的事情可能就是把采集的结果保存到数据库里。


    ALTER DATABASE scraping CHARACTER SET = utf8mb4 COLLATE = utf8mb4_unicode_ci;
    ALTER TABLE pages CONVERT TO CHARACTER SET utf8mb4 COLLATE utf8mb4_unicode_ci;
    ALTER TABLE pages CHANGE title title VARCHAR(200) CHARACTER SET utf8mb4 COLLATE
    utf8mb4_unicode_ci;
    ALTER TABLE pages CHANGE content content VARCHAR(10000) CHARACTER SET utf8mb4 CO
    LLATE utf8mb4_unicode_ci;
    

    这四行语句改变的内容有:数据库、数据表,以及两个字段的默认编码都从 utf8mb4 (严格说来也属于 Unicode,但是对大多数 Unicode 字符的支持都非常不好)转变成了 utf8mb4_unicode_ci 。

    相关文章

      网友评论

          本文标题:python连接mysql

          本文链接:https://www.haomeiwen.com/subject/gwzezftx.html