Duration of the online course: 12 hours and 51 minutes
3
(2)
Build practical SQL skills with this free MySQL course: create databases, query data, use joins, and connect PHP apps—ideal for web dev and data projects.
In this free course, learn about
What a MySQL database is, its role, and core structure concepts
Choosing proper MySQL data types and integrity considerations
Installing a MySQL lab via LAMP using tasksel
Creating/dropping databases; using SHOW GRANTS; risks of DROP misuse
Creating/altering/dropping tables; selecting a database with USE
CRUD with SQL: INSERT, SELECT, UPDATE, DELETE; sequencing commands correctly
Managing users and privileges: CREATE/DROP USER, GRANT, and least-privilege intent
Using INNER JOIN to combine related tables
Creating stored procedures/functions, including delimiter handling and purposes
Backing up/restoring and copying tables/databases; why backups matter
Connecting PHP to MySQL with mysqli and rendering results to HTML
Web forms & PHP: inserting/updating/searching; LIKE wildcards; GET method risks
Security: prepared statements vs SQL injection; sanitizing & validating with filter_var
SQL analytics: DISTINCT, AVG, MIN, MAX for unique values and summary insights
About the free online course
If you want to understand how modern applications store, organize, and retrieve information, MySQL is a great place to start. This free online course gives you a hands-on introduction to working with relational databases, helping you move from basic concepts to real tasks you can apply in websites, internal tools, and data-driven projects.
You will learn how a database is structured, why table design matters, and how smart choices like using the right data types support data integrity, accuracy, and performance. As you practice creating databases and tables, you will also see how to safely edit or remove structures without risking valuable information, building the habit of thinking before running commands that can have irreversible consequences.
From there, the course focuses on working with real records: inserting data, searching with SELECT queries, updating existing entries, and removing what is no longer needed. You will strengthen essential SQL skills such as joining tables to combine related data, as well as using techniques to retrieve unique values and compute summaries like averages and minimum or maximum values. These are the building blocks behind reports, dashboards, search tools, and everyday business queries.
Beyond database commands, the course bridges MySQL with web development through PHP using mysqli. You will see how a web app can read and print database results in HTML, insert data from forms, run searches with wildcards, and perform updates in a controlled way. Along the way, you will also cover safer patterns such as prepared statements, sanitizing variables, and validating form inputs, all of which reduce the risk of common web security issues.
Finally, you will understand core administration practices such as creating and managing user accounts, assigning privileges responsibly, and generating backups for restore and recovery. By the end, you will be ready to work confidently with MySQL in a lab environment, communicate clearly about database tasks, and take your next step toward roles that rely on SQL and backend fundamentals.
Course content
Video class: MySQL - MySQL Introduction39m
Exercise: In the context of MySQL databases, which of the following statements best describes the function of a database?
Video class: MySQL - Structure Introduction41m
Exercise: When setting up a MySQL database, what is an important consideration for maintaining data integrity?
Video class: MySQL - Data Types Introduction31m
Exercise: Why is it important to assign correct data types to fields within a MySQL database?
Video class: MySQL - Install LAMP Server for MySQL Labs (tasksel)27m
Exercise: What is the purpose of using Tasksel to set up a lab environment in the context of learning MySQL?
Video class: MySQL - Create, Delete Database and Show Grants (Create Database, Drop Database, Show Grants)25m
Exercise: What is a potential consequence of misusing the DROP command in MySQL without proper precautions?
Video class: MySQL - Create, Alter and Delete Tables (Create Table, Alter Table, Drop Table )22m
Exercise: In MySQL, what command is used to enter a database to work within it?
Video class: MySQL - Add Records and Search Tables (insert, select)31m
Exercise: Which sequence of SQL commands can be used to create a table and then add a user with specific attributes in a MySQL database?
Video class: MySQL - Update and Delete Records (update, delete)26m
Exercise: What MySQL command is used to modify an existing record in a table?
Video class: MySQL - Create, Delete User Accounts and Grant Privileges (create/drop user, grant, show grants)46m
Exercise: What is the purpose of assigning specific privileges to user accounts in MySQL?
Video class: MySQL - Table Joins Introduction (inner join)21m
Exercise: What is the primary function of an 'inner join' in a MySQL database?
Video class: MySQL - Stored Procedures Introduction25m
Exercise: In MySQL, when creating a stored procedure, why is it important to set a custom delimiter temporarily?
Video class: MySQL - Stored Functions Introduction36m
Exercise: In the context of MySQL stored functions, what is the primary role of these functions when applied to tables in a database?
Video class: MySQL - Backup, Restore, Copy Tables and Databases41m
Exercise: What is the main benefit of creating backups of tables and databases in MySQL, as described in the course material?
Video class: MySQL - Connect with PHP (mysqli)32m
Exercise: Which PHP extension is used to connect to a MySQL database without needing additional installations in PHP?
Video class: MySQL - PHP Print Records to HTML (mysqli)24m
Exercise: Which programming languages are essential to know when developing a web application that involves accessing a MySQL database and outputting results in a web browser?
Video class: MySQL - PHP to INSERT Into Table19m
Exercise: What is the purpose of using PHP to insert data into a MySQL database table in a development environment?
Video class: MySQL - UPDATE Records with PHP21m
Exercise: What is a crucial step to take before performing mass updates on a MySQL database using scripts?
Video class: MySQL - INSERT Records with HTML Form and PHP31m
Exercise: In a web application where a form is used to insert data into a MySQL database, which component primarily handles the data parsing and execution of SQL statements?
Video class: MySQL - SEARCH Form with HTML and PHP33m
Exercise: When constructing a MySQL search query with a wildcard, which SQL clause should be used to enable matching partial strings?
Video class: MySQL - UPDATE Records with HTML Form and PHP32m
Exercise: What is a key warning to consider when working with dynamically generated HTML forms in PHP, as described in the lesson?
Video class: MySQL - INSERT Records with HTML Hyperlinks and PHP($_GET)25m
Exercise: What is one potential security risk associated with using the GET method in web applications?
Video class: MySQL - PHP Prepared Statements26m
Exercise: Why is it important to use prepared statements when inserting records into a MySQL database using PHP?
Video class: MySQL - Sanitize Variables with PHP (filter_var)23m
Exercise: What is one method to prevent HTML and script tags from being inserted into a MySQL database when submitting data through an HTML form?
Video class: MySQL - HTML Form Validation with PHP (filter_var)23m
Exercise: In the context of PHP form validation as described, which of the following statements best describes the purpose of using filter_var with validation filters?
Video class: MySQL - Select Unique Values from Table (SELECT DISTINCT)10m
Exercise: In MySQL, what keyword is used to retrieve only unique values from a column within a table?
Exercise: Which SQL query would you use to retrieve only unique usernames from a table called 'users'?
Video class: MySQL - Select Unique Values from Table (SELECT DISTINCT)10m
Exercise: In MySQL, what keyword is used to retrieve only unique values from a column within a table?
Exercise: Which SQL query would you use to retrieve only unique usernames from a table called 'users'?
Video class: MySQL - Average Values in a Column17m
Exercise: What functionality does MySQL provide to efficiently calculate averages in a database table?
Video class: MySQL - Find Minimum and Maximum Values in Column21m
Exercise: In the context of database management, why is it important to identify the minimum and maximum values in a column of a MySQL table?
This free course includes:
12 hours and 51 minutes of online video course
Digital certificate of course completion (Free)
Exercises to train your knowledge
100% free, from content to certificate
What MySQL commands will I learn for creating and managing databases and tables?
The course covers CREATE DATABASE, DROP DATABASE, CREATE TABLE, ALTER TABLE, DROP TABLE, INSERT, SELECT, UPDATE, and DELETE.
How do PHP prepared statements help protect a MySQL database?
Prepared statements separate SQL code from user input, helping prevent SQL injection when inserting, searching, or updating records.
What is the difference between an INNER JOIN and SELECT DISTINCT in MySQL?
INNER JOIN combines matching rows from related tables, while SELECT DISTINCT returns duplicate-free values from a query result.
Ready to get started?Download the app and get started today.
Course comments: Introduction to MySQL
Mohammad Sohail
awesome