SQLAlchemy Core - Executing Expression
Last Updated :
28 Feb, 2022
In this article, we are going to see how to execute SQLAlchemy core expression using Python.
Creating table for demonstration:
Import necessary functions from the SQLAlchemy package. Establish connection with the PostgreSQL database using create_engine() function as shown below, create a table called books with columns book_id and book_price. Insert record into the tables using insert() and values() function as shown.
Python3
# import necessary packages
import sqlalchemy
from sqlalchemy import create_engine, MetaData,
Table, Column, Numeric,insert, Integer,
VARCHAR, update, text, delete
from sqlalchemy.engine import result
# establish connections
engine = create_engine(
"database+dialect://username:password@hostname:port/database_name")
# initialize the Metadata Object
meta = MetaData(bind=engine)
MetaData.reflect(meta)
# create a table schema
books = Table(
'books', meta,
Column('book_id', Integer, primary_key=True),
Column('book_price', Numeric),
Column('genre', VARCHAR),
Column('book_name', VARCHAR)
)
meta.create_all(engine)
# insert records into the table
statement1 = books.insert().values(book_id=1,
book_price=12.2,
genre='fiction',
book_name='Old age')
statement2 = books.insert().values(book_id=2,
book_price=13.2,
genre='non-fiction',
book_name='Saturn rings')
statement3 = books.insert().values(book_id=3,
book_price=121.6,
genre='fiction',
book_name='Supernova')
statement4 = books.insert().values(book_id=4,
book_price=100,
genre='non-fiction',
book_name='History of the world')
statement5 = books.insert().values(book_id=5,
book_price=1112.2,
genre='fiction',
book_name='Sun city')
# execute the insert records statement
engine.execute(statement1)
engine.execute(statement2)
engine.execute(statement3)
engine.execute(statement4)
engine.execute(statement5)
Output:
Sample tableQuery to execute expressions in SQLAlchemy Core
In this article, we can discuss how to use execute function to executeSQLAlchemy core expressions and conventional SQL queries.
Example 1:Â
SQLAlchemy provides a function called text(). We can write any conventional SQL query inside the text function enclosed by "". Now, passing this SQL query to execute function will convert this query to SQLAlchemy compatible format and returns the result.
from sqlalchemy import text
text("YOUR SQL QUERY")
Pass the SQL query to the execute() function and get all the results using fetchall() function. Use a for loop to iterate through the results. The SQLAlchemy query shown in the below code selects all rows where the book price is greater than Rs. 100.
Python3
# write the SQL query inside the text() block
sql = text('SELECT * from BOOKS WHERE BOOKS.book_price > 100')
results = engine.execute(sql)
# Fetch all the records
result = engine.execute(sql).fetchall()
# View the records
for record in result:
print("\n", record)
Output:
The output of books queryExample 2:
The below query returns the book_price which is exactly equal divisible by 10
Python3
# write the SQL query inside the text() block
sql = text("SELECT * from BOOKS WHERE BOOKS.book_price/10 =10")
# Fetch all the records
result = engine.execute(sql).fetchall()
# View the records
for record in result:
print("\n", record)
Output:
The Output of book_price which is exactly equal divisible by 10Example 3:
The below SQL expression will insert additional records in the created table using SQLAlchemy core.
from sqlalchemy import insert
insert(table_name).values(column_name="value")
Get the books table from the Metadata object initialized while connecting to the database. Pass the insert query to the execute() function and get all the results using fetchall() function. Use a for loop to iterate through the results.
The SQLAlchemy query shown in the below code inserts additional records in the created table using SQLAlchemy core. Then, we can write a conventional SQL query and use fetchall() to print the results to check whether the table is updated properly.
Python3
# Get the `books` table from the Metadata object
BOOKS = meta.tables['books']
from sqlalchemy import insert
# write the insert statement
stmt1 = insert(BOOKS).values(book_id=6,
book_price=400,
genre="fiction",
book_name="yoga is science")
stmt2 = insert(BOOKS).values(book_id=7,
book_price=800,
genre="non-fiction",
book_name="alchemy tutorials")
# execute
engine.execute(stmt1)
engine.execute(stmt2)
# write the SQL query to check
# whether the records are inserted
sql = text("SELECT * FROM BOOKS ")
results = engine.execute(sql)
# View the records
for record in results:
print("\n", record)
Output:
The output of inserting additional recordsExample 4:
Let us see another example related to updating query.
Tablename.update().where(Tablename.c.column_name == 'value').values(column_name = 'value')
Get the books table from the Metadata object initialized while connecting to the database. Pass the delete query to the execute() function and get all the results using fetchall() function. Use a for loop to iterate through the results.
The SQLAlchemy query shown in the below code updates the genre "non-fiction" as "sci-fi" this will effectively update multiple rows at one go. Then, we can write a conventional SQL query and use fetchall() to print the results to check whether the table is updated properly.
Python3
# Get the `books` table from the Metadata object
BOOKS = meta.tables['books']
# update
stmt = BOOKS.update().where(BOOKS.c.genre == 'non-fiction'
).values(genre='sci-fi')
engine.execute(stmt)
# write the SQL query inside the
# text() block to fetch all records
sql = text("SELECT * from BOOKS")
# Fetch all the records
result = engine.execute(sql).fetchall()
# View the records
for record in result:
print("\n", record)
Output:
The output of the update query
Similar Reads
Python Tutorial - Learn Python Programming Language Python is one of the most popular programming languages. Itâs simple to use, packed with features and supported by a wide range of libraries and frameworks. Its clean syntax makes it beginner-friendly. It'sA high-level language, used in web development, data science, automation, AI and more.Known fo
10 min read
Python Interview Questions and Answers Python is the most used language in top companies such as Intel, IBM, NASA, Pixar, Netflix, Facebook, JP Morgan Chase, Spotify and many more because of its simplicity and powerful libraries. To crack their Online Assessment and Interview Rounds as a Python developer, we need to master important Pyth
15+ min read
Non-linear Components In electrical circuits, Non-linear Components are electronic devices that need an external power source to operate actively. Non-Linear Components are those that are changed with respect to the voltage and current. Elements that do not follow ohm's law are called Non-linear Components. Non-linear Co
11 min read
Python OOPs Concepts Object Oriented Programming is a fundamental concept in Python, empowering developers to build modular, maintainable, and scalable applications. By understanding the core OOP principles (classes, objects, inheritance, encapsulation, polymorphism, and abstraction), programmers can leverage the full p
11 min read
Python Projects - Beginner to Advanced Python is one of the most popular programming languages due to its simplicity, versatility, and supportive community. Whether youâre a beginner eager to learn the basics or an experienced programmer looking to challenge your skills, there are countless Python projects to help you grow.Hereâs a list
10 min read
Python Exercise with Practice Questions and Solutions Python Exercise for Beginner: Practice makes perfect in everything, and this is especially true when learning Python. If you're a beginner, regularly practicing Python exercises will build your confidence and sharpen your skills. To help you improve, try these Python exercises with solutions to test
9 min read
Python Programs Practice with Python program examples is always a good choice to scale up your logical understanding and programming skills and this article will provide you with the best sets of Python code examples.The below Python section contains a wide collection of Python programming examples. These Python co
11 min read
Spring Boot Tutorial Spring Boot is a Java framework that makes it easier to create and run Java applications. It simplifies the configuration and setup process, allowing developers to focus more on writing code for their applications. This Spring Boot Tutorial is a comprehensive guide that covers both basic and advance
10 min read
Python Introduction Python was created by Guido van Rossum in 1991 and further developed by the Python Software Foundation. It was designed with focus on code readability and its syntax allows us to express concepts in fewer lines of code.Key Features of PythonPythonâs simple and readable syntax makes it beginner-frien
3 min read
Python Data Types Python Data types are the classification or categorization of data items. It represents the kind of value that tells what operations can be performed on a particular data. Since everything is an object in Python programming, Python data types are classes and variables are instances (objects) of thes
9 min read