Python MySQL 插入数据


你可以使用 插入 陈述。在此,你需要指定表名、列名和值(与列名的顺序相同)。

语法

以下是 MySQL 的 INSERT INTO 语句的语法。

INSERT INTO TABLE_NAME (column1, column2,column3,...columnN)
VALUES (value1, value2, value3,...valueN);

例子

以下查询将一条记录插入到名为 EMPLOYEE 的表中。

INSERT INTO EMPLOYEE(FIRST_NAME, LAST_NAME, AGE, SEX, INCOME) VALUES ('
    Mac', 'Mohan', 20, 'M', 2000
);

可以使用 SELECT 语句验证插入操作后的表的记录,如下所示:

mysql> select * from Employee;
+------------+-----------+------+------+--------+
| FIRST_NAME | LAST_NAME | AGE  | SEX  | INCOME |
+------------+-----------+------+------+--------+
| Mac        | Mohan     | 20   | M    | 2000   | 
+------------+-----------+------+------+--------+
1 row in set (0.00 sec)

不必总是指定列的名称,如果你以与表的列相同的顺序传递记录的值,则可以执行不带列名称的 SELECT 语句,如下所示:

INSERT INTO EMPLOYEE VALUES ('Mac', 'Mohan', 20, 'M', 2000);

使用python在MySQL表中插入数据


The 执行() 方法(在游标对象上调用)接受查询作为参数并执行给定的查询。要插入数据,你需要将 MySQL INSERT 语句作为参数传递给它。

cursor.execute("""INSERT INTO EMPLOYEE(FIRST_NAME, LAST_NAME, AGE, SEX, INCOME) 
    VALUES ('Mac', 'Mohan', 20, 'M', 2000)""")

在 MySQL 中使用 python 向表中插入数据:

  • import mysql.connector package.

  • 使用 mysql.connector.connect() 方法,通过将用户名、密码、主机(可选默认值:localhost)和数据库(可选)作为参数传递给它。

  • 通过调用 cursor() 上面创建的连接对象上的方法

  • 然后,执行 INSERT 通过将其作为参数传递给 执行() method.

例子

下面的例子执行 SQL INSERT 语句向 EMPLOYEE 表中插入一条记录:

import mysql.connector

#establishing the connection
conn = mysql.connector.connect(
    user='root', password='password', host='127.0.0.1', database='mydb')

#Creating a cursor object using the cursor() method
cursor = conn.cursor()

# Preparing SQL query to INSERT a record into the database.
sql = """INSERT INTO EMPLOYEE(
    FIRST_NAME, LAST_NAME, AGE, SEX, INCOME)
    VALUES ('Mac', 'Mohan', 20, 'M', 2000)"""

try:
    # Executing the SQL command
    cursor.execute(sql)

    # Commit your changes in the database
    conn.commit()

except:
    # Rolling back in case of error
    conn.rollback()

# Closing the connection
conn.close()

动态插入值

你也可以使用“%s”代替 INSERT 查询 MySQL 并将值作为列表传递给它们,如下所示:

cursor.execute("""INSERT INTO EMPLOYEE VALUES ('Mac', 'Mohan', 20, 'M', 2000)""", 
    ('Ramya', 'Ramapriya', 25, 'F', 5000))

例子

以下示例将一条记录动态插入到 Employee 表中。

import mysql.connector

#establishing the connection
conn = mysql.connector.connect(
    user='root', password='password', host='127.0.0.1', database='mydb')

#Creating a cursor object using the cursor() method
cursor = conn.cursor()

# Preparing SQL query to INSERT a record into the database.
insert_stmt = (
    "INSERT INTO EMPLOYEE(FIRST_NAME, LAST_NAME, AGE, SEX, INCOME)"
    "VALUES (%s, %s, %s, %s, %s)"
)
data = ('Ramya', 'Ramapriya', 25, 'F', 5000)

try:
    # Executing the SQL command
    cursor.execute(insert_stmt, data)
   
    # Commit your changes in the database
    conn.commit()

except:
    # Rolling back in case of error
    conn.rollback()

print("Data inserted")

# Closing the connection
conn.close()
Data inserted