Cập nhật kinh nghiệm của bác sĩ trong nhiều năm bằng Python
Trong bài viết này, mình sẽ thực hiện chức năng cập nhật kinh nghiệm của một bác sĩ nhất định trong nhiều năm. Giả sử rằng giá trị của cột "kinh nghiệm" cho mỗi bác sĩ là null và muốn cập nhật giá trị này dựa trên ngày tham gia của bác sĩ. Mình sẽ triển khai chức năng này bằng cách sử dụng ba hệ quản trị cơ sở dữ liệu phổ biến: MySQL Python, PostgreSQL Python và SQLite trong Python.
MySQL Python
Bước 1: Kết nối cơ sở dữ liệu MySQL
Trước tiên, mình cần kết nối đến cơ sở dữ liệu MySQL. Bạn cần cung cấp thông tin đăng nhập và tên cơ sở dữ liệu của bạn.
import mysql.connector # Thay đổi thông tin kết nối tới cơ sở dữ liệu của bạn db_connection = mysql.connector.connect( host="localhost", user="your_username", password="your_password", database="your_database" ) # Tạo đối tượng cursor để thực hiện truy vấn cursor = db_connection.cursor()
Bước 2: Xác định truy vấn SQL để cập nhật kinh nghiệm
Mình cần xác định truy vấn SQL để cập nhật kinh nghiệm của một bác sĩ nhất định trong nhiều năm dựa trên ngày gia nhập của bác sĩ.
def update_doctor_experience(doctor_id): try: # Xác định ngày gia nhập của bác sĩ join_date_query = "SELECT join_date FROM doctors WHERE doctor_id = %s" cursor.execute(join_date_query, (doctor_id,)) join_date = cursor.fetchone()[0] # Tính toán số năm kinh nghiệm current_year = datetime.date.today().year join_year = join_date.year experience_years = current_year - join_year # Truy vấn SQL để cập nhật kinh nghiệm update_query = "UPDATE doctors SET experience = %s WHERE doctor_id = %s" cursor.execute(update_query, (experience_years, doctor_id)) db_connection.commit() print(f"Đã cập nhật kinh nghiệm của bác sĩ có mã {doctor_id} thành {experience_years} năm.") except mysql.connector.Error as err: print(f"Lỗi MySQL: {err}") finally: # Đóng kết nối đến cơ sở dữ liệu cursor.close() db_connection.close() # Gọi hàm để cập nhật kinh nghiệm của bác sĩ có mã là 101 update_doctor_experience(101)
Kết quả
Khi bạn gọi hàm update_doctor_experience(101),
nó sẽ kết nối đến cơ sở dữ liệu MySQL của bạn, tính toán số năm kinh nghiệm dựa trên ngày gia nhập và cập nhật giá trị kinh nghiệm cho bác sĩ có mã là 101. Kết quả có thể như sau:
Đã cập nhật kinh nghiệm của bác sĩ có mã 101 thành 15 năm.
Lưu ý rằng bạn cần phải thay đổi thông tin kết nối cơ sở dữ liệu (host, user, password, database) để phù hợp với cơ sở dữ liệu MySQL của bạn.
PostgreSQL Python
Bước 1: Kết nối cơ sở dữ liệu PostgreSQL
Trước tiên, mình cần kết nối đến cơ sở dữ liệu PostgreSQL. Để làm điều này, ta sử dụng thư viện psycopg2.
import psycopg2 # Thay đổi thông tin kết nối tới cơ sở dữ liệu của bạn conn = psycopg2.connect( host="localhost", user="your_username", password="your_password", database="your_database" ) # Tạo đối tượng cursor để thực hiện truy vấn cursor = conn.cursor()
Bước 2: Xác định truy vấn SQL để cập nhật kinh nghiệm
Mình cũng xác định truy vấn SQL tương tự như trong giải pháp MySQL để cập nhật kinh nghiệm của một bác sĩ nhất định trong nhiều năm.
def update_doctor_experience(doctor_id): try: # Xác định ngày gia nhập của bác sĩ join_date_query = "SELECT join_date FROM doctors WHERE doctor_id = %s" cursor.execute(join_date_query, (doctor_id,)) join_date = cursor.fetchone()[0] # Tính toán số năm kinh nghiệm current_year = datetime.date.today().year join_year = join_date.year experience_years = current_year - join_year # Truy vấn SQL để cập nhật kinh nghiệm update_query = "UPDATE doctors SET experience = %s WHERE doctor_id = %s" cursor.execute(update_query, (experience_years, doctor_id)) conn.commit() print(f"Đã cập nhật kinh nghiệm của bác sĩ có mã {doctor_id} thành {experience_years} năm.") except psycopg2.Error as err: print(f"Lỗi PostgreSQL: {err}") finally: # Đóng kết nối đến cơ sở dữ liệu cursor.close() conn.close() # Gọi hàm để cập nhật kinh nghiệm của bác sĩ có mã là 101 update_doctor_experience(101)
Kết quả
Kết quả khi sử dụng giải pháp PostgreSQL Python sẽ giống với giải pháp MySQL Python. Kết quả có thể như sau:
Đã cập nhật kinh nghiệm của bác sĩ có mã 101 thành 15 năm.
Lưu ý rằng bạn cần phải thay đổi thông tin kết nối cơ sở dữ liệu PostgreSQL (host, user, password, database) để phù hợp với cơ sở dữ liệu của bạn.
SQLite Python
Bước 1: Kết nối cơ sở dữ liệu SQLite
Trong trường hợp sử dụng SQLite, mình không cần kết nối đến một máy chủ cơ sở dữ liệu. Mình chỉ cần mở hoặc tạo file SQLite.
import sqlite3 # Tạo hoặc kết nối tới file SQLite của bạn db_connection = sqlite3.connect("your_database.db") # Tạo đối tượng cursor để thực hiện truy vấn cursor = db_connection.cursor()
Bước 2: Xác định truy vấn SQL để cập nhật kinh nghiệm
Mình cũng xác định truy vấn SQL tương tự như trong hai giải pháp trước để cập nhật kinh nghiệm của một bác sĩ nhất định trong nhiều năm.
def update_doctor_experience(doctor_id): try: # Xác định ngày gia nhập của bác sĩ join_date_query = "SELECT join_date FROM doctors WHERE doctor_id = ?" cursor.execute(join_date_query, (doctor_id,)) join_date = cursor.fetchone()[0] # Tính toán số năm kinh nghiệm current_year = datetime.date.today().year join_year = join_date.year experience_years = current_year - join_year # Truy vấn SQL để cập nhật kinh nghiệm update_query = "UPDATE doctors SET experience = ? WHERE doctor_id = ?" cursor.execute(update_query, (experience_years, doctor_id)) db_connection.commit() print(f"Đã cập nhật kinh nghiệm của bác sĩ có mã {doctor_id} thành {experience_years} năm.") except sqlite3.Error as err: print(f"Lỗi SQLite: {err}") finally: # Đóng kết nối đến cơ sở dữ liệu cursor.close() db_connection.close() # Gọi hàm để cập nhật kinh nghiệm của bác sĩ có mã là 101 update_doctor_experience(101)
Kết quả
Kết quả khi sử dụng giải pháp SQLite Python sẽ giống với hai giải pháp trước. Kết quả có thể như sau:
Đã cập nhật kinh nghiệm của bác sĩ có mã 101 thành 15 năm.
Lưu ý rằng bạn cần phải thay đổi tên file SQLite (your_database.db
) để phù hợp với file cơ sở dữ liệu SQLite của bạn.
Kết bài
Trong bài viết này, mình đã tìm hiểu cách cập nhật kinh nghiệm của một bác sĩ trong nhiều năm dựa trên ngày gia nhập của họ. Mình đã triển khai chức năng này bằng cách sử dụng ba giải pháp khác nhau: MySQL Python, PostgreSQL Python và SQLite Python. Quy trình chung bao gồm kết nối đến cơ sở dữ liệu, tính toán số năm kinh nghiệm, thực hiện truy vấn cập nhật và lưu thay đổi. Chọn giải pháp phù hợp với cơ sở dữ liệu của bạn và triển khai chức năng tương tự.
Bài giải
-------------------- ######## --------------------
Câu hỏi thường gặp liên quan:
- Kết nối và in phiên bản cơ sở dữ liệu trong Python
- Lấy thông tin bệnh viện, bác sĩ bằng Id bệnh viện và Id bác sĩ bằng Python
- Lấy danh sách bác sĩ theo chuyên khoa và mức lương cho trước trong Python
- Lấy danh sách bác sĩ của một bệnh viện nhất định trong Python
- Cập nhật kinh nghiệm của bác sĩ trong nhiều năm bằng Python