В этой статье мы рассмотрим некоторые часто используемые функции в алхимии SQL для выполнения соединений таблиц и многого другого.
Случай
В SQLAlchemy конструкция case
используется для выполнения условных выражений и создания условных операторов в SQL-запросах. Это позволяет вам определять условную логику и возвращать разные значения на основе заданных условий.
Конструкция case
в SQLAlchemy позволяет создавать выражения SQL, напоминающие оператор SQL CASE
. Он имеет следующий синтаксис:
from sqlalchemy import case case( [ (condition_1, value_1), (condition_2, value_2), ... ], else_=default_value )
Давайте разберем компоненты конструкции case
:
condition_1
,condition_2
и т. д.: это условия, которые вы хотите оценить. Каждое условие может быть выражением SQLAlchemy или логическим выражением.value_1
,value_2
и т. д.: это соответствующие значения, которые должны быть возвращены, если соответствующее условие истинно.else_
: это необязательный аргумент, указывающий значение по умолчанию, которое будет возвращено, если ни одно из условий не выполняется. Это эквивалентно предложениюELSE
в операторе SQLCASE
.
Вот пример, демонстрирующий использование case
в SQLAlchemy:
from sqlalchemy import create_engine, MetaData, Table, Column, Integer, select, case # Create the engine and connection engine = create_engine('your_database_connection_string') connection = engine.connect() # Define the table metadata = MetaData() my_table = Table('my_table', metadata, Column('id', Integer, primary_key=True), Column('score', Integer), Column('grade', String) ) # Create a SELECT statement using case query = select([ my_table.c.id, my_table.c.score, case([ (my_table.c.score >= 90, 'A'), (my_table.c.score >= 80, 'B'), (my_table.c.score >= 70, 'C') ], else_='D').label('grade') ]) # Execute the query result = connection.execute(query) # Print the result for row in result: print(row)
В приведенном выше примере конструкция case
используется в операторе select
. Он оценивает столбец score
таблицы my_table
и присваивает оценку на основе оценки. Если оценка больше или равна 90, возвращается «A», если между 80 и 89, возвращается «B», если между 70 и 79, возвращается «C», а для любой другой оценки возвращается «C». возвращает «Д». Затем результат извлекается и распечатывается.
Конструкция case
в SQLAlchemy обеспечивает гибкий способ обработки условных выражений и выполнения пользовательских преобразований в ваших запросах SQL.
Функция.сумма()
В SQLAlchemy func.sum()
— это функция, представляющая агрегатную функцию SQL SUM
. Он используется для вычисления суммы набора значений в SQL-запросе.
Функцию func.sum()
можно применить к столбцу или выражению для вычисления суммы его значений. Обычно он используется в сочетании с оператором select
для выполнения агрегирования таблицы или подмножества данных.
Вот пример, демонстрирующий использование func.sum()
в SQLAlchemy:
from sqlalchemy import create_engine, MetaData, Table, Column, Integer, select, func # Create the engine and connection engine = create_engine('your_database_connection_string') connection = engine.connect() # Define the table metadata = MetaData() my_table = Table('my_table', metadata, Column('id', Integer, primary_key=True), Column('value', Integer) ) # Create a SELECT statement using func.sum() query = select([ func.sum(my_table.c.value).label('total_sum') ]) # Execute the query result = connection.execute(query) # Retrieve the total sum value total_sum = result.scalar() # Print the total sum print("Total sum:", total_sum)
В приведенном выше примере func.sum(my_table.c.value)
используется в операторе select
для вычисления суммы столбца value
в таблице my_table
. Результат помечен как total_sum
с использованием метода label()
. Затем метод result.scalar()
используется для получения значения общей суммы.
Функцию func.sum()
можно использовать с другими предложениями и функциями в SQLAlchemy для выполнения более сложных вычислений и агрегирования. Он предоставляет способ получить сумму значений в SQL-запросе, позволяя выполнять вычисления с числовыми столбцами или выражениями.
Заключение
В заключение, в этой статье мы рассмотрели две важные функции в SQLAlchemy: конструкцию case и функцию func.sum(). Конструкция case позволяет использовать условные выражения и операторы в запросах SQL, облегчая динамическое присвоение значений на основе условий. Функция func.sum() вычисляет сумму значений в столбце или выражении, позволяя выполнять агрегирование и вычисление общей суммы. Эти функции расширяют возможности SQLAlchemy, позволяя разработчикам писать универсальные и выразительные SQL-запросы в приложениях Python.
Это все для этой статьи! Не стесняйтесь оставлять отзывы или вопросы в комментариях. Если вы нашли это захватывающим чтением, хлопайте в ладоши и подписывайтесь! Я люблю кофе, так что смело купите мне кофе на https://bmc.link/pycodenemesis XD. Ваше здоровье!