MySQL Interview Questions
A list of top frequently asked MySQL interview questions and answers are given below.
1) What is MySQL?
MySQL is a multithreaded, multi-user SQL database management system which has more than 11 million installations. This is the world's second most popular and widely used open source database. It is interesting how MySQL name was given to this query language. The term My is coined by the name of the daughter of co-founder Michael Widenius`s daughter, and SQL is the short form of Structured Query Language. Using MySQL is free of cost for the developer, but enterprises have to pay a license fee to Oracle.
Formerly MySQL was initially owned by a for-profit firm MySQL AB, then Sun Microsystems bought it and then Oracle bought Sun Microsystems, so Oracle currently owns MySQL.
MySQL is an Oracle-supported Relational Database Management System (RDBMS) which is based on structured query language. MySQL supports wide ranges of operating systems most famous of those include Windows, Linux & UNIX. Although it is possible to develop a wide range of application with MySQL, it is only used for web applications & online publishing. It is a fundamental part of an open source enterprise known as Lamp.
What is Lamp?
Lamp is a platform used for web development. Lamp uses Linux, Apache, MySQL, and PHP as an operating system, web server, database & object-oriented scripting language respectively. And hence abbreviated as LAMP.
2) In which language MySQL has been written?
MySQL is written in C and C++, and its SQL parser is written in yacc.
3) What are the technical specifications of MySQL?
MySQL has the following technical specifications -
4) What is the difference between MySQL and SQL?
SQL is known as the standard query language. It is used to interact with the database like MySQL. MySQL is a database that stores various types of data and keeps it safe.
A PHP script is required to store and retrieve the values inside the database.
SQL is a computer language, whereas MySQL is a software or an application
SQL is used for the creation of database management systems whereas MySQL is used to enable data handling, storing, deleting and modifying data
5) What is the difference between database and table?
There is a major difference between a database and a table. The differences are as follows:
6) Why do we use the MySQL database server?
First of all MYSQL server is free to use for developers and a small fee for enterprises.
MySQL server is open source.
The community of MySQL is tremendous and supportive hence any help regarding MySQL is resolved as soon as possible.
MySQL has very stable versions available, as MySQL has been in the market since a long time so all bugs arising in the previous builds have been continuously removed and a very stable version is provided after every update.
The MySQL database server is very fast, reliable and easy to use. You can easily use and modify the software. MySQL software can be downloaded free of cost from the internet.
7) What are the different tables present in MySQL?
There are many tables that remain present by default. But, MyISAM is the default database engine used in MySQL. There are five types of tables that are present:
8) What is the difference between CHAR and VARCHAR?
A list of differences between CHAR and VARCHAR:
9) What is the difference between TRUNCATE and DELETE in MySQL?
TRUNCATE is a DDL command, DELETE is a DML command.
It is not possible to use Where command with TRUNCATE but you can use it with DELETE command.
TRUNCATE cannot be used with indexed views whereas DELETE can be used with indexed views.
The DELETE command is used to delete data from a table. It only deletes the rows of data from the table while, truncate is very dangerous command and should be used carefully because it deletes every row permanently from a table.
10) How many Triggers are possible in MySQL?
There are only six Triggers allowed to use in MySQL database.
11) What is heap table?
Tables that are present in memory is known as HEAP tables. When you create a heap table in MySQL, you should need to specify the TYPE as HEAP. These tables are commonly known as memory tables. They are used for high-speed storage on a temporary basis. They do not allow BLOB or TEXT fields.
12) What is BLOB and TEXT in MySQL?
BLOB is an acronym stands for a large binary object. It is used to hold a variable amount of data.
There are four types of BLOB.
The differences among all these are the maximum length of values they can hold.
TEXT is a case-insensitive BLOB. TEXT values are non-binary strings (character string). They have a character set, and values are stored, and compared based on the collation of the character set.
There are four types of TEXT.
13) What is a trigger in MySQL?
A trigger is a set of codes that executes in response to some events.
14) What is the difference between heap table and temporary table?
Heap tables are found in memory. They are used for high-speed storage on a temporary basis. They do not allow BLOB or TEXT fields.
Heap tables do not support AUTO_INCREMENT.
Indexes should be NOT NULL.
The temporary tables are used to keep the transient data. Sometimes it is beneficial in cases to hold temporary data. The Temporary table is deleted after the current client session terminates.
The heap tables are shared among clients while temporary tables are not shared.
Heap tables are just another storage engine, while for temporary tables you need a special privilege (create temporary table).
15) What is the difference between FLOAT and DOUBLE?
FLOAT stores floating point numbers with accuracy up to 8 places and allocates 4 bytes, on the other hand DOUBLE stores floating point numbers with accuracy up to 18 places and allocates 8 bytes.
16) What are the advantages of MySQL in comparison to Oracle?
17) What are the disadvantages of MySQL?
18) What is the difference between CHAR and VARCHAR?
19) What is the difference between MySQL_connect and MySQL_pconnect?
20) What does "i_am_a_dummy flag" do in MySQL?
The "i_am_a_dummy flag" enables MySQL engine to refuse any UPDATE or DELETE statement to execute if the WHERE clause is not present. Hence it can save the programmer from deleting the entire table my mistake if he does not use WHERE clause.
21) How to get the current date in MySQL?
To get current date, use the following syntax:
22) What are the security alerts while using MySQL?
Install antivirus and configure the operating system's firewall.
Never use the MySQL Server as the UNIX root user.
Change root username and password Restrict or disable remote access.
23) How to change a password for an existing user via Mysqladmin?
Mysqladmin -u root -p password "newpassword".
24) What is the difference between Unix timestamps and MySQL timestamps?
Actually both Unix timestamp and MySQL timestamp are stored as 32-bit integers but MySQL timestamp is represented in readable format of YYYY-MM-DD HH:MM:SS format.
25) How to display Nth highest salary from a table in a MySQL query?
Let us take a table named the employee.
To find Nth highest salary is:
select distinct(salary)from employee order by salary desc limit n-1,1
if you want to find 3rd largest salary:
select distinct(salary)from employee order by salary desc limit 2,1
26) What is MySQL default port number?
MySQL default port number is 3306.
27) What is REGEXP?
REGEXP is a pattern match using a regular expression. A Regular expression is a powerful way of specifying a pattern for a sophisticated search.
Basically it is a special text string for describing a search pattern. To understand it better you can think of a situation of daily life when you search for .txt files to list all text files in the file manager. The regex equivalent for .txt will be .*\.txt.
28) How many columns can you create for an index?
You can create maximum of 16 indexed columns for a standard table.
29) What is the difference between NOW() and CURRENT_DATE()?
NOW() command is used to show current year, month, date with hours, minutes and seconds while CURRENT_DATE() shows the current year with month and date only.
30) What is the query to display top 20 rows?
SELECT * FROM table_name LIMIT 0,20;
31) Write a query to display current date and time?
If you want to display current date and time, use -
If you want to display current date only, use:
32) What is save point in MySQL?
A defined point in any transaction is known as savepoint.
SAVEPOINT is a statement in MySQL which is used to set a named transaction save point with a name of identifier.
33) What is SQLyog?
SQLyog program is the most popular GUI tool for admin. It is the most popular MySQL manager and admin tool. It combines the features of MySQL administrator, phpMyadmin and others MySQL front ends and MySQL GUI tools.
34) How do you backup a database in MySQl?
It is easy to back up data with phpMyAdmin. Select the database you want to backup by clicking the database name in the left-hand navigation bar. Then click the export button and make sure that all tables are highlighted that you want to back up. Then specify the option you want under export and save the output.
35) What are the different column comparison operators in MySQL?
The =, <>, <=, <, >=, >, <<, >>, < = >, AND, OR or LIKE operator are the comparison operators in MySQL. These operators are generally used with SELECT statement.
36) Write a query to count the number of rows of a table in MySQL.
SELECT COUNT user_id FROM users;
37) Write a query to retrieve a hundred books starting from 20th.
SELECT book_title FROM books LIMIT 20, 100;
38) Write a query to select all teams that won either 1, 3, 5 or 7 games.
SELECT team_name FROM team WHERE team_won IN (1, 3, 5, 7);
39) What is the default port of MySQL Server?
The default port of MySQL Server is 3306.
40) How is MyISAM table stored?
MyISAM table is stored on disk in three formats.
41) What is the usage of ENUMs in MySQL?
ENUMs are string objects, by defining ENUMs we allow the end user to give correct input as in case the user provides an input which is not part of the ENUM defined data then the query won't execute and an error message will be displayed which says "Wrong Query". For instance suppose we want to take the gender of the user as an input so we specify ENUM('male', 'female', 'other') and hence whenever the user tries to input any string any other than these three it results in an error.
ENUMs are used to limit the possible values that go in the table:
CREATE TABLE months (month ENUM 'January', 'February', 'March'); INSERT months VALUES ('April').
42) What are the advantages of MyISAM over InnoDB?
MyISAM follows a conservative approach to disk space management and stores each MyISAM table in a separate file, which can be further compresses, if required. On the other hand, InnoDB stores the tables in tablespace. Its further optimization is difficult.
43) What are the differences between MySQL_fetch_array(), MySQL_fetch_object(), MySQL_fetch_row()?
Mysql_fetch_object is used to retrieve the result from the database as objects while mysql_fetch_array returns result as an array. This will allow access to the data by the field names.
Using mysql_fetch_object field can be accessed as $result->name.
Using mysql_fetch_array field can be accessed as $result->[name].
Using mysql_fetch_row($result) where $result is the result resource returned from a successful query executed using the mysql_query() function.
44) What is the difference between mysql_connect and mysql_pconnect?
Mysql_connect() is used to open a new connection to the database while mysql_pconnect() is used to open a persistent connection to the database. It specifies that each time the page is loaded mysql_pconnect() does not open the database.
45) What is the use of mysql_close()?
Mysql_close() cannot be used to close the persistent connection. Though it can be used to close connection opened by mysql_connect().
46) What is MySQL data directory?
MySQL data directory is a place where MySQL stores its data. Each subdirectory under this data dictionary represents a MySQL database. By default the information managed my MySQL = server mysqld is stored in data directory.
47) How do you determine the location of MySQL data directory?
The default location of MySQL data directory in windows is C:\mysql\data or C:\Program Files\MySQL\MySQL Server 5.0 \data.
48) What is the usage of regular expressions in MySQL?
In MySQL, regular expressions are used in queries for searching a pattern in a string.
The following statement retrieves all rows where column employee_name contains the text 1000 (example salary):
49) What is the usage of "i-am-a-dummy" flag in MySQL?
In MySQL, the "i-am-a-dummy" flag makes the MySQL engine to deny the UPDATE and DELETE commands unless the WHERE clause is present.
50) Which command is used to view the content of the table in MySQL?
The SELECT command is used to view the content of the table in MySQL.
51) Explain Access Control Lists.
An ACL is a list of permissions which are associated with an object. MySQL keeps the Access Control Lists cached in memory and whenever the user tries to authenticate or execute a command, MySQL checks the permission required for the object and if the permissions are available then execution completes successfully.
52) What is InnoDB?
InnoDB is a storage database for SQL. The ACID-transactions are also provided in addition InnoDB also includes support for the foreign key. Initially owned by InnobaseOY now belongs to Oracle Corporation after it acquired the latter since 2005.
53. What is ISAM?
It is a system for file management developed by IBM which allows records to access sequentially or even randomly.
54. How can we run batch mode in MySQL?
To perform batch mode in MySQL we use the following command:
55. What are federated tables?
Federated tables are tables which points to the tables located on other databases on some other server.
56. What is the difference between primary key and candidate key?
To identify each row of a table, a primary key is used. For a table, there exists only one primary key.
A candidate key is a column or a set of columns which can be used to uniquely identify any record in the database without having to reference any other data.
57. What are the drivers in MySQL?
Following are the drivers available in MySQL:
58. What Is DDL, DML, And DCL?
Majorly SQL commands can be divided into three categories i.e. DDL, DML & DCL. Data Definition Language (DDL) deals with all the database schemas, and it defines how the data should reside in the database. Commands like CreateTABLE and ALTER TABLE are part of DDL.
Data Manipulative Language (DML) deals with operations and manipulations on the data the commands in DML are Insert, Select etc.
Data Control Languages (DCL) are related to the Grant and permissions. In short, the authorization to access any part of database is defined by these.