PythonMySQLをテーブルに挿入
テーブルに挿入
MySQLでテーブルを埋めるには、「INSERTINTO」ステートメントを使用します。
例
「customers」テーブルにレコードを挿入します。
import mysql.connector
mydb = mysql.connector.connect(
host="localhost",
user="yourusername",
password="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()
メソッドを使用します。
メソッドの2番目のパラメーターは、executemany()
挿入するデータを含むタプルのリストです。
例
「顧客」テーブルにデータを入力します。
import mysql.connector
mydb = mysql.connector.connect(
host="localhost",
user="yourusername",
password="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が返されます。
例
1行を挿入し、IDを返します。
import mysql.connector
mydb = mysql.connector.connect(
host="localhost",
user="yourusername",
password="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)