Python Data Access 简明教程
Python MySQL - Insert Data
可以使用 INSERT INTO 语句向现有的 MySQL 表中添加新行。在这里,你需要指定表名、列名和值(与列名顺序相同)。
Syntax
以下是 MySQL 的 INSERT INTO 语句的语法。
INSERT INTO TABLE_NAME (column1, column2,column3,...columnN)
VALUES (value1, value2, value3,...valueN);
Example
以下查询将记录插入名为 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);
Inserting data in MySQL table using python
方法 execute() (在光标对象上调用)接受查询作为参数并执行给定的查询。要插入数据,需要将 MySQL INSERT 语句作为参数传递给它。
cursor.execute("""INSERT INTO EMPLOYEE(FIRST_NAME, LAST_NAME, AGE, SEX, INCOME)
VALUES ('Mac', 'Mohan', 20, 'M', 2000)""")
使用 Python 向 MySQL 中的表插入数据:
-
import mysql.connector package.
-
使用 mysql.connector.connect() 方法创建一个连接对象,通过将用户名、密码、主机(可选,默认值:localhost)和数据库(可选)作为参数传递给该对象。
-
通过调用上述创建的连接对象中的 cursor() 方法来创建光标对象
-
然后,通过将其作为参数传递给 execute() 方法来执行 INSERT 语句。
Example
以下示例执行 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()
Inserting values dynamically
您还可以使用 MySQL INSERT 查询中的值代替 “%s”,并将值作为列表传递给它们,如下所示 -
cursor.execute("""INSERT INTO EMPLOYEE VALUES ('Mac', 'Mohan', 20, 'M', 2000)""",
('Ramya', 'Ramapriya', 25, 'F', 5000))
Example
以下示例动态地在 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()