This basic MySQL tutorial explains some of the basic SQL statements. If this is the first time you have used a relational database management system, this tutorial gives you everything you need to know to work with MySQL such as querying data, updating data, managing databases, and creating tables.
- MySQL (/ ˌ m aɪ ˌ ɛ s ˌ k juː ˈ ɛ l /) is an open-source relational database management system (RDBMS). Its name is a combination of 'My', the name of co-founder Michael Widenius's daughter, and 'SQL', the abbreviation for Structured Query Language.
- MySQL Community Edition MySQL Community Edition is the freely downloadable version of the world's most popular open source database. It is available under the GPL license and is supported by a huge and active community of open source developers.
If you are already familiar with other relational database management systems such as PostgreSQL, Oracle, and Microsoft SQL Server, you can use this tutorial to refresh your knowledge and understand how the SQL dialect of MySQL is different from other systems.
Section 1. Getting started with MySQL
MySQL for Excel is now covered under Oracle Lifetime Sustaining Support Per Oracle's Lifetime Support policy, as of Sept 18, 2020, MySQL for Excel is covered under Oracle Sustaining Support. MySQL Cluster CGE. MySQL Cluster is a real-time open source transactional database designed for fast, always-on access to data under high throughput conditions. MySQL Yum Repository; MySQL APT Repository; MySQL SUSE Repository; MySQL Community Server; MySQL Cluster; MySQL Router; MySQL Shell; MySQL Workbench; MySQL Installer for Windows; MySQL.
This section helps you get started with MySQL. We will start installing MySQL, downloading a sample database, and loading data into the MySQL server for practicing.
- Installing MySQL database server – show you step by step how to install MySQL database server on your computer.
- Downloading MySQL sample database – introduce you to a MySQL sample database named
classicmodels
. We also provide you links for downloading the sample database and its diagrams. - Loading the sample database into your own MySQL database server – walk you through steps of how to load the
classicmodels
sample database into your MySQL database server for practicing.
Section 2. Querying data
This section helps you learn how to query data from the MySQL database server. We will start with a simple SELECT
statement that allows you to query data from a single table.
- SELECT – show you how to use simple
SELECT
statement to query the data from a single table.
Section 3. Sorting data
- ORDER BY – show you how to sort the result set using
ORDER BY
clause. The custom sort order with theFIELD
function will be also covered.
Section 4. Filtering data
- WHERE – learn how to use the
WHERE
clause to filter rows based on specified conditions. - SELECT DISTINCT – show you how to use the
DISTINCT
operator in theSELECT
statement to eliminate duplicate rows in a result set. - AND – introduce you to the
AND
operator to combine Boolean expressions to form a complex condition for filtering data. - OR– introduce you to the
OR
operator and show you how to combine theOR
operator with theAND
operator to filter data. - IN – show you how to use the
IN
operator in theWHERE
clause to determine if a value matches any value in a list or a subquery. - BETWEEN – show you how to query data based on a range using
BETWEEN
operator. - LIKE – provide you with technique to query data based on a specific pattern.
- LIMIT – use
LIMIT
to constrain the number of rows returned bySELECT
statement - IS NULL – test whether a value is
NULL
or not by usingIS NULL
operator.
Section 5. Joining tables
- Table & Column Aliases – introduce you to table and column aliases.
- Joins – give you an overview of joins supported in MySQL including inner join, left join, and right join.
- INNER JOIN – query rows from a table that has matching rows in another table.
- LEFT JOIN – return all rows from the left table and matching rows from the right table or null if no matching rows found in the right table.
- RIGHT JOIN – return all rows from the right table and matching rows from the left table or null if no matching rows found in the left table.
- CROSS JOIN – make a Cartesian product of rows from multiple tables.
- Self-join – join a table to itself using table alias and connect rows within the same table using inner join and left join.
Section 6. Grouping data
- GROUP BY – show you how to group rows into groups based on columns or expressions.
- HAVING – filter the groups by a specific condition.
- ROLLUP – generate multiple grouping sets considering a hierarchy between columns specified in the
GROUP BY
clause.
Section 7. Subqueries
- Subquery – show you how to nest a query (inner query) within another query (outer query) and use the result of the inner query for the outer query.
- Derived table – introduce you to the derived table concept and show you how to use it to simplify complex queries.
- EXISTS – test for the existence of rows.
Section 8. Common Table Expressions
- Common Table Expression or CTE – explain to you the common table expression concept and show you how to use CTE for querying data from tables.
- Recursive CTE – use the recursive CTE to traverse the hierarchical data.
Mysql Workbench Download
Section 9. Set operators
- UNION and UNION ALL – combine two or more result sets of multiple queries into a single result set.
- INTERSECT – show you a couple of ways to simulate the
INTERSECT
operator. - MINUS – explain to you the SQL MINUS operator and show you how to simulate it.
Section 10. Modifying data in MySQL
In this section, you will learn how to insert, update, and delete data from tables using various MySQL statements.
- INSERT – use various forms of the
INSERT
statement to insert data into a table. - INSERT Multiple Rows – insert multiple rows into a table.
- INSERT INTO SELECT – insert data into a table from the result set of a query.
- INSERT IGNORE – explain you the
INSERT IGNORE
statement that inserts rows into a table and ignores rows that cause errors. - UPDATE – learn how to use
UPDATE
statement and its options to update data in database tables. - UPDATE JOIN – show you how to perform cross-table update using
UPDATE JOIN
statement withINNER JOIN
andLEFT JOIN
. - DELETE – show you how to use the
DELETE
statement to delete rows from one or more tables. - ON DELETE CASCADE – learn how to use
ON DELETE CASCADE
referential action for a foreign key to delete data from a child table automatically when you delete data from a parent table. - DELETE JOIN – show you how to delete data from multiple tables.
- REPLACE – learn how to insert or update data depends on whether data exists in the table or not.
- Prepared Statement – show you how to use the prepared statement to execute a query.
Section 11. MySQL transaction
- Transaction – learn about MySQL transactions, and how to use
COMMIT
andROLLBACK
to manage transactions in MySQL. - Table locking – learn how to use MySQL locking for cooperating table access between sessions.
Section 12. Managing MySQL databases and tables
This section shows you how to manage the most important database objects in MySQL including databases and tables.
- Selecting a MySQL database – show you how to use the
USE
statement to select a MySQL database via themysql
program and MySQL Workbench. - Managing databases – learn various statements to manage MySQL databases including creating a new database, removing an existing database, selecting a database, and listing all databases.
- CREATE DATABASE – show you how to create a new database in MySQL Server.
- DROP DATABASE – learn how to delete an existing database.
- MySQL storage engines– it is essential to understand the features of each storage engine so that you can use them effectively to maximize the performance of your databases.
- CREATE TABLE – show you how to create new tables in a database using
CREATE TABLE
statement. - MySQL sequence – show you how to use a sequence to generate unique numbers automatically for the primary key column of a table.
- ALTER TABLE – learn how to use the
ALTER TABLE
statement to change the structure of a table. - Renaming table – show you how to rename a table using
RENAME TABLE
statement. - Removing a column from a table – show you how to use the
ALTER TABLE DROP COLUMN
statement to remove one or more columns from a table. - Adding a new column to a table – show you how to add one or more columns to an existing table using
ALTER TABLE ADD COLUMN
statement. - DROP TABLE – show you how to remove existing tables using
DROP TABLE
statement. - Temporary tables – discuss MySQL temporary table and show you how to manage temporary tables.
- TRUNCATE TABLE – show you how to use the
TRUNCATE TABLE
statement to delete all data in a table fast. - Generated columns – learn how to use the MySQL generated columns to store data computed from an expression or other columns.
Section 13. MySQL data types
- MySQL data types – show you various data types in MySQL so that you can apply them effectively in designing database tables.
- INT – show you how to use integer data type.
- DECIMAL – show you how to use
DECIMAL
datatype to store exact values in decimal format. - BIT – introduce you
BIT
datatype and how to store bit values in MySQL. - BOOLEAN – explain to you how MySQL handles Boolean values by using
TINYINT(1)
internally. - CHAR – a guide to
CHAR
data type for storing the fixed-length string. - VARCHAR – give you the essential guide to
VARCHAR
datatype. - TEXT – show you how to store text data using
TEXT
datatype. - DATE – introduce you to the
DATE
datatype and show you some date functions to handle the date data effectively. - TIME – walk you through the features of
TIME
datatype and show you how to use some useful temporal functions to handle time data. - DATETIME – introduce you to the
DATETIME
datatype and some useful functions to manipulateDATETIME
values. - TIMESTAMP – introduce you to
TIMESTAMP
and its features called automatic initialization and automatic update that allows you to define auto-initialized and auto-updated columns for a table. - JSON – show you how to use JSON data type to store JSON documents.
- ENUM – learn how to use
ENUM
datatype correctly to store enumeration values.
Section 14. MySQL constraints
- NOT NULL constraint – introduce you to the
NOT NULL
constraint and show you how to declare aNOT NULL
column or add aNOT NULL
constraint to an existing column. - Primary key constraint – guide you on how to use the primary key constraint to create the primary key for a table.
- Foreign key constraint – introduce you to the foreign key and show you step by step how to create and drop foreign keys.
- Disable foreign key checks – learn how to disable foreign key checks.
- UNIQUE constraint – show you how to use
UNIQUE
constraint to enforce the uniqueness of values in a column or a group of columns in a table. - CHECK constraint – learn how to create
CHECK
constraints to ensure data integrity. - CHECK constraint emulation – if you use MySQL 8.0.15 or earlier version, you can emulate
CHECK
constraints using views or triggers.
Section 15. MySQL globalization
Mysql Count
This section helps you get started with MySQL. We will start installing MySQL, downloading a sample database, and loading data into the MySQL server for practicing.
- Installing MySQL database server – show you step by step how to install MySQL database server on your computer.
- Downloading MySQL sample database – introduce you to a MySQL sample database named
classicmodels
. We also provide you links for downloading the sample database and its diagrams. - Loading the sample database into your own MySQL database server – walk you through steps of how to load the
classicmodels
sample database into your MySQL database server for practicing.
Section 2. Querying data
This section helps you learn how to query data from the MySQL database server. We will start with a simple SELECT
statement that allows you to query data from a single table.
- SELECT – show you how to use simple
SELECT
statement to query the data from a single table.
Section 3. Sorting data
- ORDER BY – show you how to sort the result set using
ORDER BY
clause. The custom sort order with theFIELD
function will be also covered.
Section 4. Filtering data
- WHERE – learn how to use the
WHERE
clause to filter rows based on specified conditions. - SELECT DISTINCT – show you how to use the
DISTINCT
operator in theSELECT
statement to eliminate duplicate rows in a result set. - AND – introduce you to the
AND
operator to combine Boolean expressions to form a complex condition for filtering data. - OR– introduce you to the
OR
operator and show you how to combine theOR
operator with theAND
operator to filter data. - IN – show you how to use the
IN
operator in theWHERE
clause to determine if a value matches any value in a list or a subquery. - BETWEEN – show you how to query data based on a range using
BETWEEN
operator. - LIKE – provide you with technique to query data based on a specific pattern.
- LIMIT – use
LIMIT
to constrain the number of rows returned bySELECT
statement - IS NULL – test whether a value is
NULL
or not by usingIS NULL
operator.
Section 5. Joining tables
- Table & Column Aliases – introduce you to table and column aliases.
- Joins – give you an overview of joins supported in MySQL including inner join, left join, and right join.
- INNER JOIN – query rows from a table that has matching rows in another table.
- LEFT JOIN – return all rows from the left table and matching rows from the right table or null if no matching rows found in the right table.
- RIGHT JOIN – return all rows from the right table and matching rows from the left table or null if no matching rows found in the left table.
- CROSS JOIN – make a Cartesian product of rows from multiple tables.
- Self-join – join a table to itself using table alias and connect rows within the same table using inner join and left join.
Section 6. Grouping data
- GROUP BY – show you how to group rows into groups based on columns or expressions.
- HAVING – filter the groups by a specific condition.
- ROLLUP – generate multiple grouping sets considering a hierarchy between columns specified in the
GROUP BY
clause.
Section 7. Subqueries
- Subquery – show you how to nest a query (inner query) within another query (outer query) and use the result of the inner query for the outer query.
- Derived table – introduce you to the derived table concept and show you how to use it to simplify complex queries.
- EXISTS – test for the existence of rows.
Section 8. Common Table Expressions
- Common Table Expression or CTE – explain to you the common table expression concept and show you how to use CTE for querying data from tables.
- Recursive CTE – use the recursive CTE to traverse the hierarchical data.
Mysql Workbench Download
Section 9. Set operators
- UNION and UNION ALL – combine two or more result sets of multiple queries into a single result set.
- INTERSECT – show you a couple of ways to simulate the
INTERSECT
operator. - MINUS – explain to you the SQL MINUS operator and show you how to simulate it.
Section 10. Modifying data in MySQL
In this section, you will learn how to insert, update, and delete data from tables using various MySQL statements.
- INSERT – use various forms of the
INSERT
statement to insert data into a table. - INSERT Multiple Rows – insert multiple rows into a table.
- INSERT INTO SELECT – insert data into a table from the result set of a query.
- INSERT IGNORE – explain you the
INSERT IGNORE
statement that inserts rows into a table and ignores rows that cause errors. - UPDATE – learn how to use
UPDATE
statement and its options to update data in database tables. - UPDATE JOIN – show you how to perform cross-table update using
UPDATE JOIN
statement withINNER JOIN
andLEFT JOIN
. - DELETE – show you how to use the
DELETE
statement to delete rows from one or more tables. - ON DELETE CASCADE – learn how to use
ON DELETE CASCADE
referential action for a foreign key to delete data from a child table automatically when you delete data from a parent table. - DELETE JOIN – show you how to delete data from multiple tables.
- REPLACE – learn how to insert or update data depends on whether data exists in the table or not.
- Prepared Statement – show you how to use the prepared statement to execute a query.
Section 11. MySQL transaction
- Transaction – learn about MySQL transactions, and how to use
COMMIT
andROLLBACK
to manage transactions in MySQL. - Table locking – learn how to use MySQL locking for cooperating table access between sessions.
Section 12. Managing MySQL databases and tables
This section shows you how to manage the most important database objects in MySQL including databases and tables.
- Selecting a MySQL database – show you how to use the
USE
statement to select a MySQL database via themysql
program and MySQL Workbench. - Managing databases – learn various statements to manage MySQL databases including creating a new database, removing an existing database, selecting a database, and listing all databases.
- CREATE DATABASE – show you how to create a new database in MySQL Server.
- DROP DATABASE – learn how to delete an existing database.
- MySQL storage engines– it is essential to understand the features of each storage engine so that you can use them effectively to maximize the performance of your databases.
- CREATE TABLE – show you how to create new tables in a database using
CREATE TABLE
statement. - MySQL sequence – show you how to use a sequence to generate unique numbers automatically for the primary key column of a table.
- ALTER TABLE – learn how to use the
ALTER TABLE
statement to change the structure of a table. - Renaming table – show you how to rename a table using
RENAME TABLE
statement. - Removing a column from a table – show you how to use the
ALTER TABLE DROP COLUMN
statement to remove one or more columns from a table. - Adding a new column to a table – show you how to add one or more columns to an existing table using
ALTER TABLE ADD COLUMN
statement. - DROP TABLE – show you how to remove existing tables using
DROP TABLE
statement. - Temporary tables – discuss MySQL temporary table and show you how to manage temporary tables.
- TRUNCATE TABLE – show you how to use the
TRUNCATE TABLE
statement to delete all data in a table fast. - Generated columns – learn how to use the MySQL generated columns to store data computed from an expression or other columns.
Section 13. MySQL data types
- MySQL data types – show you various data types in MySQL so that you can apply them effectively in designing database tables.
- INT – show you how to use integer data type.
- DECIMAL – show you how to use
DECIMAL
datatype to store exact values in decimal format. - BIT – introduce you
BIT
datatype and how to store bit values in MySQL. - BOOLEAN – explain to you how MySQL handles Boolean values by using
TINYINT(1)
internally. - CHAR – a guide to
CHAR
data type for storing the fixed-length string. - VARCHAR – give you the essential guide to
VARCHAR
datatype. - TEXT – show you how to store text data using
TEXT
datatype. - DATE – introduce you to the
DATE
datatype and show you some date functions to handle the date data effectively. - TIME – walk you through the features of
TIME
datatype and show you how to use some useful temporal functions to handle time data. - DATETIME – introduce you to the
DATETIME
datatype and some useful functions to manipulateDATETIME
values. - TIMESTAMP – introduce you to
TIMESTAMP
and its features called automatic initialization and automatic update that allows you to define auto-initialized and auto-updated columns for a table. - JSON – show you how to use JSON data type to store JSON documents.
- ENUM – learn how to use
ENUM
datatype correctly to store enumeration values.
Section 14. MySQL constraints
- NOT NULL constraint – introduce you to the
NOT NULL
constraint and show you how to declare aNOT NULL
column or add aNOT NULL
constraint to an existing column. - Primary key constraint – guide you on how to use the primary key constraint to create the primary key for a table.
- Foreign key constraint – introduce you to the foreign key and show you step by step how to create and drop foreign keys.
- Disable foreign key checks – learn how to disable foreign key checks.
- UNIQUE constraint – show you how to use
UNIQUE
constraint to enforce the uniqueness of values in a column or a group of columns in a table. - CHECK constraint – learn how to create
CHECK
constraints to ensure data integrity. - CHECK constraint emulation – if you use MySQL 8.0.15 or earlier version, you can emulate
CHECK
constraints using views or triggers.
Section 15. MySQL globalization
Mysql Count
Mysql
- Character Set – discuss character set and show you step by step how to perform various operations on character sets.
- Collation – discuss collation and show you how to set character sets and collations for the MySQL server, database, tables, and columns.
Section 16. MySQL import & export
Mysql Download
- Import CSV File Into MySQL Table – show you how to use
LOAD DATA INFILE
statement to import CSV file into a MySQL table. - Export MySQL Table to CSV – learn various techniques of how to export MySQL table to a CSV file format.
Mysql Create Database
Section 17. Advanced techniques
Mysql Download
- Natural sorting – walk you through various natural sorting techniques in MySQL using the
ORDER BY
clause.