Python MySQL 插入表



  • 建立表格

    要在MySQL中填充表格,请使用“INSERT INTO”语句。
    在“customers”表中插入一条记录:
    import mysql.connector
    
    mydb = mysql.connector.connect(
      host="localhost",
      user="yourusername",
      passwd="yourpassword",
      database="mydatabase"
    )
    
    mycursor = mydb.cursor()
    
    sql = "INSERT INTO customers (name, address) VALUES (%s, %s)"
    val = ("John", "Highway 21")
    mycursor.execute(sql, val)
    
    mydb.commit()
    
    print(mycursor.rowcount, "record inserted.")
    
    
    重要!:注意语句:mydb.commit()。不能缺少,否则不会对表进行更改。
  • 插入多行

    要将多个行插入到表中,请使用 executemany() 方法。executemany() 方法的第二个参数是元组列表,其中包含要插入的数据:
    用数据填充“customers”表:
    import mysql.connector
    
    mydb = mysql.connector.connect(
      host="localhost",
      user="yourusername",
      passwd="yourpassword",
      database="mydatabase"
    )
    
    mycursor = mydb.cursor()
    
    sql = "INSERT INTO customers (name, address) VALUES (%s, %s)"
    val = [
      ('Peter', 'Lowstreet 4'),
      ('Amy', 'Apple st 652'),
      ('Hannah', 'Mountain 21'),
      ('Michael', 'Valley 345'),
      ('Sandy', 'Ocean blvd 2'),
      ('Betty', 'Green Grass 1'),
      ('Richard', 'Sky st 331'),
      ('Susan', 'One way 98'),
      ('Vicky', 'Yellow Garden 2'),
      ('Ben', 'Park Lane 38'),
      ('William', 'Central st 954'),
      ('Chuck', 'Main Road 989'),
      ('Viola', 'Sideway 1633')
    ]
    
    mycursor.executemany(sql, val)
    
    mydb.commit()
    
    print(mycursor.rowcount, "was inserted.")
    
    
  • 获取插入的ID

    您可以通过询问游标对象来获取刚刚插入的行的ID。
    注意:如果您插入多于一行,则返回最后插入的行的ID。
    import mysql.connector
    
    mydb = mysql.connector.connect(
      host="localhost",
      user="yourusername",
      passwd="yourpassword",
      database="mydatabase"
    )
    
    mycursor = mydb.cursor()
    
    sql = "INSERT INTO customers (name, address) VALUES (%s, %s)"
    val = ("Michelle", "Blue Village")
    mycursor.execute(sql, val)
    
    mydb.commit()
    
    print("1 record inserted, ID:", mycursor.lastrowid)