QUESTIONS & ANSWERS on MySQL
Q.1. What is MySQL?Ans:- It is an Open Source RDBMS Software. It is available free of cost.
Q.2. What is SQL?
Ans . SQL is Non-procedural universal data access language used to access and manipulate data stored in nearly all
the data bases available currently. SQL standards are defined by ANSI (American National Standards Institute). SQL
statements are used to retrieve and update data in a database. SQL works with database programs like MySQL, MS
Access, DB2, Informix, MS SQL Server, Oracle, Sybase, etc.
Q.3. Differentiate between DDL and DML?
Ans Data Definition Language (DDL): This is a category of SQL commands. All the commands which are used to
create, destroy, or restructure databases and tables come under this category. Examples of DDL commands are -
CREATE, DROP, ALTER. Data Manipulation Language (DML): This is a category of SQL commands. All the
commands which are used to manipulate data within tables come under this category. Examples of DML commands
are - INSERT, UPDATE, DELETE.
Q.4 What is a constraint?
Ans : A constraints is a condition or check application on a field or set of fields.
Example: NOT NULL (ensure that column con not have null value), CHECK (make sure that all
value satisfy certain criteria), UNIQUE (ensure that all values in a column are different) etc.
Q5 What are single row functions ?
Ans: Single Row Function work with a single row at a time. A single row function returns a result for
every row of a queried table.
Examples of Single row functions are Sqrt(), Concat(), Lcase(), Upper(), Day(), etc.
Q. 6 Compare CHAR and VARCHAR data types.
Ans. The CHAR data-type stores fixed length strings such that strings having length smaller than the
field size are padded on the right with spaces before being stored.
The VARCHAR on the other hand supports variable length strings and therefore stores strings
smaller than the field size without modification.
Q.7 What are the differences between DELETE and DROP commands of SQL?
Ans: DELETE is DML command while DROP is a DDL command. Delete is used to delete
rows from a table while DROP is used to remove the entire table from the database.
Q8 What do you understand by MySQL Server?
Ans:MySQL server listens for clients requests coming in over the network and accesses database contents
according to those requests and provides that to the client.
Q9 What do you understand by MySQL Client?
Ans:MySQL Clients are programs that connect to MySQL Server and issue queries in predefined format.
Q.10 Explain with the help of an example that why should a transaction be executed as a
whole or it should be not executed at all.
Ans: Suppose Raunak's account number is 3246 and his aunt's account number is 5135. In order
to process the cheque presented by Raunak, the following two SQL commands need to be
executed on the database maintained by the bank:
UPDATE Savings SET balance = balance - 2000
WHERE account_no = 5135;
UPDATE Savings SET balance = balance + 2000
WHERE account_no = 3246;
The above two Updates should both take place. If the first Update takes place and there is
a system failure, the first updation should be undone. Either both the updations should be done and if
it is not possible for both the updations to be done, then no updation should be done.
Query Based question & answers
1. The Pincode column of table 'Post' is given below-
.Pincode
10001
120012
300048
281001
i. SELECT Pincode from Post where Pincode LIKE " %1" ;
ii. SELECT Pincode from Post where Pincode LIKE " 0%" ;
Ans:
i) 110001 ii) No Output
2. A table "Animals" in a database has 3 columns and 10 records. What is the degree and
cardinality of this table?
Ans: Degree 3 and Cardinality=10
3. Answer the question based on the table VOTER given below:
Table : VOTER
Column Name Data type Size Constraints Description
V_id BIGINT 8 Primary key Voter identification
Vname VARCHAR 25 Not null Name of the voter
Age INT 3 Check>17 Age should not less than equal to 17
Address VARCHAR2 30 Address of voter
Phone VARCHAR 10 Phone number of the voter
(i) Write the command to delete all the rows of particular voter from the table voter where voter ID between
10 and 20.
Ans: Delete from VOTER where V_id between 10 and 20;
(ii) Delete the table physically.
Ans: Drop table VOTER;
4. . Write MySql command to create a furniture table including all constraint.
Table: Furniture
ITEMNO ITEMNAME TYPE DATEOFSTOCK PRICE DISCOUNTINT VARCHAR VARCHAR DATE INT INT
5 20 20 6 2
PRIMARY KEY NOT NULL DEFAULT
‘19/03/2010’
CREATE TABLE FURNITURE
( ITEMNO INT(5) PRIMARY KEY, ITEMNAME VARCHAR(20) NOT NULL,
TYPE VARCHAR(20),DATE_STOCK DATE DEFAULT '2012/03/19', PRICE INT(6), DISCOUNT INT(2) );
5. Consider a database LOANS with the following table:
Table: Loan_Accounts
AccNo Cust_Name Loan_Amount Instalments Int_Rate Start_Date Interest
1 R.K. Gupta 300000 36 12.00 19-07-2009
2 S.P. Sharma 500000 48 10.00 22-03-2008
3 K.P. Jain 300000 36 NULL 08-03-2007
4 M.P. Yadav 800000 60 10.00 06-12-2008
5 S.P. Sinha 200000 36 12.50 03-01-2010
6 P. Sharma 700000 60 12.50 05-06-2008
7 K.S. Dhall 500000 48 NULL 05-03-2008
Answer the following questions.
Create Database and use it
1. Create the database LOANS.
Mysql> Create Database LOANS;
2. Use the database LOANS.
Mysql> Use LOANS;
Create Table / Insert Into
3. Create the table Loan_Accounts and insert tuples in it.
Mysql>Create table Loan_Acc (AccNo int primary key,
Cust_Name varchar(30), Loan_Amount int, Installment int, Int_Rate number(5,3),
Start_Date date, Interest number(7,2));
Mysql> Insert into Loan_Acc values(1,'R.K. GUPTA',300000,36,12.0.'2009-07-19');
Simple Select
4. Display the details of all the loans.
Mysql> Select * from Loan_Acc;
5. Display the AccNo, Cust_Name, and Loan_Amount of all the loans.
Mysql> Select Acc_No,Cust_Name,Loan_Amount from Loan_Acc;
Conditional Select using Where Clause
6 Display the details of all the loans with less than 40 instalments.
Mysql> Select * from Loan_Acc where Instalment <40;
7. Display the AccNo and Loan_Amount of all the loans started before 01-04-2009.
Mysql> Select AccNo, Loan_Amount from Loan_Acc where Start_Date <'2009-04-01'; 8. Display the
Int_Rate of all the loans started after 01-04-2009.
Mysql> Select Int_Rate from Loan_Acc where Start_date>'2009-04-01';
Using NULL
8. Display the details of all the loans whose rate of interest is NULL.
Mysql> Select * from Loan_Acc where Int_rate is NULL;
9. Display the details of all the loans whose rate of interest is not NULL.
Mysql> Select * from Loan_Acc where Int_rate is not NULL;
Using DISTINCT Clause
10. Display the amounts of various loans from the table Loan_Accounts. A loan amount should appear only
once.
Mysql> Select DISTINCT Loan_Amount from Loan_Acc;
11. Display the number of instalments of various loans from the table Loan_Accounts. An instalment should
appear only once..
Mysql> Select DISTINCT Instalment from Loan_Acc;
Using Logical Operators (NOT, AND, OR)
12. Display the details of all the loans started after 31-12-2008 for which the number of instalments are
more than 36.
Mysql> Select * from Loan_Acc where Start_Date>'2008-12-31' and Instalment>36;
13. Display the Cust_Name and Loan_Amount for all the loans which do not have number
of instalments 36.
Mysql> Select Cust_Name, Loan_Amount from Loan_Acc where Instalment <>36;
14. Display the Cust_Name and Loan_Amount for all the loans for which the loan amount
is less than 500000 or int_rate is more than 12.
Mysql> Select Cust_Name, Loan_Amount from Loan_Acc where Loan_Amount <500000 or
Int_rate>12;
15. Display the details of all the loans which started in the year 2009.
Mysql> Select * from Loan_Acc where Year(Start_Date)=2009;
16. Display the details of all the loans whose Loan_Amount is in the range 400000 to
500000.
Mysql> Select * from Loan_Acc where Loan_Amount between 400000 and 50000;
17. Display the details of all the loans whose rate of interest is in the range 11% to 12%.
Mysql> Select * from Loan_Acc where Int_Rate between 11 and 12;
Using IN Operator
19. Display the Cust_Name and Loan_Amount for all the loans for which the number of
instalments are 24, 36, or 48. (Using IN operator)
Mysql> Select Cust_Name, Loan_Amount from Loan_Acc where Instalment IN(24,36,48); UR
Using LIKE Operator
20. Display the AccNo, Cust_Name, and Loan_Amount for all the loans for which the
Cust_Name ends with 'Sharma'.
Mysql> Select AccNo, Cust_name from Loan_Acc where
Cust_Name like '%Sharma';
21. Display the AccNo, Cust_Name, and Loan_Amount for all the loans for which the Cust_Name ends
with 'a'.
Mysql> Select AccNo, Cust_name,Loan_Amount from Loan_Acc where Cust_Name like '%a';
22. Display the AccNo, Cust_Name, and Loan_Amount for all the loans for which the
Cust_Name contains 'a'
Mysql> Select AccNo, Cust_name,Loan_Amount from Loan_Acc where
Cust_Name like '%a%';
23. Display the AccNo, Cust_Name, and Loan_Amount for all the loans for which the
Cust_Name does not contain 'P'.
Mysql> Select AccNo, Cust_name,Loan_Amount from Loan_Acc where
NOT (Cust_Name like '%P%');
24. Display the AccNo, Cust_Name, and Loan_Amount for all the loans for which the
Cust_Name contains 'a' as the second last character.
Mysql> Select AccNo, Cust_name,Loan_Amount from Loan_Acc where
Cust_Name like '%a_';
Using ORDER BY clause
25. Display the details of all the loans in the ascending order of their Loan_Amount.
Mysql> Select * from Loan_Acc ORDER BY Loan_Amount;
28. Display the details of all the loans in the descending order of their Start_Date.
Mysql> Select * from Loan_Acc ORDER BY Start_date DESC;
29. Display the details of all the loans in the ascending order of their Loan_Amount and within
Loan_Amount in the descending order of their Start_Date.
Mysql> Select * from Loan_Acc ORDER BY Loan_Amount, Start_Date DESC;
Using UPDATE, DELETE, ALTER TABLE
30. Put the interest rate 11.50% for all the loans for which interest rate is NULL.
Mysql> Update Loan_Acc SET Int_Rate =11.50 Where Int_Rate IS NULL:
31. Increase the interest rate by 0.5% for all the loans for which the loan amount is more than 400000.
Mysql> Update Loan_Acc SET Int_Rate= Int_Rate+0.5
Where Loan_Amount >400000;
32. For each loan replace Interest with (Loan_Amount*Int_Rate*Instalments) 12*100.
Mysql> Update Loan_Acc
SET Interest=(Loan_Amount*Int_Rate*Instalments) /12*100;
33. Delete the records of all the loans whose start date is before 2007.
Mysql> Delete From Loan_Acc Where Year(Start_Date)<2007;
34. Delete the records of all the loans of 'K.P. Jain'
Mysql> Delete From Loan_Acc Where Cust_Name='K.P.Jain';
35. Add another column Category of type CHAR(1) in the Loan table.
Mysql> Alter Table Loan_Acc ADD (Category CHAR(1) );
Find the Output of the following queries
36.SELECT cust_name, LENGTH(Cust_Name), LCASE(Cust_Name), UCASE(Cust_Name) FROM
Loan_Accounts WHERE Int_Rate < 11.00;
Cust_Name Length(Cust_Name) LCASE(Cust_Name) UCASE(Cust_Name)
S.P. Sharma 11 s.p. sharma S.P. SHARMA
M.P. Yadav 10 m.p. yadav M.P. YADAV
37.SELECT LEFT(Cust_Name, 3), Right(Cust_Name, 3), SUBSTR(Cust_Name, 1, 3) FROM
Loan_Accounts WHERE Int_Rate > 10.00;
LEFT(Cust_Name,3) Right(Cust_Name, 3) SUBSTR(Cust_Name, 1, 3)
R.K pta R.K
S.P nha S.P
P. R ma P.
38. SELECT RIGHT(Cust_Name, 3), SUBSTR(Cust_Name, 5) FROM Loan_Accounts;
RIGHT(Cust_Name, 3) SUBSTR(Cust_Name, 5)
pta Gupta
rma Sharma
ain Jain
dav Yadav
nha Sinha
rma harma
all Dhall
39. SELECT DAYOFMONTH(Start_Date) FROM Loan_Accounts;
DAYOFMONTH(Start_Date)
19
22
08
06
03
05
05