Lịch sử ra đời và đặc điểm của ngôn ngữ lập trình Java
1. Lịch sử ra đời của Java Cuối năm 1990, James Gosling được công ty Sun...
Kết quả sẽ mở trong tab mới, giới hạn trong website này.
Truy cập nhanh
Tìm kiếm gần đây
Để học tốt bài này, các bạn cần phải biết cách tạo database và table trong MySQL trong Python. Các bạn có thể đọc lại bài Tạo database và tạo table trong MySQL với Python để biết cách tạo database và table trong MySQL. Lưu ý, chúng ta đang sử dụng MySQL được tích hợp […]
Để học tốt bài này, các bạn cần phải biết cách tạo database và table trong MySQL trong Python. Các bạn có thể đọc lại bài Tạo database và tạo table trong MySQL với Python để biết cách tạo database và table trong MySQL.
Lưu ý, chúng ta đang sử dụng MySQL được tích hợp sẵn trong XAMPP. Các bạn cần đọc lại bài Cài đặt môi trường lập trình Web PHP với XAMPP để biết cách cài đặt XAMPP và khởi chạy MySQL.
Các ví dụ insert và delete dữ liệu sẽ thực hiện trên table gochocit_posts trong database gochocit. Database và table này đã được tạo trong bài Tạo database và tạo table trong MySQL với Python. Các bạn cần đọc lại để xem cấu trúc của database và table trên.
Sử dụng Python để thực thi câu lệnh SQL "INSERT INTO" để thêm dữ liệu vào table.
import mysql.connector
# create connection to MySQL
mydb = mysql.connector.connect(
host="localhost",
user="root",
password="",
database = "gochocit"
)
mycursor = mydb.cursor()
sql = """INSERT INTO gochocit_posts (post_author, post_title, post_content, post_date)
VALUES ("Vinh Lê", "Đây là bài số 1", "Chào tất cả các bạn!", now())
"""
mycursor.execute(sql)
mydb.commit()
# disconnect from MySQL
mydb.close()
Với cách trên, chúng ta thực thi (execute) chỉ với 1 câu lệnh SQL để thêm dữ liệu. Trong câu lệnh này, hàm now() là một hàm trong SQL giúp lấy datetime lúc thực thi câu lệnh SQL để thêm vào table gochocit_posts. Table gochocit_posts có cột ID tăng tự động nên không cần insert value này vào cho table.
Lưu ý: Chúng ta phải gọi câu lệnh mydb.commit() để lưu các thay đổi trong table khi insert dữ liệu vào table.
Chúng ta có thể tách câu lệnh INSERT INTO thành 2 phần: phần chỉ định table và column cần insert, phần value cần insert.
import mysql.connector
from datetime import datetime
# create connection to MySQL
mydb = mysql.connector.connect(
host="localhost",
user="root",
password="",
database = "gochocit"
)
mycursor = mydb.cursor()
sql = """INSERT INTO gochocit_posts (post_author, post_title, post_content, post_date)
VALUES (%s, %s, %s, %s)
"""
now = datetime.now()
formatted_datetime = now.strftime('%Y-%m-%d %H:%M:%S')
val = ("Vinh Lê", "Đây là bài số 1", "Chào tất cả các bạn!", formatted_datetime)
mycursor.execute(sql, val)
mydb.commit()
# disconnect from MySQL
mydb.close()
Chuỗi sql sử dụng %s để dành chổ có các value cần insert vào table. Phần value cần insert nằm trong một tuple. Giá trị cột post_date là chuỗi (string) có định dạng yyyy-mm-dd h:m:s, được lấy từ hàm datetime.now() trong Python.
Để thêm nhiều dòng dữ liệu vào table, chúng ta sử dụng hàm executemany() trong module MySQL Connector. Tham số của hàm này cũng giống như hàm execute() chỉ khác là tham số thứ 2 của nó là danh sách các tuple chứa dữ liệu cần insert vào table.
import mysql.connector
# create connection to MySQL
mydb = mysql.connector.connect(
host="localhost",
user="root",
password="",
database = "gochocit"
)
mycursor = mydb.cursor()
sql = """INSERT INTO gochocit_posts (post_author, post_title, post_content, post_date)
VALUES (%s, %s, %s, %s)
"""
val = [
("Vinh Lê", "Đây là bài số 1", "Nội dung bài số 1", "2022-03-27 19:46:05"),
("Vinh Lê", "Đây là bài số 2", "Nội dung bài số 2", "2022-03-27 19:47:06"),
("Vinh Lê", "Đây là bài số 3", "Nội dung bài số 3", "2022-03-27 19:48:07"),
("Vinh Lê", "Đây là bài số 4", "Nội dung bài số 4", "2022-03-27 19:49:08"),
("Vinh Lê", "Đây là bài số 5", "Nội dung bài số 5", "2022-03-27 19:50:09")
]
mycursor.executemany(sql, val)
mydb.commit()
print(mycursor.rowcount, "record(s) was inserted.")
# disconnect from MySQL
mydb.close()5 record(s) was inserted.Chúng ta có thể xóa (delete) những dòng dữ liệu trong table với câu lệnh "DELETE FROM".
import mysql.connector
# create connection to MySQL
mydb = mysql.connector.connect(
host="localhost",
user="root",
password="",
database = "gochocit"
)
mycursor = mydb.cursor()
sql = "DELETE FROM gochocit_posts WHERE ID = %s"
adr = ("5", )
mycursor.execute(sql, adr)
mydb.commit()
print(mycursor.rowcount, "record(s) deleted")
# disconnect from MySQL
mydb.close()
1 record(s) deletedMệnh đề WHERE giúp chỉ định cụ thể dòng dữ liệu nào sẽ được xóa. Nếu không sử dụng câu lệnh WHERE thì tất cả dòng dữ liệu trong table sẽ bị xóa.