CÔNG CỤ
MODULES
THAM KHẢO
CÁC CHỦ ĐỀ
BÀI MỚI NHẤT
MỚI CẬP NHẬT

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ự.

test php

Bài giải

-------------------- ######## --------------------

Câu hỏi thường gặp liên quan:

Cùng chuyên mục:

Tìm hiểu Event loop trong Python

Tìm hiểu Event loop trong Python

Cách sử dụng ProcessPoolExecutor trong Python

Cách sử dụng ProcessPoolExecutor trong Python

Sử dụng đa xử lý trong Python

Sử dụng đa xử lý trong Python

Cách sử dụng Thread-safe Queue trong Python

Cách sử dụng Thread-safe Queue trong Python

Sử dụng Semaphore trong Python

Sử dụng Semaphore trong Python

Cách dừng Luồng trong Python

Cách dừng Luồng trong Python

Cách sử dụng Semaphore trong Python

Cách sử dụng Semaphore trong Python

Đối tượng Threading Event trong Python

Đối tượng Threading Event trong Python

Tìm hiểu về điều kiện race của threading Lock trong Python

Tìm hiểu về điều kiện race của threading Lock trong Python

Sử dụng lớp ThreadPoolExecutor trong Python

Sử dụng lớp ThreadPoolExecutor trong Python

Các luồng Daemon trong Python

Các luồng Daemon trong Python

Tìm hiểu về Multithreading trong Python

Tìm hiểu về Multithreading trong Python

Cách trả về giá trị từ một Thread trong Python

Cách trả về giá trị từ một Thread trong Python

Cách mở rộng Class Thread trong Python

Cách mở rộng Class Thread trong Python

Cách sử dụng module threading trong Python

Cách sử dụng module threading trong Python

Sự khác biệt giữa các Processes and Threads

Sự khác biệt giữa các Processes and Threads

Tài liệu tham khảo nhanh về Regex trong Python

Tài liệu tham khảo nhanh về Regex trong Python

Hàm Flags của Regex trong Python

Hàm Flags của Regex trong Python

Hàm split() của Regex trong Python

Hàm split() của Regex trong Python

Hàm finditer() của Regex trong Python

Hàm finditer() của Regex trong Python

Top