Dear Readers, Welcome to MySQL Interview Questions have been designed specially to get you acquainted with the nature of questions you may encounter during your Job interview for the subject of MySQL. These MySQL Questions are very important for campus placement test and job interviews. As per my experience good interviewers hardly plan to ask any particular questions during your Job interview and these model questions are asked in the online technical test and interview of many Medical Industry.
MySQL is an open source DBMS which is built, supported and distributed by MySQL AB (now acquired by Oracle).
MySQL database software is a client or server system which includes:
MySQL database server is reliable, fast and very easy to use. This software can be downloaded as freeware and can be downloaded from the internet.
HEAP tables are present in memory and they are used for high speed storage on temporary basis.
• BLOB or TEXT fields are not allowed
• Only comparison operators can be used =, <,>, = >,=<
• AUTO_INCREMENT is not supported by HEAP tables
• Indexes should be NOT NULL
The default port for MySQL server is 3306.
MySQL is open source software which is available at any time and has no cost involved.
MySQL is portable
GUI with command prompt.
Administration is supported using MySQL Query Browser
Following are differences for FLOAT and DOUBLE:
• Floating point numbers are stored in FLOAT with eight place accuracy and it has four bytes.
• Floating point numbers are stored in DOUBLE with accuracy of 18 places and it has eight bytes.
CHAR_LENGTH is character count whereas the LENGTH is byte count. The numbers are same for Latin characters but they are different for Unicode and other encodings.
ENUMs and SETs are used to represent powers of two because of storage optimizations.
ENUM is a string object used to specify set of predefined values and that can be used during table creation.
1 Create table size(name ENUM('Small', 'Medium','Large');
REGEXP is a pattern match in which matches pattern anywhere in the search value.
Following are the differences between CHAR and VARCHAR:
The string types are:
1 SELECT VERSION ();
is used to get the current version of MySQL.
Storage engines are called table types and data is stored in files using various techniques.
Technique involves:
Following are the drivers available in MySQL:
TIMESTAMP column is updated with Zero when the table is created. UPDATE CURRENT_TIMESTAMP modifier updates the timestamp field to current time whenever there is a change in other fields of the table.
Every row of a table is identified uniquely by primary key. There is only one primary key for a table.
Primary Key is also a candidate key. By common convention, candidate key can be designated as primary and which can be used for any foreign key references.
We can login through this command:
# [mysql dir]/bin/mysql -h hostname -u <UserName> -p <password>
It compress the MyISAM tables, which reduces their disk or memory usage.
Maximum size of Heal table can be controlled by MySQL config variable called max_heap_table_size.
In MyISAM static all the fields will have fixed width. The Dynamic MyISAM table will have fields like TEXT, BLOB, etc. to accommodate the data types with various lengths.
MyISAM Static would be easier to restore in case of corruption.
Federated tables which allow access to the tables located on other databases on other servers.
Timestamp field gets the current timestamp whenever the row gets altered.
It stops incrementing. Any further inserts are going to produce an error, since the key has been used already.
LAST_INSERT_ID will return the last value assigned by Auto_increment and it is not required to specify the table name.
Indexes are defined for the table by:
SHOW INDEX FROM <tablename>;
% corresponds to 0 or more characters, _ is exactly one character in the LIKE statement.
UNIX_TIMESTAMP is the command which converts from MySQL timestamp to Unix timestamp
FROM_UNIXTIME is the command which converts from Unix timestamp to MySQL timestamp.
The = , <>, <=, <, >=, >,<<,>>, <=>, AND, OR, or LIKE operators are used in column comparisons in SELECT statements.
Number of rows can be obtained by
1 SELECT COUNT (user_id) FROM users;
No.
1 SELECT VERSION(), CURRENT_DATE;
2 SeLect version(), current_date;
3 seleCt vErSiOn(), current_DATE;
All these examples are same. It is not case sensitive.
LIKE and REGEXP operators are used to express with ^ and %.
1 SELECT * FROM employee WHERE emp_name REGEXP "^b";
2 SELECT * FROM employee WHERE emp_name LIKE "%b";
A BLOB is a binary large object that can hold a variable amount of data.
There are four types of BLOB:
They all differ only in the maximum length of the values they can hold.
A TEXT is a case-insensitive BLOB. The four TEXT types:
They all correspond to the four BLOB types and have the same maximum lengths and storage requirements.
The only difference between BLOB and TEXT types is that sorting and comparison is performed in case-sensitive for BLOB values and case-insensitive for TEXT values.
Following are the differences between mysql_fetch_array and mysql_fetch_object:
mysql_fetch_array() - Returns a result row as an associated array or a regular array from database.
mysql_fetch_object - Returns a result row as object from database.
Following commands are used to run in batch mode:
1 mysql ;
2 mysql mysql.out
The ‘.frm’ file stores the table definition
The data file has a ‘.MYD’ (MYData) extension
The index file has a ‘.MYI’ (MYIndex) extension
Total 5 types of tables are present:
MyISAM is the default storage engine as of MySQL .
ISAM is abbreviated as Indexed Sequential Access Method.It was developed by IBM to store and retrieve data on secondary storage systems like tapes.
lnnoDB is a transaction safe storage engine developed by Innobase Oy which is a Oracle Corporation now.
41. How MySQL Optimizes DISTINCT?
DISTINCT is converted to a GROUP BY on all columns and it will be combined with ORDER BY clause.
1 SELECT DISTINCT t1.a FROM t1,t2 where t1.a=t2.a;
If you want to enter characters as HEX numbers, you can enter HEX numbers with single quotes and a prefix of (X), or just prefix HEX numbers with (Ox).
A HEX number string will be automatically converted into a character string, if the expression context is a string.
In MySql, top 50 rows are displayed by using this following query:
1 SELECT * FROM
2 LIMIT 0,50;
Maximum of 16 indexed columns can be created for any standard table.
NOW () command is used to show current year,month,date with hours,minutes and seconds.
CURRENT_DATE() shows current year,month and date only.
Following objects are created using CREATE statement:
SIX triggers are allowed in MySql table. They are as follows:
Following are Non-Standard string types:
CONCAT(A, B) – Concatenates two string values to create a single string output. Often used to combine two or more fields into one single field.
FORMAT(X, D) – Formats the number X to D significant digits.
CURRDATE(), CURRTIME() – Returns the current date or time.
NOW() – Returns the current date and time as one value.
MONTH(), DAY(), YEAR(), WEEK(), WEEKDAY() – Extracts the given data from a date value.
HOUR(), MINUTE(), SECOND() – Extracts the given data from a time value.
DATEDIFF(A, B) – Determines the difference between two dates and it is commonly used to calculate age
SUBTIMES(A, B) – Determines the difference between two times.
FROMDAYS(INT) – Converts an integer number of days into a date value.
An ACL (Access Control List) is a list of permissions that is associated with an object. This list is the basis for MySQL server’s security model and it helps in troubleshooting problems like users not being able to connect.
MySQL keeps the ACLs (also called grant tables) cached in memory. When a user tries to authenticate or run a command, MySQL checks the authentication information and permissions against the ACLs, in a predetermined order.
By below method if password is pass and user name is root
# [mysql dir]/bin/mysql -h hostname -u root -p pass
mysql> create database databasename;
mysql> use databasename;
mysql> show tables;
mysql> show columns from tablename;
mysql> SELECT * FROM tablename WHERE fieldname = “abcd”;
mysql> SELECT * FROM tablename WHERE name = “sonia” AND phone_number = ‘9899000000’;
mysql> SELECT * FROM tablename WHERE name != “sonia” AND phone_number = ‘9899000000’ order by phone_number;
mysql> SELECT * FROM tablename WHERE name like “sonia%” AND phone_number = ‘9899000000’;
mysql> SELECT * FROM tablename WHERE name like “sonia%” AND phone_number = ‘9899000000’ limit 1,5;
mysql> SELECT * FROM tablename WHERE rec RLIKE “^r”;
mysql> SELECT DISTINCT columnname FROM tablename;
mysql> SELECT col1,col2 FROM tablename ORDER BY col2 DESC;
mysql> SELECT col1,col2 FROM tablename ORDER BY col2 ASC;
mysql> SELECT COUNT(*) FROM tablename;
mysql> select lookup.illustrationid, lookup.personid,person.birthday from lookup left join person on lookup.personid=person.personid=statement to join birthday in person table with primary illustration id.
# mysql -u root -p
mysql> use mysql;
mysql> INSERT INTO user (Host,User,Password) VALUES(‘%’,’username’,PASSWORD(‘password’));
mysql> flush privileges;
# [mysql dir]/bin/mysqladmin -u username -h hostname.blah.org -p password ‘new-password’
# mysql -u root -p
mysql> SET PASSWORD FOR ‘user’@’hostname’ = PASSWORD(‘passwordhere’);
mysql> flush privileges;
# /etc/init.d/mysql stop
# mysqld_safe –skip-grant-tables &
# mysql -u root
mysql> use mysql;
mysql> update user set password=PASSWORD(“newrootpassword”) where User=’root’;
mysql> flush privileges;
mysql> quit
# /etc/init.d/mysql stop
# /etc/init.d/mysql start
# mysqladmin -u root password newpassword.