PythonMySQL-データの挿入
MySQLの既存のテーブルに新しい行を追加するには、 INSERT INTOステートメント。この場合、テーブルの名前、列名、および値を(列名と同じ順序で)指定する必要があります。
構文
以下は、MySQLのINSERTINTOステートメントの構文です。
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テーブルにデータを挿入する
ザ・ execute()メソッド(カーソルオブジェクトで呼び出される)は、クエリをパラメータとして受け入れ、指定されたクエリを実行します。データを挿入するには、MySQLINSERTステートメントをパラメーターとしてデータに渡す必要があります。
cursor.execute("""INSERT INTO EMPLOYEE(FIRST_NAME, LAST_NAME, AGE, SEX, INCOME)
VALUES ('Mac', 'Mohan', 20, 'M', 2000)""")
Pythonを使用してMySQLのテーブルにデータを挿入するには−
インポート mysql.connector パッケージ。
を使用して接続オブジェクトを作成します mysql.connector.connect() メソッド、ユーザー名、パスワード、ホスト(オプションのデフォルト:localhost)、およびデータベース(オプション)をパラメーターとして渡します。
を呼び出してカーソルオブジェクトを作成します cursor() 上で作成した接続オブジェクトのメソッド。
次に、を実行します INSERT ステートメントをパラメーターとしてに渡すことにより、 execute() 方法。
例
次の例では、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