This series of tutorials covers everything you need to know about MySQL, a popular open-source relational database management system.
- 1How to install/update MySQL on Windows
- 2How to install/upgrade MySQL in Mac OS
- 3How to make comments in MySQL statements (3+ approaches)
- 4How to Execute an SQL File in VS Code
- 5Where does MySQL 8 store data?
- 6How to set up phpMyAdmin (Windows, Mac OS, Ubuntu)
- 7What are the Default Username and Password for phpMyAdmin
- 8How to completely uninstall MySQL from your system
- 9How to Set Connection Timeout in MySQL 8
- 10How to use MySQL with Docker and Docker Compose
- 11Understanding interactive_timeout and wait_timeout in MySQL 8
- 12How to interact with MySQL using command line
- 13How to check your current MySQL version (Windows, Mac OS, Ubuntu)
- 14How to Install and Configure MySQL on Ubuntu 23.04
- 15MySQL 8: Ways to reset root password in Windows
- 16MySQL 8: 3 Ways to Reset Root Password in macOS
- 17MySQL 8: 2 Ways to Reset Root Password in Ubuntu
- 18MySQL 8: How to create a new user with root privileges
- 19MySQL 8: How to grant privileges to a user for a database
- 20MySQL 8: How to revoke/restrict privileges from a user
- 21Managing users and roles in MySQL 8: A practical guide
- 22Using ENUM in MySQL 8: A Practical Guide (with Examples)
- 234 Ways to Create a New Database in MySQL 8
- 24Ways to Rename a Database in MySQL 8 (3 Ways)
- 253 Ways to Drop a Database in MySQL 8
- 26MySQL 8: 3 ways to see all databases in the server
- 27MySQL 8: How to select a database to work with command line
- 28MySQL: 4 Ways to list all tables in a database.
- 29Data Types in MySQL 8: A Comprehensive Cheat Sheet
- 30MySQL 8: How to create a table with auto-increment ID
- 31Unsigned integer vs signed integer in MySQL 8: Explained with examples
- 32MySQL: 3 ways to see the structure of a table
- 33Ways to Rename a Table in MySQL 8
- 34How to Drop a Table in MySQL 8 (Basic & Advanced)
- 35How to empty a table in MySQL 8 (erase all data but keep the table structure)
- 36How to add/remove columns to/from a table in MySQL 8
- 37MySQL 8: How to rename a column of a table
- 38MySQL 8: How to change charset and collation of a table
- 39MySQL 8: How to change charset of a whole database
- 40MySQL 8: Ways to Dump a Database to an SQL File
- 41MySQL 8: 3 ways to import an SQL file to a database
- 42MySQL 8: How to export a database to a CSV file
- 43MySQL 8: How to export a database to a JSON file
- 44What is the default port of MySQL server
- 45What is MySQL Workbench and how to use it
- 46MySQL 8: Can a table store 100 million rows
- 47How to insert a new record into a table in MySQL 8
- 48How to mass insert data into a table in MySQL 8
- 49MySQL 8: How to Insert Text with Quotes into a Table
- 50Using SELECT Statement in MySQL 8: A Comprehensive Guide
- 51How to duplicate a table in MySQL 8
- 52MySQL: Using WHERE clause in SELECT statement
- 53MySQL: Using LIMIT and OFFSET to get a subset of records
- 54MySQL: Using ORDER BY to sort records in SELECT statement
- 55MySQL: How to Sort Rows by Multiple Columns
- 56MySQL: How to Select DISTINCT Rows
- 57MySQL: How to count the number of rows by a condition
- 58Using AND & OR operators in MySQL 8: A Practical Guide
- 59Using Loops in MySQL: A Practical Guide (with Examples)
- 60Using LIKE and NOT LIKE operators in MySQL 8: A Practical Guide
- 61MySQL 8: How to compare values (greater than, less than, equal to, etc.)
- 62MySQL 8: How to use aliases for columns and tables in SELECT statement
- 63MySQL: How to reset the AUTO_INCREMENT value of a table
- 64MySQL 8: Add column with default value to an existing table
- 65MySQL 8: How to get the size of a database
- 66Using SHOW and DESCRIBE statements in MySQL 8: A Practical Guide
- 67How to update rows in a table in MySQL 8
- 68How to delete rows from a table in MySQL 8
- 69MySQL 8: Adding, Removing, and Changing Indices of a Table
- 70Understanding UNIQUE constraint in MySQL 8: A Developer’s Guide
- 71MySQL 8: How to search for a string in all tables of a database
- 72MySQL 8: How to perform case-insensitive string comparison
- 73Using Regular Expressions in MySQL 8: The Complete Guide
- 74How to perform full-text search in MySQL 8
- 75Using CONCAT function in MySQL 8: A Practical Guide
- 76Using SUBSTRING function in MySQL 8: A Practical Guide
- 77Using REPLACE function in MySQL 8: A Practical Guide
- 78Using UPPER and LOWER functions in MySQL 8: A Practical Guide
- 79Using REVERSE function in MySQL 8: A Practical Guide
- 80Using CHAR_LENGTH and LENGTH functions in MySQL 8
- 81How to escape special characters in MySQL 8
- 82Using GROUP BY clause in MySQL 8: A Beginner’s Guide
- 83MySQL 8 Aggregate Functions: SUM, AVG, MIN, MAX, COUNT
- 84MySQL 8: Count rows in each group with GROUP BY and COUNT
- 85MySQL: Eliminate orphan rows in one-to-many relationships
- 86MySQL 8: Find the min/max value in each group
- 87MySQL 8: Find the sum/average of values in each group
- 88MySQL 8: CHAR, VARCHAR, TEXT, and BLOB data types – explained with examples
- 89MySQL 8: INT, TINYINT, SMALLINT, MEDIUMINT, BIGINT data types – explained with examples
- 90DOUBLE and FLOAT data types in MySQL 8: Explained with examples
- 91DATE and TIME data types in MySQL 8: Explained with examples
- 92MySQL 8: Timestamps with timezone – Explained with examples
- 93MySQL 8: created_at and updated_at columns – A practical guide
- 94MySQL 8: How to Group Data by Day, Month, and Year
- 95MySQL 8: How to select rows from the last 7 days, 30 days, etc.
- 96DEFAULT & ON UPDATE TIMESTAMP in MySQL 8: Explained with examples
- 97CURDATE() and CURRENT_DATE() in MySQL 8: Explained with examples
- 98CURTIME() and CURRENT_TIME() in MySQL 8: Explained with examples
- 99NOW() and CURRENT_TIMESTAMP() in MySQL 8: Explained with examples
- 100UNIX_TIMESTAMP() and UTC_TIMESTAMP() in MySQL 8: Explained with examples
- 101Extracting date/time parts in MySQL 8 with built-in functions
- 102TIMESTAMPDIFF() in MySQL 8: Get the difference between two timestamps
- 103DATEDIFF() and TIMEDIFF() in MySQL 8: Get the difference between two dates/times
- 104How to subtract Date/Time values in MySQL 8
- 105How to Create Custom Collations in MySQL
- 106How to add a time interval to a date value in MySQL 8
- 107MySQL: How to add a calculated column to SELECT query
- 108MySQL: How to Remove FOREIGN KEY Constraints
- 109How to format date/time values in MySQL 8
- 110How to convert a string to date/time in MySQL 8
- 111FROM_UNIXTIME() in MySQL 8: Convert a UNIX timestamp to a date
- 112The HAVING clause in MySQL 8: A Practical Guide
- 113How to Monitor Query Latency in MySQL 8
- 114Using Index Scans for Sorts in MySQL 8: A Practical Guide
- 115Multicolumn Indices in MySQL 8: A Practical Guide
- 116MySQL: How to deal with redundant and duplicate indices
- 117MySQL 8: How to clean unused indices in a database
- 118MySQL 8: How to find and replace table corruption
- 119Table partitioning in MySQL 8: A Practical Guide
- 120How to implement cursor-based pagination in MySQL (3 examples)
- 121Using UNION operator in MySQL 8: The Complete Guide
- 122How to execute subqueries in MySQL 8: A Practical Guide
- 123MySQL: IS NULL and IS NOT NULL operators – Explained with examples
- 124Using BETWEEN operator in MySQL 8: A Practical Guide
- 125MySQL: Selecting rows between two dates/times – A Practical Guide
- 126MySQL: IN and NOT IN Operators – Explained with Examples
- 127Understanding CHECK constraint in MySQL 8: A Practical Guide
- 128One-to-Many Relationship in MySQL 8: A Practical Guide
- 129Working with FOREIGN KEY in MySQL 8: A Developer’s Guide
- 130MySQL: Creating a Fixed-Size Table by Using Triggers
- 131Many-to-Many Relationship in MySQL 8: A Practical Guide
- 132Cross Join in MySQL 8: A Practical Guide
- 133Inner Joins in MySQL 8: A Practical Guide
- 134Left Join in MySQL 8: A Practical Guide
- 135Using LEFT JOIN with GROUP BY in MySQL 8: A Practical Guide
- 136Right Join in MySQL 8: A Practical Guide
- 137Views in MySQL 8: A Comprehensive Guide
- 138MySQL 8: Using OVER() to define a window frame in a query
- 139Using ROW_NUMBER() function in MySQL 8: A Practical Guide
- 140Using RANK() and DENSE_RANK() in MySQL 8: A Practical Guide
- 141MySQL 8: FIRST_VALUE(), LAST_VALUE(), and NTH_VALUE() functions – Explained with examples
- 142Using LEAD() and LAG() functions in MySQL 8: A Practical Guide
- 143Using GROUP_CONCAT() function in MySQL 8: A Practical Guide
- 144Using NTILE() function in MySQL 8: A quick Guide
- 145Using the EXPLAIN statement in MySQL 8
- 146MySQL Upsert: Update if exists, insert if not
- 147MySQL: ON DUPLICATE KEY UPDATE Statement – Explained with Examples
- 148MySQL 8: INSERT IGNORE statement – Explained with examples
- 149How to Set Expiration Date for a Record in MySQL 8
- 150How to Auto Backup MySQL Database to Google Drive
- 151MySQL 8: Using ROLLUP modifier with GROUP BY clause
- 152Replication in MySQL 8: A Comprehensive Guide
- 153MySQL: How to migrate a database to a new server
- 154Cascade delete in MySQL 8: A Practical Guide
- 155MySQL 8: How to count rows in related tables
- 156MySQL 8: Sorting rows in table A by column in table B
- 157How to read log files in MySQL 8
- 158MySQL 8: How to create a replica using Percona XtraBackup
- 159MySQL 8: How to create a replica using mysqldump
- 160MySQL 8: Creating a replica using mydumper and myloader
- 161Using ‘BEFORE INSERT’ trigger in MySQL 8: A Practical Guide
- 162Using ‘AFTER INSERT’ trigger in MySQL 8: A Practical Guide
- 163Using ‘AFTER UPDATE’ trigger in MySQL 8: Tutorial & Examples
- 164Using ‘AFTER DELETE’ trigger in MySQL 8: Explained with examples
- 165Transaction, commit, and rollback in MySQL 8: A Practical Guide
- 166MySQL 8: How to enable/disable remote connections
- 167JSON Data Type in MySQL 8: Tutorial & Examples
- 168Using JSON_EXTRACT() function in MySQL 8 (with examples)
- 169Working with JSON_ARRAY() function in MySQL 8
- 170Understanding JSON_OBJECT() function in MySQL 8
- 171Working with JSON_INSERT() function in MySQL 8
- 172Using JSON_REPLACE() Function in MySQL 8
- 173Making use of the JSON_REMOVE() function in MySQL 8
- 174MySQL 8: Using JSON_SET() function to insert or update a JSON document
- 175How to Prevent SQL Injection in MySQL 8: Explained with Examples
- 176Pivot tables in MySQL 8: A Practical Guide
- 177MySQL 8: Get the ID of the last inserted row
- 178MySQL 8: Get the latest row of each group with GROUP BY (3 approaches)
- 179Working with Self-Referencing and Self-Join in MySQL 8
- 180MySQL 8 Example: Storing Categories and Subcategories in a Single Table
- 181MySQL 8: How to Limit Results in Each Group
- 182MySQL 8: How to concatenate multiple rows into a single string
- 183MySQL 8: 5 ways to check if a row exists in a table.
- 184MySQL 8: 3 ways to remove duplicate rows from a table
- 1854 Ways to Select a Random Row in MySQL 8
- 186How to efficiently select N random rows in MySQL 8
- 187MySQL 8: Set a fallback value for NULL columns in SELECT statement
- 188How to check constraints of a table in MySQL 8
- 189MySQL 8: 4 Ways to Fill Missing Values in a Table
- 190The Right Way to Store an Array in MySQL 8
- 191Spatial Data Types in MySQL 8: A Practical Guide
- 192Spatial Functions in MySQL 8: A Comprehensive Guide
- 193MySQL 8: The right way to store location (latitude, longitude) in a table
- 194MySQL 8: Calculate the distance between two locations (latitude, longitude)
- 195MySQL 8: Set a custom starting value for AUTO_INCREMENT column
- 196How to import a CSV file into a table in MySQL 8
- 197MySQL 8: Searching Values in a String Separated by Comma
- 198MySQL 8: UPDATE on a SELECT query in multiple tables
- 199MySQL 8: Using string interpolation in a query (with examples)
- 200Best practices for naming tables and columns in MySQL 8
- 201MySQL 8: Get a list of dates between two given dates
- 202MySQL 8: How to select all columns except password column
- 203How to Define and Use Variables in MySQL 8
- 204Using IF…THEN Statements in MySQL 8
- 205Using CASE-WHEN statements in MySQL 8: A Practical Guide
- 206MySQL 8: Using WHERE, GROUP BY, and HAVING together in a query
- 207MySQL 8: How to query column names of a table
- 208MySQL 8: How to add a prefix to auto-incremented column values
- 209How to execute recursive SELECT queries in MySQL 8
- 210How to correctly save Emoji in MySQL 8
- 211How to use the WITH clause in MySQL 8: Tutorial & Examples
- 212MySQL 8: How to update multiple tables in a single query
- 213Using Hash Indexes in MySQL: A Practical Guide
- 214MySQL: Using R-Tree Indexes for Spatial Data Types
- 215Understanding Full-Text Indexes in MySQL
- 216Partial Indexes in MySQL: A Practical Guide