zoukankan      html  css  js  c++  java
  • python每日一练之mysql.connector

      python的第三方数据库驱动器蛮多的,我用的是官方驱动MYSQL-connector,网友可以到https://pypi.org/下载自行安装。

    1.数据库的连接

    import mysql.connector
    
    
    if __name__ == "__main__":
        db = mysql.connector.connect(
            host="localhost",
            user="root",
            passwd="xxx",
            db="my_db3",
            buffered=True 
    ) db_cursor = db.cursor()

    也可以在连接数据库时,不指定数据库,在后面再执行“use database  db_name”

    buffered=Ture 是为了查询做准备,如果没有声明buffed,并且上个查询没有取出所有的结果行,连续查询会出错。

    # 创建数据库
        create_db = "create database my_db3"
        db_cursor.execute(create_db)
        use_db = "use database my_db3"

    2.表的创建和变更

     # 创建表
        create_table_stu = "create table stud(SID int unsigned auto_increment primary key," 
                           "name varchar(10), sex varchar(10))"
        db_cursor.execute(create_table_stu)
        # alter表
        # 增加列
        add_column = "alter table stud add age int after sex"
        db_cursor.execute(add_column)
        # 更改列
        change_column = "alter table stud change age agee int"
        db_cursor.execute(change_column)
        # 删除列
        drop_column = "alter table stud drop agee"
        db_cursor.execute(drop_column)
        # 重命名表
        rename_table = "alter table stud rename students"
        db_cursor.execute(rename_table)

    3.数据的增删查改

    当表中数据有更新时,需要在更新数据后执行db.commit(),db_cursor.lastrowid返回修改行的最后一行行号,rowcount返回修改的总行数。

    # 插入数据
        insert_value = "insert into students(SID,name,sex) values(null,'王五','男')"
        db_cursor.execute(insert_value)
        db.commit()
        print(db_cursor.rowcount)
        insert_values = "insert into students(SID,name,sex) values(%s,%s,%s)"
        values = [(None, 'test1', ''), (None, 'test2', ''), (None, 'test3', '')]
        db_cursor.executemany(insert_values, values)
        db.commit()
        print(db_cursor.lastrowid)
        # 更新数据
        update_value = 'update students set sex="男" where name="test2"'
        db_cursor.execute(update_value)
        db.commit()
        # 删除数据
        delete_row = "delete from students where name = 'test2'"
        db_cursor.execute(delete_row)
        db.commit()

    查询数据

    # 查询数据
        select_sql1 = "select * from students"
        my_cursor.execute(select_sql1)
        select_result1 = my_cursor.fetchone()  # 返回缓冲区的一行
        print(select_result1)
    
        # 如果没有声明buffed,并且上个查询没有取出所有的结果行,连续查询会出错。
        select_sql2 = "select * from students limit 3 offset 1"
        my_cursor.execute(select_sql2)
        select_result2 = my_cursor.fetchall()  # 获取所有查询结果
        print(select_result2)

    使用后,记得关闭db_cursor和db,关于数据库的语句和复杂的查询、数据类型,后面在温习时会再另写一篇文章。

  • 相关阅读:
    iOS 获取当前设备类
    iOS 字体详解
    iOS屏幕旋转总结
    CocoaPods安装和使用教程
    【iOS】build diff: /../Podfile.lock: No such file or directory
    Eclipse使用Maven构建web项目
    UIScrollView增加刷新
    Mac下打开eclipse 始终提示 你需要安装Java SE 6 Runtime
    嵌入支付宝SDK,出现“LaunchServices: ERROR: There is no registered handler for URL scheme alipay”错误
    iOS开发 传感器(加速计、摇一摇、计步器)
  • 原文地址:https://www.cnblogs.com/Cc905/p/13454987.html
Copyright © 2011-2022 走看看