1. Tạo cơ sở dữ liệu MySQL trong Python

Cơ sở dữ liệu có tên tiếng anh là Database – là một tập hợp các dữ liệu có tổ chức, được lưu trữ và truy cập điện tử từ hệ thống các máy tính. Khi làm việc với hệ quản trị cơ sở dữ liệu MySQL, chúng ta cần có một Database để lưu trữ các dữ liệu theo một cấu trúc.

Trong Python, khi thao tác với hệ quản trị cơ sở dữ liệu MySQL. Chúng ta cũng có thể thực hiện tạo mới một Database để sử dụng cho mục đích lưu trữ, truy cập và xử lý dữ liệu. Để tạo mới được một Database MySQL trong ngôn ngữ Python ta cần thực hiện hai bước:

  1. Kết nối Python tới MySQL bằng hàm mysql.connector.connect()
  2. Thực thi câu lệnh truy vấn tạo cơ sở dữ liệu trong MySQL: “CREATE DATABASE database_name” (trong đó database_name là tên cơ sở dữ liệu cần tạo)

Ví dụ dưới đây, thực hiện tạo mới cơ sở dữ liệu (database) có tên là “laptrinhtudau” trong MySQL như sau:

import mysql.connector

try:
    # Ket noi toi MySQL
    mydb = mysql.connector.connect(
        host="localhost",
        user="root",
        password=""
    )
    # Tao doi tuong con tro trong MySQL
    mycursor = mydb.cursor()
    # Thuc thi cau truy van tao co so du lieu trong MySQL
    mycursor.execute("CREATE DATABASE laptrinhtudau")
    print("Tao co so du lieu thanh cong!")
except:# Truong hop co loi khi tao database
    print("Tao co so du lieu khong thanh cong!")

Kết quả:

Tao co so du lieu thanh cong!

Sau khi khởi tạo cơ sở dữ liệu thành công, bạn có thể sử dụng nó bằng cách thêm thuộc tính database = “laptrinhtudau” vào trong câu lệnh kết nối mysql.connector.connect() như sau:

import mysql.connector

try:
    # Ket noi MySQL voi Python bang ham mysql.connector.connect()
    mydb = mysql.connector.connect(
        host="localhost", 
        user="root",
        password="",
        database="laptrinhtudau"
    )
    print("Ket noi thanh cong!")
except: # Truong hop co loi khi ket noi
    print("Kiem tra lai thong tin ket noi!")

Kết quả:

Ket noi thanh cong!

Lưu ý: Khi thực thi đoạn code trên, một cơ sở dữ liệu mới có tên là “laptrinhtudau” trong MySQL đã được tạo ra. Nếu như thực thi lại đoạn code trên thêm lần thứ 2, chương trình sẽ gây ra lỗi. Bởi vì trong MySQL không cho phép có các cơ sở dữ liệu có trùng tên nhau!

2. Lấy danh sách các cơ sở dữ liệu MySQL trong Python

Bạn có thể kiểm tra xem cơ sở dữ liệu có tồn tại hay không bằng cách liệt kê tất cả cơ sở dữ liệu hiện có trong MySQL của bạn bằng cách sử dụng câu lệnh câu lệnh truy vấn “SHOW DATABASES”. Nếu như việc kiểm tra các cơ sở dữ liệu trong MySQL cho ta thấy sự tồn tại cơ sở dữ liệu mà bạn đang cần tạo thì khi đó sẽ có ba hướng để giải quyết:

  • Một là, bạn tạo ra một cơ sở dữ liệu có tên khác.
  • Hai là, bạn sẽ không tạo cơ sở dữ liệu nào cả và sử dụng lại cơ sở dữ liệu đã tồn tại.
  • Ba là, bạn sẽ xóa bỏ cơ sở dữ liệu đã tồn tại và tạo một cơ sở dữ liệu mới trùng với cơ sở dữ liệu vừa xóa.
from traceback import print_tb
import mysql.connector


# Ket noi toi MySQL
mydb = mysql.connector.connect(
    host="localhost",
    user="root",
    password=""
)

# Tao doi tuong con tro trong MySQL
mycursor = mydb.cursor()

# Thuc thi cau truy van lay ra tat ca co so du lieu ton tai trong MySQL
mycursor.execute("SHOW DATABASES")

# Duyet qua ten cac co so du lieu ton tai trong MySQL va hien thi
print("Cac co so du lieu da ton tai trong MySQL")
for x in mycursor:
  print(x)

Kết quả:

Cac co so du lieu da ton tai trong MySQL
(‘information_schema’,)
(‘laptrinhtudau’,)
(‘mysql’,)
(‘performance_schema’,)
(‘phpmyadmin’,)
(‘test’,)

3. Xóa cơ sở dữ liệu MySQL trong Python

Ở phần trên, chúng ta đã thực hiện được thao tác tạo cơ sở dữ liệu MySQL thông qua câu lệnh truy vấn “CREATE DATABASE database_name” (trong đó database_name là tên cơ sở dữ liệu cần tạo). Thế nhưng chúng ta cần xóa một cơ sở dữ liệu thì sẽ phải như thế nào?

Thực chất, việc xóa một cơ sở dữ liệu MySQL trong ngôn ngữ Python cũng được thực hiện gần giống như việc tạo. Tuy nhiên câu lệnh truy vấn lúc này sẽ là “DROP DATABASE database_name” (trong đó database_name là tên cơ sở dữ liệu cần xóa).

Ví dụ dưới đây, thực hiện xóa đi cơ sở dữ liệu (database) có tên là “test” trong MySQL như sau:

import mysql.connector

try:
    # Ket noi toi MySQL
    mydb = mysql.connector.connect(
        host="localhost",
        user="root",
        password=""
    )
    # Tao doi tuong con tro trong MySQL
    mycursor = mydb.cursor()
    # Thuc thi cau truy van xoa co so du lieu "test" trong MySQL
    mycursor.execute("DROP DATABASE test")
    print("Xoa co so du lieu thanh cong!")
except:# Truong hop co loi khi xoa database
    print("Xoa co so du lieu khong thanh cong!")

Kết quả:

Xoa co so du lieu thanh cong!

Chú ý: Trước khi thực hiện việc xóa một database, bạn nên kiểm tra chắc chắn rằng tên cơ sở dữ liệu cần xóa là chính xác. Ngoài ra, trước khi thực hiện xóa đi một cơ sở dữ liệu hãy đảm bảo rằng các dữ liệu trong đó đã được sao lưu, lưu trữ để sử dụng cho một số trường hợp cần ta cần khôi phục và sử dụng lại dữ liệu khi cần thiết!