Menu iconMenu iconPython & SQL Bible
Python & SQL Bible

Chapter 19: Advanced Database Operations with SQLAlchemy

19.4 CRUD Operations with SQLAlchemy ORM

Now that we have our User class defined, we can use it to interact with the users table in various ways. For example, we can query the table to retrieve specific records based on certain criteria, or we can insert new records into the table. We can also update existing records in the table to reflect changes in the corresponding user data, or we can delete records from the table altogether.
These operations are often referred to as CRUD operations, which stands for Create, Read, Update, and Delete. By using our User class to execute these operations, we can ensure that our application interacts with our database in a reliable and consistent manner. This helps to reduce errors and ensure that our data remains accurate and up-to-date at all times.

19.4.1 Creating Records

First, let's look at how to add new records to our table:

new_user = User(name='newuser', fullname='New User', nickname='newbie')
session.add(new_user)
session.commit()

In this code, we first create a new instance of our User class. We then use the add() method of our session to stage the new user for insertion. Finally, we use the commit() method of our session to apply the changes to the database.

19.4.2 Reading Records

We can use our session to query the database for records. Here's how we can get all users:

users = session.query(User).all()
for user in users:
    print(user.name, user.fullname)

We can also filter our query to get specific users:

users = session.query(User).filter(User.name == 'newuser').all()
for user in users:
    print(user.name, user.fullname)

19.4.3 Updating Records

To update a record, we first query for it, then change its attributes, and finally commit the session:

user = session.query(User).filter(User.name == 'newuser').first()
user.nickname = 'experienced'
session.commit()

19.4.4 Deleting Records

To delete a record, we again query for it, then use the delete() method of our session:

user = session.query(User).filter(User.name == 'newuser').first()
session.delete(user)
session.commit()

That's an overview of how you can use SQLAlchemy ORM to perform CRUD operations on a PostgreSQL database. In the following sections, we will delve deeper into the use of SQLAlchemy ORM, exploring topics such as complex queries, relationships between tables, and transaction management.

19.4 CRUD Operations with SQLAlchemy ORM

Now that we have our User class defined, we can use it to interact with the users table in various ways. For example, we can query the table to retrieve specific records based on certain criteria, or we can insert new records into the table. We can also update existing records in the table to reflect changes in the corresponding user data, or we can delete records from the table altogether.
These operations are often referred to as CRUD operations, which stands for Create, Read, Update, and Delete. By using our User class to execute these operations, we can ensure that our application interacts with our database in a reliable and consistent manner. This helps to reduce errors and ensure that our data remains accurate and up-to-date at all times.

19.4.1 Creating Records

First, let's look at how to add new records to our table:

new_user = User(name='newuser', fullname='New User', nickname='newbie')
session.add(new_user)
session.commit()

In this code, we first create a new instance of our User class. We then use the add() method of our session to stage the new user for insertion. Finally, we use the commit() method of our session to apply the changes to the database.

19.4.2 Reading Records

We can use our session to query the database for records. Here's how we can get all users:

users = session.query(User).all()
for user in users:
    print(user.name, user.fullname)

We can also filter our query to get specific users:

users = session.query(User).filter(User.name == 'newuser').all()
for user in users:
    print(user.name, user.fullname)

19.4.3 Updating Records

To update a record, we first query for it, then change its attributes, and finally commit the session:

user = session.query(User).filter(User.name == 'newuser').first()
user.nickname = 'experienced'
session.commit()

19.4.4 Deleting Records

To delete a record, we again query for it, then use the delete() method of our session:

user = session.query(User).filter(User.name == 'newuser').first()
session.delete(user)
session.commit()

That's an overview of how you can use SQLAlchemy ORM to perform CRUD operations on a PostgreSQL database. In the following sections, we will delve deeper into the use of SQLAlchemy ORM, exploring topics such as complex queries, relationships between tables, and transaction management.

19.4 CRUD Operations with SQLAlchemy ORM

Now that we have our User class defined, we can use it to interact with the users table in various ways. For example, we can query the table to retrieve specific records based on certain criteria, or we can insert new records into the table. We can also update existing records in the table to reflect changes in the corresponding user data, or we can delete records from the table altogether.
These operations are often referred to as CRUD operations, which stands for Create, Read, Update, and Delete. By using our User class to execute these operations, we can ensure that our application interacts with our database in a reliable and consistent manner. This helps to reduce errors and ensure that our data remains accurate and up-to-date at all times.

19.4.1 Creating Records

First, let's look at how to add new records to our table:

new_user = User(name='newuser', fullname='New User', nickname='newbie')
session.add(new_user)
session.commit()

In this code, we first create a new instance of our User class. We then use the add() method of our session to stage the new user for insertion. Finally, we use the commit() method of our session to apply the changes to the database.

19.4.2 Reading Records

We can use our session to query the database for records. Here's how we can get all users:

users = session.query(User).all()
for user in users:
    print(user.name, user.fullname)

We can also filter our query to get specific users:

users = session.query(User).filter(User.name == 'newuser').all()
for user in users:
    print(user.name, user.fullname)

19.4.3 Updating Records

To update a record, we first query for it, then change its attributes, and finally commit the session:

user = session.query(User).filter(User.name == 'newuser').first()
user.nickname = 'experienced'
session.commit()

19.4.4 Deleting Records

To delete a record, we again query for it, then use the delete() method of our session:

user = session.query(User).filter(User.name == 'newuser').first()
session.delete(user)
session.commit()

That's an overview of how you can use SQLAlchemy ORM to perform CRUD operations on a PostgreSQL database. In the following sections, we will delve deeper into the use of SQLAlchemy ORM, exploring topics such as complex queries, relationships between tables, and transaction management.

19.4 CRUD Operations with SQLAlchemy ORM

Now that we have our User class defined, we can use it to interact with the users table in various ways. For example, we can query the table to retrieve specific records based on certain criteria, or we can insert new records into the table. We can also update existing records in the table to reflect changes in the corresponding user data, or we can delete records from the table altogether.
These operations are often referred to as CRUD operations, which stands for Create, Read, Update, and Delete. By using our User class to execute these operations, we can ensure that our application interacts with our database in a reliable and consistent manner. This helps to reduce errors and ensure that our data remains accurate and up-to-date at all times.

19.4.1 Creating Records

First, let's look at how to add new records to our table:

new_user = User(name='newuser', fullname='New User', nickname='newbie')
session.add(new_user)
session.commit()

In this code, we first create a new instance of our User class. We then use the add() method of our session to stage the new user for insertion. Finally, we use the commit() method of our session to apply the changes to the database.

19.4.2 Reading Records

We can use our session to query the database for records. Here's how we can get all users:

users = session.query(User).all()
for user in users:
    print(user.name, user.fullname)

We can also filter our query to get specific users:

users = session.query(User).filter(User.name == 'newuser').all()
for user in users:
    print(user.name, user.fullname)

19.4.3 Updating Records

To update a record, we first query for it, then change its attributes, and finally commit the session:

user = session.query(User).filter(User.name == 'newuser').first()
user.nickname = 'experienced'
session.commit()

19.4.4 Deleting Records

To delete a record, we again query for it, then use the delete() method of our session:

user = session.query(User).filter(User.name == 'newuser').first()
session.delete(user)
session.commit()

That's an overview of how you can use SQLAlchemy ORM to perform CRUD operations on a PostgreSQL database. In the following sections, we will delve deeper into the use of SQLAlchemy ORM, exploring topics such as complex queries, relationships between tables, and transaction management.