
This course includes our updated coding exercises so you can practice your skills as you learn.
See a demo
In this lecture, you investigate a data breach at a fast-growing corp, uncover stolen trade secrets by exploring databases to spot clues, identify suspects, and learn essential database concepts.
Understand that a database is a collection of data with tools to access and manipulate it, and learn to install software to turn any computer into a database.
Install a database management system like PostgreSQL and migrate data into customers, products, and orders tables with unique IDs to support relational links and scalable data management.
Explore how sql is a language to talk to databases and retrieve data via queries. Understand why large systems need databases for structured data storage beyond notepad and Excel sheets.
Explore how SQL standards create consistency across databases through standardization and how PostgreSQL, Microsoft, and Oracle add extras on top, tracing the history from the 1980s to 2011.
Trace the shift from file processing systems to databases, a structured model using columns and rows that links data with a shared schema, reducing redundancy and update gaps.
It's funny how the 12 Rules of Codd are actually 13 because it starts counting at 0, this is a classic computer science thing to do! Reason being is one of the types of data we use to store lists starts counting at zero!
Explore how columns define a table in a database, covering attributes, degree of the relation, and domain constraints that govern data types like date of birth and sex.
learn how rows, or tuples, populate a table by following column constraints and data types, while understanding cardinality and the relational model.
Learn how the relational model uses primary keys to uniquely identify data and foreign keys to link tables, creating solid relationships across a database.
Explore why PostgreSQL is widely adopted, using Valentina DBE as a cross-platform open-source UI to manage PostgreSQL, and note its widespread use in cloud services.
Set up postgres on Mac by choosing an installer or a drag‑and‑drop postgres app and initializing with your Mac username and password. Manage databases with Vallentine studio.
Learn to set up Linux for PostgreSQL, including Ubuntu repository steps, sudo usage, and installing PostgreSQL 11. Then install Valentine Studio, connect to local PostgreSQL, and prepare databases for import.
Transform imposter syndrome into momentum by embracing hard work, practicing, and gradually gaining experience, then solidify your SQL and database skills by teaching others on Discord.
rename columns in a select query to present data more readably using aliases like birthday and first name for clear subset views.
In this video we'll learn all about the CONCAT function and how we can make our data look prettier when querying. Often you can have 20 or 30 columns in a table and even when you select only the columns you want to see it can be hard to look at.
Luckily SQL has our back! With CONCAT you can format the return of your columns temporarily, we aren't actually changing any data, but we're just sprucing it up to look nice when the query returns us our data.
It's a temporary "view" on that data, which means you arre telling SQL how you want something to look only for that query, not permanently.
Explore aggregate functions such as count, min, max, average, and sum on data to reveal insights. See how the employees table in Valentina Studio computes highest salary and total salaries.
Master data filtering by using the where clause and layering multiple criteria to extract precise subsets, from simple gender queries to complex age and salary ranges.
Explore how comparison operators power range filtering in SQL, using equal to, not equal to, greater than, less than, and their inclusive variants to craft precise conditions.
Explore how logical operators and comparison operators filter data, and learn the order of operations that govern select, from, and where.
Learn how to detect and distinguish null values from empty strings, understand the implications of nullable fields, and deliberately manage nulls to avoid query bugs.
Learn how to use the is operator to filter null values, distinguish optional from required data, and write defensive SQL queries that safely handle nulls.
Use between and as a shorthand for inclusive range filtering across dates and numbers, improving readability. Between depends on argument order and is the same as using >= and <=.
Learn how to filter with the in keyword to match multiple values, such as employee numbers, by using where column in (values) to build efficient SQL queries.
Understand how timestamps store date, time, and time zone in Postgres, including ISO 8601 and UTC. Learn when to use timestamp with time zone versus timestamp without time zone.
Learn to calculate date differences and cast strings to dates in PostgreSQL, generating intervals and formatted dates with to_date and date casting in ISO 8601 format.
Explore how to sort data with the order by clause, applying ascending or descending order to single or multiple columns, including expressions like the length of a name.
Learn to perform a self join by joining a table to itself. Use a foreign key that references the same primary key to display each employee's supervisor name.
Explore using the using keyword for simple joins in sql, compare it with on, and learn when matching primary keys to foreign keys across tables like employees and departments.
Explore the having keyword after group by to filter groups using aggregates, compare it with where for row-level filtering, and build complex queries with joins and counts.
Sort grouped data using order by after group by, sorting by department name or by count of employees, and apply order by to analytical functions for ranking results.
Explore the group by mental model, grouping logic, and max aggregation; learn how groups structure data like salary by employee, and recognize the limitations of single queries.
Explore how grouping sets combine multiple groupings in one query, replacing unions for totals and per-group sums across products and order lines.
Discover how order by in window functions alters the frame, producing cumulative counts that differ from partitioned results, with practical framing examples.
Learn how to compute a customer's cumulative spend by partitioning by customer id and ordering by order id to produce a running total of net amounts from orders.
Learn how views store and query results of queries, including non materialized views that rerun on demand and materialized views that store data on disk and update with table changes.
Learn to use views to simplify complex salary queries, including creating a last salary change view and querying it like a table, comparing nonmaterialized and materialized views with joins.
Explore when to use different index algorithms in PostgreSQL, including default, hash, gin, and gist, and measure their impact on query performance with explain analyze.
Explore subqueries, i.e., inner queries, used to build complex filters and calculations in SQL, especially in where, from, and having clauses, with single-column or single-record results and joins comparison.
Apply subquery guidelines: enclose in parentheses and place on the right of the comparison operator, and explore single row, multiple row, multiple column, correlated, and nested types.
Learn how correlated subqueries and joins affect performance when querying salaries, using where clauses, from clauses, and views, and compare execution plans with explain analyze.
Explore the types of databases in a DBMS, contrasting regular databases with template databases, and learn how templates blueprint database creation and influence PostgreSQL setup behind the scenes.
Organize database objects with PostgreSQL schemas to separate tables, views, and indexes into logical boxes such as sales, payroll, and HR, while defaulting to the public schema.
Learn to create users and roles, configure login and password encryption, and adjust PostgreSQL authentication settings via pg_hba.conf and postgresql.conf for secure local and interactive access.
Adopt best practices for role management by applying the principle of least privilege, creating granular roles, and avoiding default super user access to secure data.
Learn how PostgreSQL data types act as constraints on fields, ensuring data integrity through core types like boolean, with true, false, or null values and smart conversions.
Model a database with an entity relationship diagram before building tables, outlining entities like courses, students, and enrollment; apply crow's feet notation and define primary and foreign keys.
Create the student table from the data model, define uid primary key with a default uid generate v4, and enforce not null constraints, while applying consistent naming conventions and extensions.
Learn how to define table constraints to constrain multiple columns, including multi-column primary keys, checks and foreign keys, and know when to apply column vs table level constraints.
Explore universally unique identifiers uid and the uid extension that generates unique primary keys, and weigh pros and cons versus auto-incrementing numbers for growing databases.
Create a course by defining a subject, linking a teacher, and setting a description. Learn to enforce data integrity with constraints, perform migrations, and manage updates.
Enroll a student into a course using student ID, course ID, and enrollment date, then append feedback to the course’s feedback array, noting potential integrity issues.
Understand how transactions coordinate concurrent database access to maintain consistency. See how begin, commit, rollback, and locking enforce acid properties (atomicity, consistency, isolation, durability) for durable updates.
Solve a data theft mystery by interrogating suspects and revealing the motive of a disgruntled employee. Recover stolen data and learn how SQL and database skills streamline investigations.
Explore diagramming tooling and the UML standard with Lucidchart, comparing browser-based options and cross-platform apps for creating diagrams.
Learn how super keys and candidate keys identify rows, then select a single primary key to simplify data modeling, and implement foreign keys to link related tables for one-to-one relationships.
Explore how to determine entity attributes in a relational model, balance attributes and relationships, define keys and foreign keys, and apply naming conventions for students, instructors, lessons, and exams.
Explore functional dependencies in database design, showing how a determinant uniquely determines another attribute, with examples like employee number and birthdate, and the role of primary and composite keys.
Explore functional dependencies with salary, employee number, and project idea, and see how their combination supports normalization to avoid redundancy and anomalies.
Develop a strategic plan to improve database performance, security, backups, and access control, and guidance on selecting the right database model for business needs.
Learn how replication duplicates data across multiple machines in different locations to prevent failures, achieve eventual or synchronous vs asynchronous consistency, and enable horizontal scalability.
Explore injections and sql injection, see how untrusted input can drop tables or bypass logins, and learn to sanitize input, use prepared statements, and parameterized queries to prevent attacks.
Explore data management best practices, including encrypted backups, selective encryption of sensitive user data, and secure password storage via hashing, comparison, and salt rounds in a PostgreSQL context.
Discover the top databases you’ll encounter, led by PostgreSQL as the main relational choice, alongside MongoDB, Firebase, ElasticSearch, Redis, DynamoDB, DocumentDB, and S3.
Just launched with all modern SQL and Databases (PostgreSQL, MySQL, + more) features! Join a live online community of over 900,000+ students and a course taught by industry experts that have actually worked both in Silicon Valley and Toronto managing databases. This is one of the most in demand tech skills in the world right now with SQL being used for many years to come (it has been around since the 1970s and going stronger than ever)!
Using the latest best practices in SQL, Database Management and Database Design, this course is focused on efficiency. Never spend time on confusing, out of date, incomplete tutorials anymore. Graduates of Andrei’s courses are now working at Google, Tesla, Amazon, Apple, IBM, JP Morgan, Meta, + other top tech companies.
We guarantee you this is the most comprehensive online resource on Databases like PostgreSQL and MySQL. This project and exercise based course will introduce you to all of the modern toolchain of an SQL developer or anyone using a database in the workplace (Product Manager, Business Analyst/Intelligence, Data Analyst, Data Scientists, Machine Learning Engineer, Web Developer, Mobile Developer + any role requiring insights from data). Along the way, we will learn practical and real world skills that will get you hired.
The curriculum is going to be very hands on as we walk you from start to finish of working with databases and SQL, all the way into learning how to scale databases, how to manage them, and even bonus material on working with Big Data, Caching using Redis, and connecting PostgreSQL to a Node.js server. We even talk about pros and cons of choosing an SQL Database vs NoSQL like MongoDB. We will start from the very beginning by teaching you SQL and Database Fundamentals and then going into advanced topics so you can make good decisions and work with any data that your company has no matter how complex!
The topics covered are:
- NoSQL (MongoDB) vs PostgreSQL, MySQL vs NewSQL
- SQL Theory And Concepts
- The Relational Model
- SQL Basics
- SQL Functions
- Data Modification Language / DML
- Data Query Language / DQL
- Subqueries
- Indexes
- SQL Filtering / WHERE Statement
- 3 Valued Logic
- SQL JOINS
- Window Functions
- Date Filtering and Timestamps
- SQL Aggregate Functions
- SQL Operator Precedense
- SQL ORDER BY
- SQL GROUP BY
- SQL Top Down Design
- SQL Bottom Up Design
- SQL Entity Relationship Diagram
- SQL Normalization
- Database Types
- The role of a DBMS
- Multi Table SELECT
- The Software Development Lifecycle / SDLC
- POSTGRES Role Management
- POSTGRES Permission Management
- POSTGRES Backup Strategies
- POSTGRES Transaction Management/ SQL Transactions
- POSTGRES/SQL Data Types
- SQL Views
- Redis Database
- Elasticsearch
- Connecting A Database To A Server/Web App (Node.js)
- Data Engineering (Kafka, Hadoop, etc...)
- Sharding
- Replication
- Backups
- Vertical + Horizontal Scaling
- Distributed vs Centralized Databases
- Big Data + Analytics
- Database Security (SQL Injections, Access Control, etc...)
+ more
With SQL you will be able to work with all databases like: PostgreSQL, MySQL, Oracle SQL, Microsoft SQL Server, IBM DB2, SQLite, MariaDB, Amazon Redshift, Presto, Apache Hive with Hadoop, and many many more because SQL is everywhere!
You see, data is everywhere and it is the most valuable asset in the world. All the top companies need people that can work with data. That is where this course comes in. Unlike most tutorials out there, this course encompasses many fields working with many databases. Whether you want to get into the tech industry, you’re a mobile or web developer, a data scientist, a machine learning engineer, a business analyst, even sales and marketing or you have your own company. Any role that requires you to work with data will need to know this valuable skill that is SQL (how to interact with databases, analyze, and use data).
Here is the thing though. There are many courses on this topic.
Let me tell you 3 reasons why this course is different from any other SQL/PostgreSQL/MySQL/Database tutorial online:
1. In this course you will learn to work with not just 1 but many Databases like MySQL, PostgreSQL, Microsoft Server, Redis, and so much more. No prior programming or technical experience is necessary. We take you from absolute zero, all the way to mastery. We will go above and beyond to not just teach you SQL commands but to teach you advanced techniques, best practices, database design and how to think about performance, security, and scalability.
2. This course is taught by actual professionals who have experience and have worked with databases for some of the largest companies in the world. Mo is a super star when it comes SQL. He has built software for the European Union, launched products for 5 Fortune 500 companies, and has consulted at Google. Andrei has worked on enterprise level apps for large tech firms in Silicon Valley as well as Toronto and has also taught others tech skills that got them into big companies like Google. By having both Andrei and Mo teach, you get to see different perspective and learn from 2 engineers as if you are working at a company together.
3. We are going to have fun here. The course starts off with you getting hired at Keiko Corp to investigate their recent Database breach. Because we believe in learning by doing, you will be doing tons of real life assignments and exercises along the way, and eventually get to the point where you can help Keiko Corp solve their mystery by looking at their databases and analyzing hidden information. Our goals is that everyone has fun and is successful after completing the course :)
This course is not about making you just watch along without understanding the principles so that when you are done with the course you don’t know what to do other than watch another tutorial. No! This course will push you and challenge you to go from an absolute beginner in SQL and Databases to someone that is in the top 10% of SQL and Database experts!
Taught By:
Andrei is the instructor of the highest rated Development courses on Udemy as well as one of the fastest growing. His graduates have moved on to work for some of the biggest tech companies around the world like Apple, Google, Tesla, Amazon, JP Morgan, IBM, UNIQLO etc... He has been working as a senior software developer in Silicon Valley and Toronto for many years, and is now taking all that he has learned, to teach programming skills and to help you discover the amazing career opportunities that being a developer allows in life.
Having been a self taught programmer, he understands that there is an overwhelming number of online courses, tutorials and books that are overly verbose and inadequate at teaching proper skills. Most people feel paralyzed and don't know where to start when learning a complex subject matter, or even worse, most people don't have $20,000 to spend on a coding bootcamp. Programming skills should be affordable and open to all. An education material should teach real life skills that are current and they should not waste a student's valuable time. Having learned important lessons from working for Fortune 500 companies, tech startups, to even founding his own business, he is now dedicating 100% of his time to teaching others valuable software development skills in order to take control of their life and work in an exciting industry with infinite possibilities.
Andrei promises you that there are no other courses out there as comprehensive and as well explained. He believes that in order to learn anything of value, you need to start with the foundation and develop the roots of the tree. Only from there will you be able to learn concepts and specific skills(leaves) that connect to the foundation. Learning becomes exponential when structured in this way.
Taking his experience in educational psychology and coding, Andrei's courses will take you on an understanding of complex subjects that you never thought would be possible.
Mo is a Solutions Architect with over 7 years of experience in Software Architecture and Development. Having worked as a consultant for the majority of his career, he has seen it all.
He has worked on global applications for multi-nationals, governments and Fortune 500 companies.
Throughout his career he has seen every type of developer and development practice, and the one thing that he believes more than anything is that software development is a pragmatic team sport. Go fast alone, go far together!
My main goal with instructing is to teach the foundational knowledge to set you up for life-long learning. Software and development practices change often, but when you have the right foundation adapting to the constant change becomes easy!
See you inside the courses!