WORKSHEET SQL - Solution
WORKSHEET SQL - Solution
com
WORKSHEET WITH SOLUTION
SQL (CS & IP)
1 What are DDL and DML? Give one command of each.
Ans. DDL stands for Data Definition Language. DDL commands are used to manipulate the
database objects like database, table, views etc. In simple words DDL commands are used to
create table, changing the structure of table or dropping the table. Example: CREATE, ALTER
& DROP
DML stands for Data Manipulation Language. DML commands are used to manipulate the
information stored in a table. Like adding new records, changing existing records or deleting
the records. Example: INSERT, UPDATE & DELETE
2 Which command is used to add new column in existing table?
Ans. ALTER TABLE
3 Which clause is used to search for NULL values in any column?
Ans. IS NULL
4 Which command is used to see information like name of columns, data type, size etc. ?
om
Ans. DESCRIBE OR DESC
5 Which clause is used for pattern matching? What are the 2 main characters used for
matching the pattern?
Ans. LIKE
% (percent) and _ (underscore)
.c
6 Which clause is used to see the output of query in ascending or descending order?
Ans. ORDER BY
7 Which clause is used to eliminate the duplicate rows from output?
Ans. DISTINCT
8
Ans. ONE (1)
9
s ip
What is the minimum number of column required in MySQL to create table?
Page : 1
Click to visit: python4csip.com
16 The following query is producing an error. Identify the error and also write the correct query.
SELECT * FROM EMP ORDER BY NAME WHERE SALARY>=5000;
Ans. As per MySQL, ORDER BY must be the last clause in SQL QUERY, and in this query ORDER
BY is used before WHERE which is wrong, the correct query will be:
SELECT * FROM EMP WHERE SALARY>=5000 ORDER BY NAME;
17 If Table Sales contains 5 records and Raj executed the following queries; find out the output
of both the query.
(i) Select 100+200 from dual;
(ii) Select 100+200 from Sales;
Ans. (i) 300
(ii) 300
300
300
300
300
18 What is the difference between Equi-Join and Natural Join?
om
Ans. In Equi join we compare value of any column from two tables and it will return matching
rows. In Equi-join common column appears twice in output because we fetch using (*) not by
specifying column name. for e.g.
In Equi-join it is not mandatory to have same name for column to compare of both table
In natural join also the matching rows will return. In natural join column will appear only
.c
once in output. Then name of column must be same in both table if we are performing
natural join using the clause NATURAL JOIN.
19 Observe the given Table TEACHER and give the output of question (i) and (ii)
TEACHER_CODE TEACHER_NAME
T001
T002
T003
ANAND
AMIT
ANKIT
s DOJ
2001-01-30
2007-09-05
2007-09-20
ip
T004 BALBIR 2010-02-15
4c
T005 JASBIR 2011-01-20
T006 KULBIR 2008-07-11
(i) SELECT TEACHER_NAME,DOJ FROM TEACHER WHERE TEACHER_NAME LIKE „%I%‟
(ii) SELECT * FROM TEACHER WHERE DOJ LIKE „%-09-%‟;
on
Ans (i)
TEACHER_NAME DOJ
-------------------------------------------------------
AMIT 2007-09-05
th
ANKIT 2007-09-20
BALBIR 2010-02-15
JASBIR 2011-01-20
py
KULBIR 2008-07-11
(ii)
TEACHER_CODE TEACHER_NAME DOJ
----------------------------------------------------------------------
T002 AMIT 2007-09-05
T003 ANKIT 2007-09-20
20 Which SQL function is used to get the average value of any column?
Ans. AVG()
21 What is the difference between COUNT() and COUNT(*) function
Ans. COUNT() function will count number of values in any column excluding the NULLs
COUNT(*) will count number of rows in query output including NULLs
22 What is the full form of SQL?
Ans. Structured Query Language
Page : 2
Click to visit: python4csip.com
23 Query to delete all record of table without deleting the table:
a. DELETE TABLE TABLE_NAME
b. DELETE FROM TABLE_NAME
c. DROP TABLE TABLE_NAME
d. DELETE TABLE FROM TABLE_NAME
Ans. b. DELETE FROM TABLE_NAME
24 Identify the wrong statement about UPDATE command
a. If WHERE clause is missing all the record in table will be updated
b. Only one record can be updated at a time using WHERE clause
c. Multiple records can be updated at a time using WHERE clause
d. None of the above
Ans. b. Only one record can be updated at a time using WHERE clause
25 Identify the correct statement(s) to drop a column from table
a. DELETE COLUMN COLUMN_NAME
b. DROP COLUMN COLUMN_NAME
c. ALTER TABLE TABLE_NAME DROP COLUMN COLUMN_NAME
om
d. ALTER TABLE TABLE_NAME DROP COLUMN_NAME
Ans. c. ALTER TABLE TABLE_NAME DROP COLUMN COLUMN_NAME
d. ALTER TABLE TABLE_NAME DROP COLUMN_NAME
26 Suppose a table BOOK contain columns (BNO, BNAME, AUTHOR, PUBLISHER), Raj is
assigned a task to see the list of publishers, when he executed the query as:
.c
SELECT PUBLISHER FROM BOOK;
He noticed that the same publisher name is repeated in query output. What could be possible
solution to get publisher name uniquely? Rewrite the following query to fetch unique
Ans.
27
publisher names from table.
Solution is to use DISTINCT clause. ip
Correct Query : SELECT DISTINCT PUBLISHER FROM BOOK;
HOTS
s
Consider a database table T containing two columns X and Y each of type integer. After the
4c
creation of the table, one record (X=1, Y=1) is inserted in the table.
Let MX and MY denote the respective maximum values of X and Y among all records in the
table at any point in time. Using MX and MY, new records are inserted in the table 128 times
on
with X and Y values being MX+1, 2*MY+1 respectively. It may be noted that each time after
the insertion, values of MX and MY change. What will be the output of the following SQL
query after the steps mentioned above are carried out?
SELECT Y FROM T WHERE X = 7
th
A. 127
B. 255
C. 129
py
D. 257
Ans. A. 127
28 Which SQL function is used to find the highest and lowest value of numeric and date type
column?
Ans. MAX() and MIN()
29 What is the default order of sorting using ORDER BY?
Ans. Ascending
30 What is the difference between CHAR and VARCHAR?
Ans. CHAR is fixed length data type. For example if the column „name‟ if of CHAR(20) then all name
will occupy 20 bytes for each name irrespective of actual data.
VARCHAR is variable length data type i.e. it will occupy size according the actual length of
data
Page : 3
Click to visit: python4csip.com
31 Write SQL queries for (i) to (iv) and find outputs for SQL queries (v) to (viii) which are based on tables
TABLE: TRANSACT
TRNO ANO AMOUNT TYPE DOT
T001 101 2500 Withdraw 2017-12-21
T002 103 3000 Deposit 2017-06-01
T003 102 2000 Withdraw 2017-05-12
T004 103 1000 Deposit 2017-10-22
om
T005 102 12000 Deposit 2017-11-06
(i) To display details of all transactions of TYPE Withdraw from TRANSACT table
(ii) To display ANO and AMOUNT of all Deposit and Withdrawals done in month of
.c
„May‟ 2017 from table TRANSACT
(iii) To display first date of transaction (DOT) from table TRANSACT for Account having
ANO as 102
(iv)
(v)
(vi)
SELECT ANO, ANAME FROM ACCOUNT
s ip
To display ANO, ANAME, AMOUNT and DOT of those persons from ACCOUNT and
TRANSACT table who have done transaction less than or equal to 3000
AMOUNT<=3000;
(v)
ANO ANAME
py
-------------------------------------
103 Ali Reza
105 Simran Kaur
(vi)
ANO
----------
101
103
102
(vii)
(viii)
Page : 4
Click to visit: python4csip.com
32 Consider the following tables EMP and SALGRADE, write the query for (i) to (vi) and output
for (vii) to (x)
TABLE: EMPLOYEE
ECODE NAME DESIG SGRADE DOJ DOB
101 Vikrant Executive S03 2003-03-23 1980-01-13
102 Ravi Head-IT S02 2010-02-12 1987-07-22
103 John Cena Receptionist S03 2009-06-24 1983-02-24
105 Azhar Ansari GM S02 2009-08-11 1984-03-03
108 Priyam Sen CEO S01 2004-12-29 1982-01-19
TABLE: SALGRADE
SGRADE SALARY HRA
S01 56000 18000
S02 32000 12000
S03 24000 8000
(i) To display details of all employee in descending order of their DOJ
om
(ii) To display NAME AND DESIG of those employees whose sgrade is either „S02‟ or
„S03‟
(iii) To display NAME, DESIG, SGRADE of those employee who joined in the year 2009
(iv) To display all SGRADE, ANNUAL_SALARY from table SALGRADE [where
ANNUAL_SALARY = SALARY*12]
.c
(v) To display number of employee working in each SALGRADE from table EMPLOYEE
(vi) To display NAME, DESIG, SALARY, HRA from tables EMPLOYEE and SALGRADE
where SALARY is less than 50000
(vii)
(ix)
(x)
ip
Select MIN(DOJ), MAX(DOB) from employee;
(viii) Select SGrade,Salary+HRA from SalGrade where Sgrade=‟S02‟
Select count(distinct sgrade) from employee
s
Select sum(salary), avg(salary) from salgrade
Ans (i) SELECT * FROM EMPLOYEE ORDER BY DOJ DESC
4c
(ii) SELECT NAME,DESIG FROM EMPLOYEE WHERE SGRADE IN ('S02','S03')
OR
SELECT NAME,DESIG FROM EMPLOYEE WHERE SGRADE='S02' OR
SGRADE='S03'
on
Page : 5
Click to visit: python4csip.com
33
om
.c
s ip
4c
on
th
py
(i) To display details of all Trains which starts from New Delhi
(ii) To display PNR, PNAME, GENDER and AGE of all passengers whose AGE is below
50
(iii) To display total numbers of MALE and FEMALE passengers
(iv) To display records of all passengers travelling in trains whose TNO is 12015
(v) SELECT MAX(TRAVELDATE),MIN(TRAVELDATE) FROM PASSENGERS WHERE
GENDER=‟FEMALE‟;
(vi) SELECT END, COUNT(*) FROM TRAINS GROUP BY END HAVING COUNT(*)>1;
(vii) SELECT DISTINCT TRAVELDATE FROM PASSENGERS;
(viii) SELECT TNAME, PNAME FROM TRAINS T, PASSENGERS P WHERE T.TNO=P.TNO
AND AGE BETWEEN 50 AND 60
Page : 6
Click to visit: python4csip.com
Ans (i) SELECT * FROM TRAINS WHERE START='NEW DELHI'
(ii) SELECT PNR,PNAME,GENDER,AGE FROM PASSENGER WHERE AGE<50
(iii) SELECT GENDER,COUNT(*) FROM PASSENGERS GROUP BY GENDER
(iv) SELECT * FROM PASSENGERS WHERE TNO=12015
(v) MAX(TRAVELDATE) MIN(TRAVELDATE)
----------------------------------------------------------
2018-11-10 2018-05-09
(vi) END COUNT(*)
-------------------------------------------
HABIBGANJ 2
AMRITSAR JUNCTION 2
NEW DELHI 4
(vii) TRAVELDATE
-------------------
om
2018-12-25
2018-11-10
2018-10-12
2018-05-09
(viii) TNAME PNAME
.c
----------------------------------------------------------------------
AJMER SHATABDI P TIWARY
AJMER SHATABDI
AMRITSAR MAIL
AMRITSAR MAIL
SWARNA SHATABDI
s ip
S TIWARY
R N AGRAWAL
N S SINGH
S K SAXENA
SWARNA SHATABDI S SAXENA
4c
SWARNA SHATABDI J K SHARMA
SWARNA SHATABDI R SHARMA
34 Consider the table SHOPPE and ACCESSORIES, write the query for (i) to (v) and output for
on
(vi) to (x)
th
py
Page : 7
Click to visit: python4csip.com
om
(i) To display Name and Price of all the Accessories in descending order of their Price
(ii) To display Id and Sname of all the Shoppe location in „Nehru Place‟
(iii) To display Name, Minimum and Maximum Price of each Name from ACCESSORIES
table
(iv) To display Name, Price of all Accessories and their respective SName from table SHOPPE
.c
and ACCESSORIES where Price is 5000 or more.
(v) To display all details of accessories where name contains word „Board‟;
(vi) SELECT DISTINCT NAME FROM ACCESSORIES WHERE PRICE>5000;
ip
(vii) SELECT AREA,COUNT(*) FROM SHOPPE GROUP BY AREA;
(viii) SELECT AVG(PRICE), MAX(PRICE) FROM ACCESSORIES WHERE PRICE>=10000;
(ix) SELECT NAME, PRICE*.05 DISCOUNT FROM ACCESSORIES WHERE ID IN („S02‟,‟S03‟)
s
(x) SELECT * FROM SHOPPE S, ACCESSORIES A WHERE S.ID = A.ID AND PRICE>=10000;
Ans (i) SELECT NAME,PRICE FROM ACCESSORIES ORDER BY PRICE DESC
4c
(ii) SELECT ID,SNAME FROM SHOPPE WHERE AREA='NEHRU PLACE'
(iii) SELECT NAME,MIN(PRICE),MAX(PRICE) FROM ACCESSORIES GROUP BY NAME
(iv) SELECT NAME,PRICE,SNAME FROM SHOPPE S, ACCESSORIES A WHERE
S.ID=A.ID AND PRICE>=5000
on
LCD
(vii) AREA COUNT(*)
-------------------------------
CP 2
py
GK II 1
Nehru Place 2
(viii) AVG(PRICE) MAX(PRICE)
-------------------------------------
12500 13000
(ix) NAME DISCOUNT
-----------------------------------
Keyboard 25
Mother Board 650
Keyboard 20
Hard Disk 225
(x) ID SNAME AREA NO NAME PRICE ID
-------------------------------------------------------------------------------------------------------
S01 ABC Computronics CP A01 Mother board 12000 S01
S02 All Infotech media GK II A05 Mother board 13000 S02
Page : 8
Click to visit: python4csip.com
35 a) In a database there are two tables : Write MYSQL queries for (i) to (iii)
Table : Item
ICode IName Price Color VCode
S001 Mobile Phones 30000 Silver P01
S002 Refrigerator 20000 Cherry P02
S003 TV 45000 Black P03
S004 Washing Machine 12000 White P04
S005 Air Conditioner 50000 White P05
Table : Vendor
VCode VName
P01 Rahul
P02 Mukesh
om
P03 Rohan
P04 Kapil
(i) To display ICode, IName and VName of all the vendors, who manufacture “Refrigerator”.
(ii) To display IName, ICode, VName and price of all the products whose price >=23000
(iii) To display Vname and IName manufactured by vendor whose code is “P04”.
.c
Ans (i) Select ICode, IName,VName from Item I,Vendor V where I.Vcode=V.VCode and
IName='Refrigerator'
(ii) Select IName, ICode,VName from Item I,Vendor V where I.Vcode=V.VCode and
(iii)
Price>=23000
ip
Select VName,IName from Item I,Vendor V where I.Vcode=V.VCode and
I.VCode='P04'
s
b) What will be the output of the following-
1. Select Round(1449.58,-2);
IP ONLY
4c
2. Select Round(7.5789,3);
3. Select Substr(“ Hello Rahul”,3,8);
4. Select Dayofmonth(“2020-10-24”);
And 1. 1400
on
2. 7.579
3. elloh Rah
4. 24
36 In a database there are two tables : Write MYSQL queries for (i) to (vi)
th
Table : Doctors
DocID DocName Department NoofOpdDays
101 J K Mishra Ortho 3
py
Page : 9
Click to visit: python4csip.com
Ans. (i) select PatNo,PatName,DocName from Doctors D,Patients P where D.DocID =
P.DocID
(ii) select * from Doctors where NoofOpdDays>3
(iii) Select DocID,DocName,Department,PatName from Doctor D, Patient P where
D.DocId = P.DocId and DocId in (101,103)
(iv) select count(distinct Department) from Patient
37 Given the Table “BANK” with records, Give the output of given queries –
NAME
SACHIN
RAMESH
DINESH
VIKAASH
RAJU
AMRITESH
i. Select * from BANK where Name Like „%ES%‟;
om
ii. Select * from BANK where Name Like „_ _ _ _SH‟
Ans i. RAMESH
DINESH
AMRITESH
ii. RAMESH
.c
DINESH
38 Rajesh a database developer at StoreIndia wants to search the record of those employees
39 Considering the Visitor table data, write the query for (i) to (iv) and output for (v) to (viii)
VisitorID VisitorName Gender ComingFrom AmountPaid
1 Suman F Kanpur 2500
2 Indu F Lucknow 3000
th
Page : 10
Click to visit: python4csip.com
Ans. (i) Select VisitorName,ComingFrom from Visitor where Gender='F' and
AmountPaid>3000
(ii) Select distinct ComingFrom from Visitor
(iii) insert into visitor values(7,'Shilpa','F','Lucknow',3000)
(iv) Select * from visitor order by AmountPaid desc
(v) VisitorName
----------------
Vikram
Rajesh
Suresh
Dinesh
(vi) AmountPaid+200
----------------------
3800
(vii) Sum(AmountPaid)
-----------------------
om
9500
(viii) Count(VisitorName)
-------------------------
1
40 Write a MySQL query to create the given table (MEMBER)
.c
Column name Datatype Size
ID Char 6
Name Varchar 30
Ans.
41
Fee
DOJ
s Int
Date ip 10
42 (i) Sanjay was deleting the record of empno=1234, but at the time of execution of command he
forgot to add condition empno=1234, what will be the effect of delete command in this case?
(ii) Sameer is executing the query to fetch the records of employee who are getting salary
between 4000 to 8000, he executed the query as -
th
(ii) Select * from employee where salary between 40000 and 80000
43 Write MYSQL command to see the list of tables in current database
Ans. Show tables
44 Sunil decides to delete a PhoneNo column from a MySQL Table (student) after insert the data
into the table. Write the command to delete that particular column in student table.
Ans. ALTER TABLE student drop PhoneNo
45 A table Employee contains 5 Rows and 4 Columns and another table PROJECT contains 5
Rows and 3 Columns. How many rows and columns will be there if we obtain Cartesian
product of these two tables?
Ans. Rows = 5 x 5 = 25
Columns = 4 + 3 = 7
46 Ranjeet created a table named student, He wants to see those students whose name ending
with p. He wrote a query- SELECT * FROM student WHERE name=”p%”;
But the query is not producing the desired output, Help Ranjeet to run the query by removing
the errors from the query and rewriting it.
Page : 11
Click to visit: python4csip.com
Ans SELECT * FROM student WHERE name LIE ”p%”;
47 Consider the following EMPLOYEE table write MYSQL command for (i) to (iv) and Outputs for
(v) to (viii)
EMPNO ENAME DEPT SALARY COMM
1 ANKIT HR 20000 1200
2 SUJEET ACCOUNTS 24000
3 VIJAY HR 28000 2000
4 NITIN SALES 18000 3000
5 VIKRAM SALES 22000 1700
(i) To display the name of employees starting from „V‟ in ascending order of their salary
(ii) To display the details of all SALES dept employee who are earning salary more than
20000
(iii) To count distinct department from the table
(iv) Change the salary of NITIN from 18000 to 20000
(v) To insert a new row in the table Employee
om
„6‟, „SUMIT‟,‟HR‟, 40000,2000
(vi) Select AVG(COMM) from Employee
(vii) Select ENAME,DEPT from Employee where Dept in(„HR‟,‟ACCOUNTS‟)
(viii) Select ENAME, SALARY+100 NEWSAL from Employee
Ans. (i) select ename from employee where ename like 'V%' order by salary;
.c
(ii) Select * from employee where dept='Sales' and salary>20000;
(iii) select count(distinct dept) from employee;
(iv) update employee set salary=20000 where ename='NITIN';
(v)
(vi) ip
insert into employee values(6,'SUMIT','HR',40000,2000)
1980 (including record inserted in (v))
(vii) ENAME DEPT
s
--------------------------
ANKIT HR
4c
SUJEET ACCOUNTS
VIJAY HR
(viii) ENAME NEWSAL
----------------------------------
on
ANKIT 20100
SUJEET 24100
VIJAY 28100
NITIN 20100
th
VIKRAM 22100
SUMIT 40100
48 Write MYSQL command to create the table ENQUIRY including its constraints
py
Table : ENQUIRY
Name of column Type Size Constraints
visitorID Decimal 4 Primary key
visitorName Varchar 20
visitorMobile Char 10 Not null
visitorAddress Varchar 40
Ans. create table ENQUIRY(visitorID decimal(4) primary key, visitorName varchar(20) visitorMobile
char(10) not null, visitorAddress varchar(40))
49 In a database there are two tables :
Table : Doctor
DocID DocName Specialist
D001 Vimal Jha Cardio
D002 Sunil Bawra Ortho
D003 Mukul Barman Surgeon
D004 Nitesh Solanki Skin
Page : 12
Click to visit: python4csip.com
Table : Patient
PatID PatName DateAdm DocID
P001 Kapil 2013-10-10 D002
P002 Susheel 2013-09-01 D001
P003 Wasim 2013-10-15 D002
P004 Sanjay 2013-10-12 D003
P005 Jai 2013-10-17 D003
om
(ii) select DocName,PatName from Doctor D, patient P where D.DocID =P.DocID and
DateAdm<'2013-10-15'
50 What will be output of following Mysql Queries –
(i) Select Round(55.698,2)
(ii) Select mid(„examination‟,4,4)
.c
(iii) Select Round(4562.778,-2)
IP ONLY
(iv) Select length(trim(„ exam „))
Ans. (i)
(ii)
(iii)
55.70
mina
4600
s ip
(iv) 4
4c
51 1. Write Query for the following requirements – (STUDENT)
Id NAME STIPEND SUBJECT AVERAGE DIV
1 KARAN 400 PHYSICS 68 1
on
Page : 13
Click to visit: python4csip.com
Ans. 1. Select Name,Subject,Advisor from Student S,Guide G where S.subject = G.subject;
2. Select Name,Advisor from Student S,Guide G where S.subject = G.subject and
S.subject in ('Physics','Chemistry')
52 DIFFERENCE BETWEEN
1. HAVING AND WHERE
2. % AND _
3. CHAR AND VARCHAR
Ans. (1)
HAVING – this clause is used with GROUP BY to filter the group of records. We can use
aggregate functions with HAVING.
WHERE – this clause is used to apply condition on all the rows of table. We cannot use
aggregate functions with WHERE.
(2) % is a wildcard character used with LIKE and it is used for substituting multiple
characters while matching the pattern. Matching text can be of any length
om
_ (underscore) is also a wildcard character used with LIKE but it substitute only single
character at given position while matching the pattern. Length will be fixed.
.c
a. Select Substring(„mysql application‟,3,3)
b. Select instr(„mysql application‟,‟p‟);
c. Select round(7756.452,1); IP ONLY
Ans.
d. Select round(59999.99,-2);
a. sql
b. 8
s ip
e. Select right(„mysql application‟,3);
c. 7756.5
4c
d. 60000
e. ion
on
th
py
Page : 14