Giả sử rằng cơ sở dữ liệu MySQL có tên là thử nghiệm có mặt trên máy chủ và một bảng có tên là nhân viên cũng được tạo. Bảng có năm lĩnh vực fname, lname, tuổi, giới tính và tiền lương.
Một đối tượng tuple chứa dữ liệu của bản ghi được xác định là
t1=['Mac', 'Mohan', 20, 'M', 2000]
Để thiết lập giao diện giữa MySQL & NBSP; và Python 3, bạn cần cài đặt mô -đun PYMYSQL. Sau đó, bạn có thể thiết lập kết nối bằng cách sử dụng các câu lệnh sau
import PyMySQL # Open database connection db = PyMySQL.connect["localhost","root","","test" ] # prepare a cursor object using cursor[] method cursor = db.cursor[]
Bước tiếp theo là thiết lập truy vấn chèn bằng dữ liệu trong bộ tu
sql="insert into employee values[%s,%s,%d,%s,%d]" %t1
Bây giờ truy vấn này được thực thi bằng phương thức Execute [] của đối tượng con trỏ
cursor.execute[sql]
Nếu bạn kiểm tra nội dung của bảng nhân viên, nó sẽ hiển thị bản ghi mới được thêm vào trong đó.
Cập nhật vào ngày 18 tháng 8 năm 2020 08:03:23
- Câu hỏi và câu trả lời liên quan
- Làm thế nào để chèn một tuple python trong cơ sở dữ liệu PostgreSQL?
- Làm thế nào để chèn dữ liệu vào cơ sở dữ liệu MySQL với Java?
- Làm thế nào để chèn thập phân vào cơ sở dữ liệu MySQL?
- Làm thế nào để chèn một đối tượng Python trong MySQL?
- Ứng dụng Java để chèn giá trị null vào cơ sở dữ liệu MySQL?
- Hoạt động chèn cơ sở dữ liệu trong Python
- Làm thế nào để có được ID sau khi chèn vào cơ sở dữ liệu MySQL bằng Python?
- Chèn ngày hiện tại vào cơ sở dữ liệu trong MySQL?
- Làm thế nào để chúng tôi chèn/lưu trữ một tệp vào cơ sở dữ liệu MySQL bằng JDBC?
- Làm thế nào để chèn một bản ghi vào một bảng trong cơ sở dữ liệu bằng API JDBC?
- Làm thế nào để chèn giá trị dấu thời gian vào cơ sở dữ liệu bằng chương trình JDBC?
- Làm thế nào để hình thành một chèn có điều kiện MySQL?
- Làm cách nào để lấy ID sau khi chèn vào cơ sở dữ liệu MySQL trong Python?
- Làm thế nào để thực hiện một lần chèn hàng loạt trong mysql?
- Làm thế nào để chèn một hình ảnh vào cơ sở dữ liệu MySQL bằng chương trình Java?
Như một nhận xét nói, phần
import PyMySQL # Open database connection db = PyMySQL.connect["localhost","root","","test" ] # prepare a cursor object using cursor[] method cursor = db.cursor[]6 là một cuộc gọi hàm [hoặc lớp] - bất cứ điều gì được trả lại từ cuộc gọi đó cũng được trả lại từ câu lệnh
import PyMySQL # Open database connection db = PyMySQL.connect["localhost","root","","test" ] # prepare a cursor object using cursor[] method cursor = db.cursor[]7 này.
Hãy giả sử đó là một tuple. Điều gì sẽ xảy ra nếu "Người dùng không nhập bất cứ thứ gì vào
import PyMySQL # Open database connection db = PyMySQL.connect["localhost","root","","test" ] # prepare a cursor object using cursor[] method cursor = db.cursor[]8" - vậy thì, tùy thuộc vào nhiều mã mà bạn không hiển thị cho chúng tôi, đó có thể là lỗi thời gian chạy [tên
import PyMySQL # Open database connection db = PyMySQL.connect["localhost","root","","test" ] # prepare a cursor object using cursor[] method cursor = db.cursor[]8 không được xác định], một chuỗi trống hoặc ban đầu khác Giá trị mặc định không bao giờ thay đổi, hoặc
sql="insert into employee values[%s,%s,%d,%s,%d]" %t10; Trong trường hợp thứ hai mà cuối cùng sẽ trở thành
sql="insert into employee values[%s,%s,%d,%s,%d]" %t11 trong DB [nếu có thể chấp nhận được theo lược đồ DB - nếu không, DB sẽ từ chối nỗ lực chèn].
Một khi bạn cuối cùng cũng có một tuple chính xác và thích hợp
sql="insert into employee values[%s,%s,%d,%s,%d]" %t12 mà bạn muốn chèn,
`mycursor.execute['INSERT INTO sometable VALUES[?, ?, ?, ?, ?, ?]', T]
sẽ gần với cú pháp bạn muốn - nếu
sql="insert into employee values[%s,%s,%d,%s,%d]" %t12 có sáu mục [và tất nhiên là
sql="insert into employee values[%s,%s,%d,%s,%d]" %t14 có sáu cột]. Mỗi
sql="insert into employee values[%s,%s,%d,%s,%d]" %t15 là một trình giữ chỗ và được thay thế bằng vật phẩm tương ứng.
sql="insert into employee values[%s,%s,%d,%s,%d]" %t16 sẽ cần phải là một ví dụ của con trỏ, có lẽ có được bằng một số cuộc gọi trước đó đến
sql="insert into employee values[%s,%s,%d,%s,%d]" %t17 trong đó
sql="insert into employee values[%s,%s,%d,%s,%d]" %t18 là một ví dụ của kết nối, được xây dựng bởi cuộc gọi thích hợp đến
sql="insert into employee values[%s,%s,%d,%s,%d]" %t19 từ mô -đun API DB mà bạn đang sử dụng với các đối số phù hợp.
Nếu bạn cho chúng tôi thấy các lược đồ mã và DB nhiều hơn khoảng 100 lần và cho chúng tôi biết chính xác những gì bạn đang cố gắng thực hiện, chúng tôi, nói chung, không nghi ngờ gì nữa Bạn cung cấp đó là nhiều như chúng tôi, nói chung, có thể cung cấp ;-].
Bài viết này trình bày cách thực hiện truy vấn chèn từ Python để thêm một hàng mới vào bảng MySQL.execute INSERT Query from Python to add a new row into the MySQL table.
Trong bài học này, bạn sẽ tìm hiểu các hoạt động chèn Python MySQL sau đây bằng cách sử dụng mô -đun đầu nối ‘MySQL.
- Chèn một và nhiều hàng vào bảng cơ sở dữ liệu.
- Sử dụng truy vấn được tham số hóa để chèn giá trị biến Python [số nguyên, chuỗi, float, gấp đôi và datetime] vào bảng cơ sở dữ liệu.insert a Python variable value [Integer, string, float, double, and DateTime] into a database table.
Điều kiện tiên quyết
Trước khi di chuyển xa hơn, vui lòng đảm bảo bạn có những điều sau đây: -
- Tên người dùng và mật khẩu để kết nối MySQL
- Tên bảng MySQL trong đó bạn muốn chèn dữ liệu.
Tôi đã tạo một bảng ‘máy tính xách tay trong máy chủ MySQL để chèn các bản ghi vào đó. Xem cấu trúc cột của nó trong hình ảnh.
Nếu một bảng không có trong máy chủ MySQL của bạn, bạn có thể tham khảo bài viết của chúng tôi để tạo bảng MySQL từ Python.
Bạn cũng có thể tải xuống một tệp truy vấn SQL, trong đó chứa các truy vấn SQL để tạo bảng và dữ liệu để bạn có thể sử dụng bảng này cho các hoạt động chèn của mình.
Chèn một hàng duy nhất vào bảng MySQL từ Python
Cách chèn vào bảng MySQL từ Python
- Kết nối với MySQL từ Python
Tham khảo kết nối cơ sở dữ liệu Python MySQL để kết nối với cơ sở dữ liệu MySQL từ Python bằng mô -đun kết nối MySQL
- Xác định truy vấn chèn SQL
Tiếp theo, chuẩn bị một truy vấn chèn SQL để chèn một hàng vào bảng. Trong truy vấn chèn, chúng tôi đề cập đến tên cột và giá trị của chúng để chèn vào bảng. Ví dụ,
cursor.execute[sql]
0
For example,cursor.execute[sql]
0 - Nhận đối tượng con trỏ từ kết nối
Tiếp theo, sử dụng phương thức
cursor.execute[sql]
1 để tạo đối tượng con trỏ. Phương pháp này tạo ra một đối tượngcursor.execute[sql]
2 mới. - Thực thi truy vấn chèn bằng phương thức Execute []
Thực hiện truy vấn chèn bằng phương pháp
cursor.execute[sql]
3. Phương pháp này thực thi thao tác được lưu trữ trong truy vấn chèn. - Cam kết thay đổi của bạn
Sau khi thực hiện thành công một truy vấn, làm cho các thay đổi vẫn tồn tại thành cơ sở dữ liệu bằng cách sử dụng
cursor.execute[sql]
4 của một lớp kết nối. - Nhận số lượng hàng bị ảnh hưởng
Sau khi hoạt động chèn thành công, hãy sử dụng phương pháp
cursor.execute[sql]
5 để có số lượng hàng bị ảnh hưởng. Số lượng phụ thuộc vào số lượng hàng bạn đang chèn. - Xác minh kết quả bằng cách sử dụng truy vấn SQL Chọn
Thực hiện truy vấn chọn MySQL từ Python để xem các thay đổi mới.
- Đóng đối tượng kết nối cơ sở dữ liệu và đối tượng con trỏ
Sử dụng phương thức
cursor.execute[sql]
6 vàcursor.execute[sql]
7 để đóng các kết nối mở sau khi công việc của bạn hoàn thành.
Hãy xem chương trình ngay bây giờ
import mysql.connector
try:
connection = mysql.connector.connect[host='localhost',
database='electronics',
user='pynative',
password='pynative@#29']
mySql_insert_query = """INSERT INTO Laptop [Id, Name, Price, Purchase_date]
VALUES
[15, 'Lenovo ThinkPad P71', 6459, '2019-08-14'] """
cursor = connection.cursor[]
cursor.execute[mySql_insert_query]
connection.commit[]
print[cursor.rowcount, "Record inserted successfully into Laptop table"]
cursor.close[]
except mysql.connector.Error as error:
print["Failed to insert record into Laptop table {}".format[error]]
finally:
if connection.is_connected[]:
connection.close[]
print["MySQL connection is closed"]
Đầu ra
Record inserted successfully into Laptop table MySQL connection is closed
Sử dụng các biến python trong truy vấn chèn mysql
Đôi khi bạn cần chèn một giá trị biến python vào cột bảng. Ví dụ: trong biểu mẫu đăng ký người dùng, người dùng nhập chi tiết của anh ấy/cô ấy. Bạn có thể lấy các giá trị đó trong các biến Python và chèn chúng vào một bảng.insert a Python variable value into a table’s column. For example, in the user signup form user enter his/her details. You can take those values in Python variables and insert them into a table.
- Chúng ta có thể chèn các biến python vào bảng bằng cách sử dụng câu lệnh đã chuẩn bị và truy vấn được tham số hóa.
- Sử dụng truy vấn được tham số hóa, chúng ta có thể chuyển các biến Python làm tham số truy vấn trong đó các khoản giữ chỗ [%s] được sử dụng cho các tham số.
Thí dụ
import mysql.connector
def insert_varibles_into_table[id, name, price, purchase_date]:
try:
connection = mysql.connector.connect[host='localhost',
database='Electronics',
user='pynative',
password='pynative@#29']
cursor = connection.cursor[]
mySql_insert_query = """INSERT INTO Laptop [Id, Name, Price, Purchase_date]
VALUES [%s, %s, %s, %s] """
record = [id, name, price, purchase_date]
cursor.execute[mySql_insert_query, record]
connection.commit[]
print["Record inserted successfully into Laptop table"]
except mysql.connector.Error as error:
print["Failed to insert into MySQL table {}".format[error]]
finally:
if connection.is_connected[]:
cursor.close[]
connection.close[]
print["MySQL connection is closed"]
insert_varibles_into_table[2, 'Area 51M', 6999, '2019-04-14']
insert_varibles_into_table[3, 'MacBook Pro', 2499, '2019-06-20']
Output::
Record inserted successfully into Laptop table MySQL connection is closed Record inserted successfully into Laptop table MySQL connection is closed
Tham khảo các hàng tìm nạp từ bảng MySQL trong Python để kiểm tra dữ liệu bạn đã chèn.
Chèn nhiều hàng vào bảng MySQL bằng con trỏ EXECUTEMANY []
Trong ví dụ trước, chúng tôi đã sử dụng phương thức
cursor.execute[sql]8 của đối tượng
cursor.execute[sql]9 để chèn một bản ghi duy nhất.
Điều gì sẽ xảy ra nếu bạn muốn chèn nhiều hàng vào bảng trong một truy vấn chèn từ ứng dụng Python. Sử dụng chức năng con trỏ
`mycursor.execute['INSERT INTO sometable VALUES[?, ?, ?, ?, ?, ?]', T]
0 để chèn nhiều bản ghi vào bảng.Cú pháp & nbsp; của phương thức
`mycursor.execute['INSERT INTO sometable VALUES[?, ?, ?, ?, ?, ?]', T]
0.cursor.executemany[operation, seq_of_params]
Phương thức này thực thi chèn & nbsp; ________ 42 & nbsp; so với tất cả các chuỗi tham số trong chuỗi & nbsp; ________ 43 & nbsp; đối số.executes Insert
2 against all parameter sequences in the sequence `mycursor.execute['INSERT INTO sometable VALUES[?, ?, ?, ?, ?, ?]', T]
`mycursor.execute['INSERT INTO sometable VALUES[?, ?, ?, ?, ?, ?]', T]
3 argument.Bạn cần bao gồm danh sách các bộ dữ liệu trong đối số
`mycursor.execute['INSERT INTO sometable VALUES[?, ?, ?, ?, ?, ?]', T]
3 cùng với truy vấn chèn.Mỗi bộ phận bên trong danh sách chứa một hàng duy nhất mà bạn muốn chèn. Vì vậy, bạn có thể thêm càng nhiều hàng trong danh sách và chuyển danh sách cho chức năng
`mycursor.execute['INSERT INTO sometable VALUES[?, ?, ?, ?, ?, ?]', T]
5 cùng với truy vấn chèn.LƯU Ý: Mỗi tuple được đặt trong ngoặc đơn và được phân tách bằng dấu phẩy. Ví dụ: để chèn nhiều hàng vào bảng máy tính xách tay, chúng ta có thể sử dụng truy vấn SQL sau:: Each tuple is enclosed within parentheses and separated by commas. For example, to insert multiple rows in a laptop table, we can use the following SQL Query:
import PyMySQL # Open database connection db = PyMySQL.connect["localhost","root","","test" ] # prepare a cursor object using cursor[] method cursor = db.cursor[]0
Và trong
`mycursor.execute['INSERT INTO sometable VALUES[?, ?, ?, ?, ?, ?]', T]
3 chúng tôi đang vượt qua danh sách dưới đây.import PyMySQL # Open database connection db = PyMySQL.connect["localhost","root","","test" ] # prepare a cursor object using cursor[] method cursor = db.cursor[]1
Ví dụ để chèn nhiều hàng vào bảng MySQL
import PyMySQL # Open database connection db = PyMySQL.connect["localhost","root","","test" ] # prepare a cursor object using cursor[] method cursor = db.cursor[]2
Output:
import PyMySQL # Open database connection db = PyMySQL.connect["localhost","root","","test" ] # prepare a cursor object using cursor[] method cursor = db.cursor[]3
Tham khảo tìm nạp dữ liệu từ bảng MySQL để xác minh kết quả của bạn.
Note:
- Sử dụng
7, chúng tôi đang chèn nhiều hàng [từ danh sách] vào bảng.`mycursor.execute['INSERT INTO sometable VALUES[?, ?, ?, ?, ?, ?]', T]
- Sử dụng
cursor.execute[sql]
5, chúng ta có thể tìm thấy số lượng hồ sơ được chèn.
Chèn dấu thời gian và datetime vào bảng MySQL bằng Python
Ví dụ: bạn có một cột ngày trong bảng MySQL. Hãy để xem cách chuẩn bị một truy vấn chèn để thêm DateTime vào bảng từ Python
import PyMySQL # Open database connection db = PyMySQL.connect["localhost","root","","test" ] # prepare a cursor object using cursor[] method cursor = db.cursor[]4
Bạn có thể nhận được đầu ra như thế này sau khi thực hiện mã trên.
import PyMySQL # Open database connection db = PyMySQL.connect["localhost","root","","test" ] # prepare a cursor object using cursor[] method cursor = db.cursor[]5
Bước tiếp theo:
Để thực hành những gì bạn đã học trong bài viết này, vui lòng giải quyết một dự án tập thể dục cơ sở dữ liệu Python để thực hành và thành thạo các hoạt động của cơ sở dữ liệu Python.