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:

Lớp Metaclass trong Python

Lớp Metaclass trong Python

Tìm hiểu về Class Type trong Python

Tìm hiểu về Class Type trong Python

Phương thức __new__ trong Python

Phương thức __new__ trong Python

Phân biệt Data Descriptor và Non-data Descriptor trong Python

Phân biệt Data Descriptor và Non-data Descriptor trong Python

Mô tả Descriptors trong Python

Mô tả Descriptors trong Python

Tìm hiểu về các lớp mixin trong Python

Tìm hiểu về các lớp mixin trong Python

Đa kế thừa trong Python

Đa kế thừa trong Python

Nguyên tắc đảo ngược sự phụ thuộc trong Python

Nguyên tắc đảo ngược sự phụ thuộc trong Python

Interface Segregation Principle - ISP trong Python.

Interface Segregation Principle - ISP trong Python.

Nguyên tắc thay thế Liskov - LSP trong Python

Nguyên tắc thay thế Liskov - LSP trong Python

Nguyên tắc Đóng-Mở trong Python

Nguyên tắc Đóng-Mở trong Python

Single Responsibility Principle trong Python

Single Responsibility Principle trong Python

Cách sử dụng hàm Auto() của Python

Cách sử dụng hàm Auto() của Python

Tùy chỉnh và mở rộng lớp Enum trong Python

Tùy chỉnh và mở rộng lớp Enum trong Python

Sử dụng Enum aliases và @enum.unique trong Python

Sử dụng Enum aliases và @enum.unique trong Python

Cách sử dụng Protocol trong Python

Cách sử dụng Protocol trong Python

Sử dụng __slots__ trong Python

Sử dụng __slots__ trong Python

Sử dụng super() trong Python

Sử dụng super() trong Python

Thuộc tính Delete trong Python

Thuộc tính Delete trong Python

Thuộc tính chỉ đọc trong Python

Thuộc tính chỉ đọc trong Python

Top