CÔNG CỤ
MODULES
THAM KHẢO
Cách chia List thành các phần bằng nhau trong Python Cách xóa một khóa (key) ra khỏi dictionary trong Python Hướng dẫn chuyển đổi file Google Colab sang Markdown trong Python Bài tập Python: Lập trình cơ sở dữ liệu trong Python Kết nối cơ sở dữ liệu MySQL Python Hướng dẫn kết nối Python PostgreSQL bằng Psycopg2 Hướng dẫn kết nối SQLite sử dụng sqlite3 trong Python Bài tập Python : Pandas trong Python Phạm vi số float của Python Cách lên lịch chạy script Python bằng GitHub Actions Cách tạo hằng số trong Python Các nền tảng lưu trữ tốt nhất cho ứng dụng và script Python 6 Tip viết vòng lặp For hiệu quả hơn trong Python Cách đảo ngược Chuỗi String trong Python Cách gỡ lỗi ứng dụng Python trong Docker Container bằng VS Code 10 tip One Liner bạn cần biết trong Python Cách áp dụng ngưỡng hình ảnh trong Python với NumPy Tìm hiểu về các phép toán Groupby trong Pandas Lập trình Socket trong Python Mô-đun base64 trong Python Cách giới hạn float values trong Python Tìm hiểu Mô-đun statistics Trong Python File Organizing trong Python Đổi tên File trong Python Tìm hiểu về Deque trong Python Mô-đun Calendar trong Python Tìm hiểu về Enum trong Python Sử dụng pprint trong Python Làm việc với cấu trúc Dữ liệu Stack trong Python Thư viện functools trong Python Tip sử dụng hàm round() với tham số âm trong Python Hàm print có thể nhận thêm các tham số bổ sung trong Python Tip tìm chuỗi dài nhất bằng hàm max() trong Python Cách lặp qua nhiều list với hàm zip() trong Python Tìm hiểu về MLOps trong Python Docker và Kubernetes với MLOps trong Python Kết hợp DevOps với MLOps trong Python Xử lý độ chính xác các hàm floor, ceil, round, trunc, format trong Python tối ưu quy trình MLOps Với Python Sự khác biệt giữa byte objects và string trong Python Top 4 thư viện phổ biến nhất của NLP trong Python Cách sử dụng ThreadPoolExecutor trong Python Phân tích dữ liệu Blockchain với Python Hướng dẫn triển khai Smart Contracts với Python Blockchain APIs với Python Làm việc với file ZIP trong Python Sự khác biệt giữa toán tử == và is trong Python Chuyển đổi kiểu dữ liệu trong Python Cách làm việc với file tarball/tar trong Python Sự khác biệt giữa iterator và iterable trong Python Sự khác biệt giữa set() và frozenset() trong Python Làm việc với các biến môi trường trong Python Một tác vụ phổ biến khi làm việc với danh sách trong Python Định dạng chuỗi Strings trong Python Sử dụng Poetry để quản lý dependencies trong Python Sự khác biệt giữa sort() và sorted() trong Python Từ khóa yield trong Python Lớp dữ liệu (Data Classes) trong Python với decorator @dataclass Cách truy cập và thiết lập biến môi trường trong Python Hướng dẫn toàn diện về module datetime trong Python Hướng dẫn xây dựng Command-Line Interface (CLI) bằng Quo trong Python Quản lý sinh viên Python & MySQL
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:

Hướng dẫn xây dựng Command-Line Interface (CLI) bằng Quo trong Python

Hướng dẫn xây dựng Command-Line Interface (CLI) bằng Quo trong Python

Hướng dẫn toàn diện về module datetime trong Python

Hướng dẫn toàn diện về module datetime trong Python

Cách truy cập và thiết lập biến môi trường trong Python

Cách truy cập và thiết lập biến môi trường trong Python

Lớp dữ liệu (Data Classes) trong Python với decorator @dataclass

Lớp dữ liệu (Data Classes) trong Python với decorator @dataclass

Từ khóa yield trong Python

Từ khóa yield trong Python

Sự khác biệt giữa sort() và sorted() trong Python

Sự khác biệt giữa sort() và sorted() trong Python

Sử dụng Poetry để quản lý dependencies trong Python

Sử dụng Poetry để quản lý dependencies trong Python

Định dạng chuỗi Strings trong Python

Định dạng chuỗi Strings trong Python

Một tác vụ phổ biến khi làm việc với danh sách trong Python

Một tác vụ phổ biến khi làm việc với danh sách trong Python

Làm việc với các biến môi trường trong Python

Làm việc với các biến môi trường trong Python

Sự khác biệt giữa set() và frozenset() trong Python

Sự khác biệt giữa set() và frozenset() trong Python

Sự khác biệt giữa iterator và iterable trong Python

Sự khác biệt giữa iterator và iterable trong Python

Cách làm việc với file tarball/tar trong Python

Cách làm việc với file tarball/tar trong Python

Chuyển đổi kiểu dữ liệu trong Python

Chuyển đổi kiểu dữ liệu trong Python

Sự khác biệt giữa toán tử == và is trong Python

Sự khác biệt giữa toán tử == và is trong Python

Làm việc với file ZIP trong Python

Làm việc với file ZIP trong Python

Cách sử dụng ThreadPoolExecutor trong Python

Cách sử dụng ThreadPoolExecutor trong Python

Sự khác biệt giữa byte objects và string trong Python

Sự khác biệt giữa byte objects và string trong Python

Xử lý độ chính xác các hàm floor, ceil, round, trunc, format  trong Python

Xử lý độ chính xác các hàm floor, ceil, round, trunc, format trong Python

Cách lặp qua nhiều list với hàm zip() trong Python

Cách lặp qua nhiều list với hàm zip() trong Python

Top