Master PostgreSQL and use it in your Python apps.
Python and PostgreSQL are two of the most in-demand skills in the world. After completing this course, you'll be confident in adding both to your resume/CV.
Everything you'll learn in this course is relevant to other database systems too, like MySQL, Microsoft SQL Server, or Oracle.
With this course, you'll master PostgreSQL and how to work with it from Python. If you use Python and you want to augment your skills with a database, you'll love this course.
You will:
Master PostgreSQL and use it in your Python apps.
Python and PostgreSQL are two of the most in-demand skills in the world. After completing this course, you'll be confident in adding both to your resume/CV.
Everything you'll learn in this course is relevant to other database systems too, like MySQL, Microsoft SQL Server, or Oracle.
With this course, you'll master PostgreSQL and how to work with it from Python. If you use Python and you want to augment your skills with a database, you'll love this course.
You will:
Work with different types of databases (in-memory, SQLite, and PostgreSQL), and understand when to use each in your Python apps.
Build a programming journal project to add a SQLite database to your Python application.
Improve a database design incrementally so you're not bound by your initial design.
Model different relationships with PostgreSQL, including one-to-many and many-to-many.
Reduce errors by applying database changes using database migrations with Python and alembic.
Build a polling app to learn about advanced data analysis with GROUP BY, PostgreSQL window functions, and nested queries.
Work with dates and times in PostgreSQL, and avoid common timezone pitfalls.
Structure Python apps like a professional, to make development much easier.
Produce data analysis reports and charts using matplotlib with PostgreSQL data.
You'll also tackle advanced PostgreSQL topics, such as:
User-Defined Functions
Stored Procedures
Locking
Async database connections
As you can see, you're going to learn a lot.
But this is a no-nonsense, no-frills course. We have planned, crafted, and edited every lecture to be concise and compact. No time wasted, so you can master PostgreSQL in record time.
We've created dozens of diagrams to explain database concepts, as well as code-along videos. But you won't just be watching me code. You'll develop the projects yourself first, to gain hands-on experience and master PostgreSQL.
Also, throughout the course, I provide data sets with challenges and exercises for you to practice what you've learned.
I've been teaching and helping students online for over 8 years, and this course is the culmination of my teaching experience. I know how to help you understand concepts fully and quickly, in the best way for you.
When you complete this course you'll be able to:
Extend your Python applications with database functionality using PostgreSQL.
Answer complex questions using data and generate reports.
List PostgreSQL as one of your strongest skills.
Check out the free preview videos for more information and to try out the course.
I'll see you on the inside.
This is a short introductory video to this section. I'm really excited to guide you through this Python refresher course!
This lecture has a link to all the Python code we'll write in this section. Use it to check your code as you write it, or to refresh your memory!
Let's look at variables in Python. Variables are just names for values, which we can reuse and reset.
Python is a dynamic typed language, which means variables don't need be constrained to a specific type.
In this lecture we look at three essential data structures in Python: lists, tuples, and sets.
A list is an ordered collection of items.
A tuple is an immutable ordered collection of items.
A set is an unordered collection of unique items.
In this fascinating video, we look at advanced set operations: calculating items which are in two sets, or items which are in one set but not another.
This video explores how to create programs which can change depending on some input. For example, we might ask the user if they want to continue or not.
This makes use of boolean comparisons, such as:
1 == 1 (which is True)
5 > 5 (which is False)
The boolean comparisons we have available in Python are many:
==
!=
>, <, <=, >=
is
is not
in
not in
Loops allow us to repeat things over and over. This video explores two different types of loop in Python: for loop and while loop.
List comprehension is a relatively unique thing to Python.
It allows us to succinctly use a for loop inside a list to generate values. These values then end up in the list.
For example, [x for x in range(10)] generates a list [0, 1, 2, 3, 4, 5, 6, 7, 8, 9].
Dictionaries are an extremely useful thing in Python.
They are akin to sets, but instead of being a set of unique values, they are a set of unique keys, and each has a value associated with it.
In this video, let's look at methods in Python by creating some examples. Creating methods is simple, you just need the one keyword: def.
*args and **kwargs are truly fascinatingly confusing. For eons, they have annoyed Python learners.
To this I say no more!
They're just a way of passing arguments.
Objects are the natural progression from dictionaries. Instead of just holding data, objects hold another special type of data: methods.
A method is a function which operates on the object calling it. Thus, an object can use its own values to calculate outputs of methods. Very cool.
In many instances, we don't want our methods to be solely referencing the object which calls them. Sometimes, we want to reference the class of the object. Other times, we don't need either the object or the class.
@classmethod and @staticmethod are two decorators (looking at that shortly!) which extend the capabilities of methods.
Classes in Python can also inherit from one another. This essentially means that a class contains all of the properties and methods of the class it inherits from—but with the added bonus that it can have more.
Not only we can pass values from one method to another, but we can also pass functions.
This is not used very often, but it can sometimes yield very powerful methods in very few lines of code.
One of the most confusing aspects of Python for learners is the concept of decorators.
These are things we can place on top of function definitions which allow us to extend the function by executing code before and after the function.
They are extremely powerful when used well!
In this video we look at advanced decorators in Python, which is decorators that take arguments.
This amplifies the decorator's usefulness, although also makes them slightly more contrived.
OpenCourser helps millions of learners each year. People visit us to learn workspace skills, ace their exams, and nurture their curiosity.
Our extensive catalog contains over 50,000 courses and twice as many books. Browse by search, by topic, or even by career interests. We'll match you to the right resources quickly.
Find this site helpful? Tell a friend about us.
We're supported by our community of learners. When you purchase or subscribe to courses and programs or purchase books, we may earn a commission from our partners.
Your purchases help us maintain our catalog and keep our servers humming without ads.
Thank you for supporting OpenCourser.