SQL Function 2
SQL Function 2
Which of the following functions returns the substring from a given string ?
1. MID
2. INSTR
3. SUBSTR
4. CHAR
Answer
MID, SUBSTR
Reason — The SUBSTRING()/SUBSTR() and MID() functions can be used to extract substrings from a
given string.
Question 6
Which of the following functions returns the position of a substring in a given string ?
1. MID
2. INSTR
3. SUBSTR
4. CHAR
Answer
INSTR
Reason — The INSTR() function searches for given second string into the given first string and returns the
position.
Question 7
Which of the following SQL functions does not belong to the Math functions category ?
1. POWER()
2. ROUND()
3. LENGTH()
4. MOD()
Answer
LENGTH()
Reason — LENGTH() is a text/string function that returns the length of a given string in bytes.
Question 9
To remove the leading and trailing space from data values in a column of MySQL Table, we use
1. Left()
2. Right()
3. Trim()
4. Ltrim()
Answer
Trim()
Reason — The TRIM() function removes leading and trailing spaces from a given string. It performs
combined functions of LTRIM() and RTRIM().
Question 16
The functions that work with one row at a time are called single row functions.
Question 2
The functions that work with multiple rows and return aggregated result, are called multiple rows functions.
Question 3
To get a substring of a string, other than Substr(), function mid() is also used.
Question 5
Assertion. Multi-row functions when applied on a column in a table, yield values which are not equal to
number of rows in the table.
Reason. Multiple-rows functions do not work with all the rows in the table.
1. Both A and R are true and R is the correct explanation of A.
2. Both A and R are true but R is not the correct explanation of A.
3. A is true but R is false.
4. A is false but R is true.
Answer
A is true but R is false.
Explanation
Multiple row functions when applied on a column in a table, work on multiple rows together and return a
summary result for a group of rows. Hence, the result values are not equal to number of rows in the table.
Question 3
Assertion. Multiple rows functions when applied on a column in a table, yield values which are not equal to
number of rows in the table.
Reason. The multi-row functions work with data of multiple rows at a time and return aggregated value.
1. Both A and R are true and R is the correct explanation of A.
2. Both A and R are true but R is not the correct explanation of A.
3. A is true but R is false.
4. A is false but R is true.
Answer
Both A and R are true and R is the correct explanation of A.
Explanation
Multiple row functions, when applied to a column in a table, yield values that are not equal to the number of
rows in the table. This is because these functions work on multiple rows together and return a summary
result or aggregated value for a group of rows.
Question 4
Assertion. The count(*) will yield a single value while round() will yield number of values equal to the
cardinality of the table.
Reason. The count (*) is a multiple-rows function and round() is a single-row function.
1. Both A and R are true and R is the correct explanation of A.
2. Both A and R are true but R is not the correct explanation of A.
3. A is true but R is false.
4. A is false but R is true.
Answer
Both A and R are true and R is the correct explanation of A.
Explanation
The count(*) function returns a single value, while round() will yield number of values equal to the
cardinality (rows) of the table. This is because count() operates on all rows in a table (or a group of rows),
producing a single result. In contrast, round() operates on each row individually, producing multiple
results depending on the cardinality of the table.
Type A: Short Answer Questions/Conceptual Questions
Question 1
Define a function.
Answer
A function is a special type of predefined command set that performs some operation and returns a single
value.
Question 2(i)
+-----------+
| Uppercase |
+-----------+
| LARGE |
+-----------+
Question 2(ii)
+----------------------+
| TRIM(' Bar One ') |
+----------------------+
| Bar One |
+----------------------+
Question 2(iii)
+---------------------------+
| MID('Quadratically', 5,6) |
+---------------------------+
| ratica |
+---------------------------+
Question 2(iv)
+-----------------------+
| DAYNAME('2024-05-20') |
+-----------------------+
| Monday |
+-----------------------+
Question 2(v)
+--------+
| Raised |
+--------+
| 16 |
+--------+
Question 3(i)
+------------------------------------------------+
| CONCAT(CONCAT('Inform', 'atics'), 'Practices') |
+------------------------------------------------+
| InformaticsPractices |
+------------------------------------------------+
Explanation
The CONCAT() function in SQL is used to concatenate two or more strings into a single string. In this query,
the inner CONCAT('Inform', 'atics') concatenates 'Inform' and 'atics' to produce 'Informatics'. The
outer CONCAT() then concatenates 'Informatics' with 'Practices' to produce 'InformaticsPractices'. Therefore,
the final output is 'InformaticsPractices'.
Question 3(ii)
+-------------------------------------------+
| LCASE('INFORMATICS PRACTICES CLASS 11TH') |
+-------------------------------------------+
| informatics practices class 11th |
+-------------------------------------------+
Explanation
The LCASE() function in SQL is used to convert all characters of a given string to lowercase. In the
query, LCASE('INFORMATICS PRACTICES CLASS 11TH') converts the entire string to 'informatics
practices class 11th'. Therefore, the output is 'informatics practices class 11th'.
Question 3(iii)
+---------------------------+
| UCASE('Computer studies') |
+---------------------------+
| COMPUTER STUDIES |
+---------------------------+
Explanation
The UCASE() function in SQL is used to convert all characters of a given string to uppercase. In this
query, UCASE('Computer studies') converts the entire string to 'COMPUTER STUDIES'. Therefore,
the output is 'COMPUTER STUDIES'.
Question 3(iv)
+--------------------------------------+
| CONCAT(LOWER('Class'), UPPER('xii')) |
+--------------------------------------+
| classXII |
+--------------------------------------+
Explanation
If Str = "INFORMATICS PRACTICES ...." and Str1 = "... FOR CLASS XI"
Write commands to print the output as 'informatics practices for class xi'
Answer
SELECT CONCAT(LCASE('INFORMATICS PRACTICES'), ' ', LCASE('FOR CLASS XI'));
Output
+--------------------------------------------------------------------+
| CONCAT(LCASE('INFORMATICS PRACTICES'), ' ', LCASE('FOR CLASS XI')) |
+--------------------------------------------------------------------+
| informatics practices for class xi |
+--------------------------------------------------------------------+
Question 5
+---------------------+
| SYSDATE() |
+---------------------+
| 2024-05-20 15:31:25 |
+---------------------+
Question 6
+----------------------+
| MONTHNAME(CURDATE()) |
+----------------------+
| May |
+----------------------+
Question 7
+-------------------------------+
| CURDATE |
+-------------------------------+
| Today, the date is 2024-05-20 |
+-------------------------------+
Question 8
Write command to print the day of the week of your Birthday in the year 1999.
Answer
SELECT DAYOFWEEK('1999-07-21');
Output
+-------------------------+
| DAYOFWEEK('1999-07-21') |
+-------------------------+
| 4 |
+-------------------------+
Question 9
+-------------+
| TIME(NOW()) |
+-------------+
| 15:40:57 |
+-------------+
Question 10
Consider two fields B_date, which stores the birth date and J_date, which stores the joining date of an
employee. Write commands to find out and display the approximate age of an employee as on today.
Answer
SELECT (YEAR(CURDATE()) - YEAR(B_DATE)) AS AGE FROM EMPLOYEE;
Question 11(i)
+--------------------+
| ROUND(7658.345, 2) |
+--------------------+
| 7658.35 |
+--------------------+
Explanation
In the query, the ROUND function is used to round a number to 2 decimal places, resulting in 7658.35.
Question 11(ii)
+------------------------+
| MOD(ROUND(13.9, 0), 3) |
+------------------------+
| 2 |
+------------------------+
Explanation
In the above query, 13.9 is first rounded to the nearest whole number (0 decimal places), resulting in 14
using the ROUND function. Then, the MOD function computes the remainder of 14 divided by 3, resulting in 2.
Therefore, the output of the query is 2.
Question 12
Write the SQL functions which will perform the following operations :
(i) To display the name of the month of the current date.
(ii) To remove spaces from the beginning and end of a string, "Panorama".
(iii) To display the name of the day e.g., Friday or Sunday from your date of birth, dob.
(iv) To display the starting position of your first name(fname) from your whole name (name).
(v) To compute the remainder of division between two numbers, n1 and n2.
Answer
(i)
SELECT MONTHNAME(CURDATE());
Output
+----------------------+
| MONTHNAME(CURDATE()) |
+----------------------+
| May |
+----------------------+
(ii)
SELECT TRIM(" Panorama ");
Output
+----------------------+
| TRIM(" Panorama ") |
+----------------------+
| Panorama |
+----------------------+
(iii)
SELECT DAYNAME('2000-07-22');
Output
+-----------------------+
| DAYNAME('2000-07-22') |
+-----------------------+
| Saturday |
+-----------------------+
(iv)
SELECT INSTR('Gupta Ashwini', 'Ashwini') AS StartingPosition;
Output
+------------------+
| StartingPosition |
+------------------+
| 7 |
+------------------+
(v)
SELECT MOD(n1, n2);
Question 13
+-------------------------------+
| SUBSTR('INDIA SHINING', 7, 7) |
+-------------------------------+
| SHINING |
+-------------------------------+
(ii)
SELECT INSTR('WELCOME WORLD', 'COME');
Output
+--------------------------------+
| INSTR('WELCOME WORLD', 'COME') |
+--------------------------------+
| 4 |
+--------------------------------+
(iii)
SELECT ROUND(23.78, 1);
Output
+-----------------+
| ROUND(23.78, 1) |
+-----------------+
| 23.8 |
+-----------------+
(iv)
SELECT MOD(100, 9);
Output
+-------------+
| MOD(100, 9) |
+-------------+
| 1 |
+-------------+
(v)
SELECT TRIM(userid) FROM USERS;
Type B: Short Answer Questions
Question 1
Based on the SQL table CAR_SALES, write suitable queries for the following :
NUMBER SEGMENT FUEL QT1 QT2
+--------+---------------+
| FUEL | Avg_Sales_QT1 |
+--------+---------------+
| Petrol | 31000.0000 |
| Diesel | 16750.0000 |
+--------+---------------+
(ii)
SELECT SEGMENT, MAX(QT2) AS HIGHEST_SALESFROM CAR_SALESGROUP BY SEGMENT;
Output
+-------------------+---------------+
| SEGMENT | HIGHEST_SALES |
+-------------------+---------------+
| Compact HatchBack | 70000 |
| MUV | 35000 |
| SUV | 54000 |
| Sedan | 10000 |
+-------------------+---------------+
(iii)
SELECT * FROM CAR_SALESORDER BY QT2 DESC;
Output
+--------+-------------------+--------+-------+-------+
| NUMBER | SEGMENT | FUEL | QT1 | QT2 |
+--------+-------------------+--------+-------+-------+
| 1 | Compact HatchBack | Petrol | 56000 | 70000 |
| 5 | SUV | Petrol | 27000 | 54000 |
| 2 | Compact HatchBack | Diesel | 34000 | 40000 |
| 3 | MUV | Petrol | 33000 | 35000 |
| 6 | SUV | Diesel | 18000 | 30000 |
| 4 | MUV | Diesel | 14000 | 15000 |
| 7 | Sedan | Petrol | 8000 | 10000 |
| 8 | Sedan | Diesel | 1000 | 5000 |
+--------+-------------------+--------+-------+-------+
Question 2
Predict the output of the following queries based on the table CAR_SALES given below :
NUMBER SEGMENT FUEL QT1 QT2
+------------------+
| LEFT(SEGMENT, 2) |
+------------------+
| Co |
| MU |
| SU |
| Se |
+------------------+
Explanation
In the query SELECT LEFT(SEGMENT, 2) FROM CAR_SALES WHERE FUEL= "PETROL";, the
function LEFT(SEGMENT, 2) takes the leftmost characters of each SEGMENT value, starting from the
first character, and returns two characters. The WHERE FUEL = 'PETROL' clause filters the rows to
include only those with 'PETROL' as the fuel type.
(ii) SELECT (QT2-QT1)/2 "AVG SALE" FROM CAR_SALES WHERE SEGMENT= "SUV";
Output
+------------+
| AVG SALE |
+------------+
| 13500.0000 |
| 6000.0000 |
+------------+
Explanation
The SQL query SELECT (QT2-QT1)/2 "AVG SALE" FROM CAR_SALES WHERE SEGMENT=
"SUV"; calculates the average sale for the "SUV" segment in the CAR_SALES table. It does this by
subtracting the first quarter sales (QT1) from the second quarter sales (QT2) for each record in the "SUV"
segment and then dividing the result by 2. The alias "AVG SALE" is assigned to the computed value.
(iii) SELECT SUM(QT1) "TOT SALE" FROM CAR_SALES WHERE FUEL= "DIESEL";
Output
+----------+
| TOT SALE |
+----------+
| 67000 |
+----------+
Explanation
The query SELECT SUM(QT1) "TOT SALE" FROM CAR_SALES WHERE FUEL= "DIESEL"; calculates
the total sales for the "DIESEL" fuel type in the CAR_SALES table. It does this by summing up the values
in the QT1 column for rows where the FUEL column is equal to "DIESEL". The alias "TOT SALE" is
assigned to the computed sum.
Question 3
+----------------+
| ROUND(AvgMark) |
+----------------+
| 78 |
| 73 |
| 75 |
+----------------+
(iii)
Output
+----------------------+
| CONCAT(Name, Stream) |
+----------------------+
| RubinaNonmedical |
| VikasNonmedical |
+----------------------+
(iv)
Output
+------------------+
| RIGHT(Stream, 2) |
+------------------+
| al |
| ce |
| ce |
| es |
| al |
| al |
| es |
| al |
| al |
| ce |
+------------------+
Question 4
+---------------------+
| UPPER(Title) |
+---------------------+
| COMPUTER STUDIES |
| DBASE DUMMIES |
| MASTERING FOXPRO |
| BASIC FOR BEGINNERS |
+---------------------+
Explanation
The SQL query SELECT UPPER(Title) FROM Library WHERE Price < 150; returns the uppercase
version of the Title column for all rows in the LIBRARY table where the Price column is less than 150.
(ii) SELECT CONCAT(Author, Type) FROM Library WHERE Qty < 3 ;
Output
+----------------------+
| CONCAT(Author, Type) |
+----------------------+
| FrenchFND |
| SeigalDBMS |
| CowartOS |
+----------------------+
Explanation
The query SELECT CONCAT(Author, Type) FROM Library WHERE Qty < 3; concatenates
the Author and Type columns using the CONCAT() function from the LIBRARY table for books that have
a quantity less than 3.
(iii) SELECT MOD(Qty, 4) FROM Library ;
Output
+-------------+
| MOD(Qty, 4) |
+-------------+
| 0 |
| 2 |
| 0 |
| 1 |
| 3 |
| 3 |
| 2 |
| 3 |
| 3 |
| 1 |
+-------------+
Explanation
The SQL query SELECT MOD(Qty, 4) FROM Library; calculates the remainder when each book's
quantity (Qty) in the LIBRARY table is divided by 4 using the MOD() function.
Question 5
+---------------------+
| NOW() |
+---------------------+
| 2024-05-21 12:20:03 |
+---------------------+
Question 6
CycleDate DATE
LastName VARCHAR(25),
FirstName VARCHAR(25),
Street VARCHAR(50),
City VARCHAR(25)
State CHAR(2),
Zip NUMBER,
Phone VARCHAR(12),
Ext VARCHAR(5)
Write a query to show the city of user with first name as 'MARK'.
Answer
SELECT CityFROM UsersWHERE FirstName = 'MARK';
Question 7
Show via query how many days remain until Christmas. Round fractional days up using the numeric
function ROUND.
Answer
SELECT ROUND(DAYOFYEAR('2024-12-25') - DAYOFYEAR(CURDATE())) AS
DaysUntilChristmas;
Output
+--------------------+
| DaysUntilChristmas |
+--------------------+
| 218 |
+--------------------+
Question 8
Write the SQL queries which will perform the following operations :
(i) To display the year from your Date of Admission which is '2023-05-15'.
(ii) To convert your email id [email protected] to lowercase.
(iii) To remove leading spaces from a string 'my country'.
(iv) To display current date.
(v) To display the value of 10 6.
Answer
(i)
SELECT YEAR('2023-05-15');
Output
+--------------------+
| YEAR('2023-05-15') |
+--------------------+
| 2023 |
+--------------------+
(ii)
SELECT LCASE('[email protected]');
Output
+----------------------+
| LCASE('[email protected]') |
+----------------------+
| [email protected] |
+----------------------+
(iii)
SELECT LTRIM(' my country');
Output
+---------------------+
| LTRIM('my country') |
+---------------------+
| my country |
+---------------------+
(iv)
SELECT CURDATE();
Output
+------------+
| CURDATE() |
+------------+
| 2024-05-21 |
+------------+
(v)
SELECT POWER(10, 6);
Output
+--------------+
| POWER(10, 6) |
+--------------+
| 1000000 |
+--------------+
Question 9
Write a query against the EMPL table to show the names of all employees concatenated with their jobtypes.
Answer
SELECT CONCAT(NAME, JOBTYPE)FROM EMPL;
Question 10
Write a query against the ADDRESS table to show the names (first name, last name) and phones of all
persons concatenated in following form :
TinaSeth23456789
MoradK.22211890
Table ADDRESS ( contains following eight columns)
LastName VARCHAR(25),
FirstName VARCHAR(25),
Street VARCHAR(50),
City VARCHAR(25)
State CHAR(2),
Zip NUMBER,
Phone VARCHAR(12),
Ext VARCHAR(5)
Answer
SELECT CONCAT(FIRSTNAME, LASTNAME, PHONE)FROM ADDRESS;
Question 11
Write a query against the ADDRESS table to select a list of names and phone numbers. The output should
match these requirements :
The name column should contain both the first and last names with a blank space between them. Use
the string concatenation.
The second column will contain the phone number.
Phone number should be in the format (999) 999-9999. Use the SUBSTR function and CONCAT.
Order the query by last name then first name.
Table ADDRESS ( contains following eight columns)
LastName VARCHAR(25),
FirstName VARCHAR(25),
Street VARCHAR(50),
City VARCHAR(25)
State CHAR(2),
Zip NUMBER,
Phone VARCHAR(12),
Ext VARCHAR(5)
Answer
SELECT CONCAT(FirstName, ' ', LastName) AS Name,
CONCAT('(', SUBSTR(Phone, 1, 3), ') ',
SUBSTR(Phone, 4, 3), '-',
SUBSTR(Phone, 7, 4)) AS Phone_NumberFROM ADDRESSORDER BY LastName, FirstName;