MySQL is a Free open-source Relational Database Management System(RDMS) that stores data in a structured tabular format using rows and columns. It uses Structured Query Language (SQL) for accessing, managing, and manipulating databases. It was originally developed by MySQL AB, a Swedish company, and is now owned by Oracle Corporation. It’s known for its high performance, reliability, and ease of use, making it one of the most popular databases in the world.
Here, we’ll cover 50+ MySQL Interview Questions with answers that are asked in Data Analyst/SQL Developer Interviews at MAANG and other high-paying companies. Whether you are a fresher or an experienced professional with 1, 5, or 10+ years of experience, this article gives you all the confidence you need to ace your next interview.
MySQL Interview Questions And Answers for Freshers
1. What is MySQL and How does it differ from other relational databases?
MySQL is an open-source relational database management system (RDBMS) that is widely used for managing structured data. It utilizes SQL (Structured Query Language) for querying and managing data. MySQL is known for its reliability, scalability, and performance, making it a popular choice for various applications
2. How to create a database in MySQL?
To create a database in MySQL, we can use the CREATE DATABASE statement followed by the name we want to give to our database. For example:
CREATE DATABASE mydatabase;
3. Difference between CHAR and VARCHAR data types.
- CHAR: Fixed-length character data type where the storage size is predefined. Trailing spaces are padded to reach the defined length.
- VARCHAR: Variable-length character data type where the storage size depends on the actual data length. No padding of spaces is done.
4. Explain the differences between SQL and MySQL?
SQL
|
MySQL
|
It is a structured query language that manages the relational database management system.
|
It is a relational database management system that uses SQL.
|
It is not an open-source language.
|
MySQL is an open-source platform. It allows access to anyone.
|
SQL supports XML and user defined functions.
|
It doesn’t support XML and any user defined functions
|
SQL can be implemented in various RDBMS such as PostgreSQL, SQLite, Microsoft SQL Server, and others.
|
MySQL is a specific implementation of an RDBMS that uses SQL for querying and managing databases.
|
SQL itself is not a product and doesn’t have a license. It’s a standard language.
|
MySQL is open-source and available under the GNU General Public License (GPL).
|
5. What is the MySQL server’s default port?
3306 is MySQL server‘s default port.
6. How can we learn batch mode in MySQL?
Below is the syntax used to run batch mode.
mysql <batch-file>;
mysq <batch-file> mysql.out
7. How many different tables are present in MySQL?
There are 5 types of tables present in MySQL.
- Heap table
- merge table
- MyISAM table
- INNO DB table
- ISAM table
8. What are the differences between CHAR and VARCHAR data types in MySQL?
- Storage and retrieval have been different for CHAR and VARCHAR.
- Column length is fixed in CHAR but VARCHAR length is variable.
- CHAR is faster than VARCHAR.
- CHAR datatype can hold a maximum of 255 characters while VARCHAR can store up to 4000 characters.
9. What is Difference between CHAR_LENGTH and LENGTH?
LENGTH is byte count whereas CHAR_LENGTH is character count. The numbers are the same for Latin characters but different for Unicode and other encodings.
Syntax of CHAR_LENGTH:
SELECT CHAR_LENGTH(column_name) FROM table_name;
Syntax of LENGTH:
SELECT LENGTH(column_name) FROM table_name;
10. What do you understand by % and _ in the like statement?
‘_’ corresponds to only one character but ‘%’ corresponds to zero or more characters in the LIKE statement.
11. How many index columns can be created in a table?
There are 16 indexed columns can be created in a table.
12. What are string types available for columns?
There are six string types available for the column.
13. Explain the main difference between FLOAT and DOUBLE?
- FLOAT stored floating point number with 8 place accuracy. The size of FLOAT is 4 bytes.
- DOUBLE also stored floating point numbers with 18 place accuracy. The size of DOUBLE is 8 bytes.
14. Explain the differences between BLOB and TEXT.
BLOB:
A BLOB is a large object in binary form that can hold a variable amount of data. Sorting and comparing in BLOB values are case-sensitive.
There are four types of BLOB.
- TINYBLOB
- BLOB
- MEDIUMBLOB
- LONGBLOB
TEXT:
Sorting and comparison are performed in case-insensitive for TEXT values. we can also say a TEXT is case-insensitive BLOB.
There are four types of TEXT.
- TINYTEXT
- TEXT
- MEDIUMTEXT
- LONGTEXT
15. Explain the difference between having and where clause in MySQL.
- WHERE statement is used to filter rows but HAVING statement is used to filter groups.
- GROUP BY is not used with WHERE. HAVING clause is used with GROUP BY.
16. Explain REGEXP?
REGEXP is a pattern match where the pattern is matched anywhere in the search value.
For more detail you refer to our MySQL | Regular expressions Article.
17. How can we add a column in MySQL?
A column is a series of table cells that store a value for table’s each row. we can add column by using ALTER TABLE statement.
ALTER TABLE tab_name
ADD COLUMN col_name col_definition [FIRST|AFTER exist_col];
18. How to delete columns in MySQL?
We can remove columns in MySQL by using ALTER TABLE statement.
Syntax:
ALTER TABLE table_name DROP COLUMN column1, column2….;  Â
19. How to delete a table in MySQL?
We can delete a table by using DROP TABLE statement. This statement deletes complete data of table.
DROP TABLE table-name;
20. How are mysql_fetch_array() and mysql_fetch_object() different from each another?
mysql_fetch_array() Gets a result row as a related array or a regular array from database. mysql_fetch_object gets a result row as an object from the database.
21. How to get the top 10 rows?
The following query will be used to get top 10 rows.
SELECT * FROM table_name LIMIT 0,10;
22. How does NOW() differ from CURRENT_DATE()?
current year, month, and date with hours, minutes, and seconds is shown by using NOW() command while CURRENT_DATE shows current year current month, and current date.
Syntax:
SELECT NOW();
SELECT CURRENT_DATE();
23. What is the use of the ‘DISTINCT’ keyword in MySQL?
the DISTINCT keyword allows for the removal of all duplicate records and the retrieval of unique records. The DISTINCT keyword is used with the SELECT statement.
Syntax:
SELECT DISTINCT colu1, colum2..
FROM table_name;
24. Which storage engines are used in MySQL?
Storage engines are also called table types. Data is stored in a file using multiple techniques.
Below are some techniques.
- Locking Level
- Indexing
- Storage mechanism
- Capabilities and functions
25. How to create a table in MySQL?
The CREAT TABLE command will be used to create a table in MySQL.
Syntax:
CREATE TABLE ‘Employee’ (‘Employee_Name’ VARCHAR(128), ‘Employee_ID’ VARCHAR(128), ‘Employee_Salary’ VARCHAR(16), ‘Designation’ CHAR(4))Â ;
26. How to insert data in MySQL table?
We can add data to a table using the INSERT INTO statement .
Syntax:
INSERT INTO table_name ( field1, field2, field3 ) Â
VALUES  ( value1, value2, value3 ); Â
27. Write a statement to find duplicate rows In the MySQL table?
The below statement is used to find duplicate rows.
SELECT Table_Name, Category
FROM Product
GROUP BY Name, Category
HAVING COUNT(id) > 1;
28. What types of relationships are used in MySQL?
There are three types of relationships used in MySQL.
One-to-one: Elements with a one to one relationship can be included as columns in the table.
One-to-many:Â One to many or many to one relationships both are same. It will occur when one row in a table is related to multiple rows in different table.
Many-to-many:Â Many rows in a table are related to many rows in different table is called many to many relationship.
29. How to insert Date in MySQL?
We can use INSERT statement to insert date in MySQL table. MySQL default date format is YYYY-MM-DD. Automatic MySQL consist many data types to store dates.
- DATE
- DATETIME
- TIMESTAMP
- YEAR
Syntax:
INSERT INTO table_name (column_name, column_date) VALUES (‘DATE: Manual Date’, ‘2023-5-20’);  Â
30. What is join? Tell different join in MySQL.
Joins are used to connect two or more tables. It returns only same values in all tables.
There are four different ways to join MySQL tables.
- Inner Join
- left Join
- Right Join
- Full Join
31. What is a primary key? How to drop the primary key in MySQL?
A primary key in MySQL is a single field or a group of fields that are used to uniquely identify each record in a table. A primary key cannot be null or empty. ALTER TABLE statement is used to delete a primary key from a table.
Syntax:
ALTER TABLE table_name  DROP PRIMARY KEY;   Â
32. What is a heap table in MySQL?
A heap table is usually used for temporary and fast temporary storage.
- BLOB or TEXT fields are not permitted in the heap table.
- comparison operator like =, <,>, = >,=< can be used only.
- Heap table didn’t support the AUTO_INCREMENT command.
- Indexes should be NOT NULL in the heap table.
33. What is the main difference between the primary key and the candidate key?
The primary key uniquely identified each row of a table. only one primary key is available for a table.
For mor detail you can see: Difference between Primary and Candidate Key
34. What is the difference between DELETE and TRUNCATE commands in MySQL?
DELETE Command is used to delete rows from the table depending on given the condition. TRUNCATE command is used to DELETE all rows from the table. DELETE command is a Data Manipulation Language command. TRUNCATE command is a Data Definition Language command.
For More detail you can see : Difference between DELETE and TRUNCATE
35. What is InnoDB?
A SQL storage database is called InnoDB database. The InnoDB offers ACID transactions, row-level locking, and foreign key support. InnoDB is owned by Oracle Corporation.
36. What is the difference between UNION and UNION ALL in MySQL?
During combining the results of more than one SELECT statement, the UNION operator deletes duplicate rows between the various SELECT statements. The UNION ALL also combines the result set of more than one SELECT statement, but it does not delete duplicate rows.
37. What is a ‘timestamp’ in MySQL?
In MySQL, When a row is added to or updated in a table, a data type “timestamp” automatically records the time.
38. What is the use of ENUMs in MySQL?
ENUM is a string object that can be used when creating tables to specify a set of predefined values.
CREATE table size(name ENUM(‘Small’, ‘Medium’, ‘Large’);
For more detail refer to those article on Enumerator (Enum) in MySQL
39. How can you control max size of heap in MySQL?
MySQL config variable max_heap_table_size can be used to control the max size of heap.
Syntax:
SET max_heap_table_size = M
40. What is a view? How to create a view?
A database object that has no value is called view. Rows and columns exist in a view. A view is virtual table. it is created by combining one or more tables. The difference of a view and a table is that views are definition that build on other tables. If the underlying table changes, the View will also reflect those same changes.
The below syntax is used to create a view.
Syntax:
CREATE VIEW view_name AS   Â
SELECT columns   Â
FROM tables   Â
[WHEREÂ conditions];Â Â Â Â
Every MyISAM table is stored on disk.Â
There are three storage formats can be used .
- The .frm file can be used to store table definition.
- The .MYD( MYData) extension can be used for data files.
- The .MYI(MYIndex) extension can be used to Index files.
42. How can we save images in MySQL?
In MySQL, Blobs can be used to store images. All database images are first converted into blobs then saved and then they will be added to the database, and finally, it will later be stored on the disk.
43. What are trigger and how many TRIGGERS are available in MySQL table?
A trigger is a procedural code in a database. Triggers are automatically triggered when specific events occur on a particular table. During column updating triggers are invoked automatically.
SIX triggers are available in MySQL table.
- BEFORE INSERT
- AFTER INSERT
- BEFORE UPDATE
- AFTER UPDATE
- BEFORE DELETE
- AFTER DELETE
For more detail you can see: Different types of MySQL Triggers (with examples) – GeeksforGeeks
44. What are the different characteristics of MySQL MyISAM Static and MyISAM Dynamic?
- Width of all fields is fixed in MyISAM Static table whereas width of all fields is not fixed in MyISAM Dynamic. In MyISAM Dynamic table width will be like TEXT, BOLD, etc.
- In case of corruption MyISAM static table is easy to store.
MySQL Interview Questions For Experienced
45. What are Access Control Lists?
A list of permissions known as an Access Control List is connected to an object. It is MySQL server security model helps in troubleshooting issues like users being unable to connect. MySQL holds the ACL’s cached in memory. ACL’s also called grant tables. MySQL verifies the authentication data and permissions against the ACLs. It predetermined order whenever a user tries to log in or execute a command.
46. What is Normalization and list the different types of normalization?
Normalization is used to avoid duplication and redundancy. it is a process of organizing data. There are many normal forms of normalization. which are also called successive levels. The first three regular forms are sufficient.
- First Normal Form (1NF): There are no repeating groups within rows.
- Second Normal form(2NF): Value of every supporting column depending on the whole primary key.
- Third Normal Form(3NF): It depends only on the primary key and no other value of non-key column.
47. What are various ways to create an index?
There are many options to create an index as below:
- T-SQL statements can be used to create an index.
- The SQL Server Management Studio is available for use. we can use this to browse to the table where the index will be created, and then right-click on the Indexes node. We must select the New Index option over here.
- We can identify the index indirectly by specifying the PRIMARY KEY and the UNIQUE constraint in the CREATE TABLE or ALTER TABLE statement.
48. What are a clustered index and a non clustered index?
Cluster Index: An index type used to arrange data in a table is called a clustered index. The table’s data are stored in a specific order based on the clustered index.
Non Cluster Index: A non-clustered index is also a type of index used to organize data in a table. The table’s data are not stored in a specific order based on the non clustered index.
For more details, Check our latest article on Difference between Clustered and Non-clustered index.
49. How to validate emails using a single query?
We can use the regular expressions function (REGEXP_LIKE) to validate emails. Below is the example of validate emails using a single query.
SELECT
Email
FROM
Vehicle
where NOT REGEXP_LIKE(Email, ‘[A-Z0-9._%+-]+@[A-Z0-9.-]+.[A-Z]{2,4}’, ‘i’);
For detail you can check our latest article on Regular expressions (Regexp).
50. How can you handle the –secure-file-priv in MySQL?
The MySQL Server is restricted from loading directories using the LOAD DATA INFILE command by the -secure-file-priv option. Use the SHOW VARIABLES LIKE “secure_file_priv” command to view the directory that has been configured.
There are two options to handle as below.
- Either transfer your file to the directory that secure-file-priv specifies.
- Or you can turn off secure-file-priv. This must be removed at the beginning and cannot be disabled later.
Conclusion
In conclusion, preparing well for MySQL interview questions is crucial for data analysts, data engineers, and business analysts. This guide provides important MySQL questions and answers to help you get ready for your interviews.
By studying these, you can show that you are skilled and ready for roles that require strong MySQL knowledge. This preparation will help you stand out in your field.