Wayground logo

Free Printable Worksheets

Font size

S
M
L
XL
Worksheets

SQL Query Quiz-2

Total questions: 19

Worksheet time: 10mins

Name
Class
Date
1.

To find the names of clients who placed at least one order, the correct query is:

a)

SELECT client_name FROM Clients WHERE client_no IN (SELECT client_no FROM Sales_order);

b)

SELECT client_name FROM Sales_order WHERE client_no IN Clients;

c)

SELECT * FROM Sales_order WHERE client_no = client_name;

d)

SELECT client_name FROM Clients JOIN Sales_order;

2.

Which query will return product_no and total quantity ordered for each product?

a)

SELECT product_no, COUNT(qty_ordered) FROM Sales_order_details GROUP BY product_no;

b)

SELECT product_no, SUM(qty_ordered) FROM Sales_order_details GROUP BY product_no;

c)

SELECT DISTINCT product_no, qty_ordered FROM Sales_order_details;

d)

SELECT product_no, SUM(qty_ordered) FROM Sales_order_details;

3.

To display clients who have not placed any orders, choose the correct query:

a)

SELECT * FROM Clients WHERE client_no NOT IN (SELECT client_no FROM Sales_order);

b)

SELECT * FROM Clients WHERE NOT client_no IN Sales_order;

c)

SELECT client_name FROM Clients MINUS Sales_order;

d)

SELECT client_name FROM Clients WHERE order_no=NULL;

4.

Which query gives total billed amount for orders in June, considering billed orders only?

a)

SELECT SUM(qty_orderedproduct_rate) FROM Sales_order_details WHERE billed='Y' AND TO_CHAR(order_date,'Mon')='JUN';

b)

SELECT SUM(qty_orderedproduct_rate) FROM Sales_order so, Sales_order_details sod WHERE so.order_no=sod.s_order_no AND billed='Y' AND UPPER(TO_CHAR(so.order_date,'Mon'))='JUN';

c)

SELECT SUM(product_rate) FROM Sales_order WHERE billed='Y' AND order_date='June';

d)

SELECT SUM(order_date) FROM Sales_order WHERE billed='Y' AND order_status='Fulfilled';

5.

To list product_no and description for products not sold, the correct subquery is:

a)

SELECT product_no, description FROM Products WHERE product_no NOT IN (SELECT product_no FROM Sales_order_details);

b)

SELECT product_no, description FROM Products WHERE NOT EXISTS Sales_order_details;

c)

SELECT product_no FROM Products WHERE product_no != ALL (SELECT product_no FROM Sales_order_details);

d)

SELECT product_no FROM Products MINUS Sales_order_details;

6.

You want to show client_no, order_no, and order_date, including clients who didn’t order anything. Which join should be used?

a)

INNER JOIN

b)

LEFT JOIN

c)

RIGHT JOIN

d)

CROSS JOIN

7.

Which query finds the highest-priced product sold?

a)

SELECT MAX(sell_price) FROM Products;

b)

SELECT product_name, sell_price FROM Products WHERE sell_price = (SELECT MAX(sell_price) FROM Products);

c)

SELECT TOP 1 product_name, sell_price FROM Products ORDER BY sell_price DESC;

d)

SELECT product_name FROM Products WHERE sell_price > ALL(SELECT sell_price FROM Products);

8.

To find customers who stay in either Baroda or Delhi but not in Indore, use:

a)

SELECT * FROM Customers WHERE cust_city IN ('Baroda','Delhi') AND cust_city<>'Indore';

b)

SELECT * FROM Customers WHERE cust_city IN ('Baroda','Delhi','Indore');

c)

SELECT * FROM Customers WHERE cust_city BETWEEN 'Baroda' AND 'Delhi';

d)

SELECT * FROM Customers WHERE cust_city NOT IN ('Baroda','Delhi');

9.

Which query finds salesman with salary greater than all salesman in Surat?

a)

SELECT salesman_name FROM Salesman WHERE sal_amt > ALL (SELECT sal_amt FROM Salesman WHERE city='Surat');

b)

SELECT salesman_name FROM Salesman WHERE sal_amt > ANY (SELECT sal_amt FROM Salesman WHERE city='Surat');

c)

SELECT salesman_name FROM Salesman WHERE city!='Surat';

d)

SELECT salesman_name FROM Salesman WHERE sal_amt > (SELECT MAX(sal_amt) FROM Salesman);

10.

To retrieve client_no and average quantity sold per client, only for clients whose total order value exceeds 15000, use:

a)

SELECT c.client_no, AVG(qty_ordered) FROM Clients c, Sales_order so, Sales_order_details sod WHERE c.client_no=so.client_no AND so.order_no=sod.s_order_no GROUP BY c.client_no HAVING SUM(qty_ordered*product_rate)>15000;

b)

SELECT c.client_no, AVG(qty_ordered) FROM Sales_order_details GROUP BY c.client_no;

c)

SELECT client_no, AVG(product_rate) FROM Sales_order HAVING product_rate>15000;

d)

SELECT client_no, AVG(qty_ordered) FROM Sales_order WHERE total>15000;

11.

To find clients who have ordered “jeans”, which query is correct?

a)

SELECT client_name FROM Clients WHERE product_name='jeans';

b)

SELECT client_name FROM Clients WHERE client_no IN (SELECT client_no FROM Sales_order WHERE order_no IN (SELECT s_order_no FROM Sales_order_details WHERE product_no IN (SELECT product_no FROM Products WHERE product_name='jeans')));

c)

SELECT client_name FROM Clients WHERE client_no IN (SELECT product_no FROM Products WHERE product_name='jeans');

d)

SELECT client_name FROM Products JOIN Clients WHERE product_name='jeans';

12.

Which query lists each salesman’s name and the number of clients handled?

a)

SELECT salesman_name, COUNT(client_no) FROM Clients GROUP BY salesman_name;

b)

SELECT s.salesman_name, COUNT(c.client_no) FROM Salesman s JOIN Sales_order o ON s.salesman_no=o.salesman_no JOIN Clients c ON o.client_no=c.client_no GROUP BY s.salesman_name;

c)

SELECT salesman_name, client_no FROM Salesman, Clients WHERE salesman_no=client_no;

d)

SELECT salesman_name, COUNT(*) FROM Salesman;

13.

Which query returns orders that are “In Progress” and billed (Y)?

a)

SELECT * FROM Sales_order WHERE order_status='In Progress' AND billed='Y';

b)

SELECT * FROM Sales_order WHERE order_status IN ('In Progress','Billed');

c)

SELECT * FROM Sales_order WHERE billed LIKE 'Y%';

d)

SELECT * FROM Sales_order HAVING order_status='In Progress';

14.

To find the second-highest selling price among products:

a)

SELECT MAX(sell_price) FROM Products WHERE sell_price < (SELECT MAX(sell_price) FROM Products);

b)

SELECT MAX(sell_price) FROM Products LIMIT 2;

c)

SELECT TOP 2 sell_price FROM Products;

d)

SELECT SECOND(sell_price) FROM Products;

15.

Which SQL command creates a view combining order and product details?

a)

CREATE VIEW OrderView AS SELECT order_no, product_no, qty_ordered FROM Sales_order_details;

b)

MAKE VIEW OrderView ON Sales_order_details;

c)

SELECT order_no, product_no INTO VIEW OrderView;

d)

DEFINE VIEW OrderView USING Sales_order_details;

16.

In PL/SQL, what will display the message “Hello DBMS”?

a)

dbms_output('Hello DBMS');

b)

dbms_output.display('Hello DBMS');

c)

dbms_output.put_line('Hello DBMS');

d)

show_output('Hello DBMS');

17.

To create a trigger preventing insertion of records on Sundays, use:

a)

CREATE TRIGGER trg_no_sunday BEFORE INSERT ON route_detail WHEN (TO_CHAR(SYSDATE,'DY')='SUN') RAISE_APPLICATION_ERROR(-20001,'No inserts on Sunday');

b)

CREATE TRIGGER route_check AFTER INSERT ON route_detail IF DAY='SUN';

c)

CREATE TRIGGER prevent_sunday INSERT ON route_detail WHERE TO_DATE='SUN';

d)

TRIGGER route_block BEFORE INSERT SUNDAY ON route_detail;

18.

To grant SELECT privilege on table Sales_order from user1 to user2:

a)

GRANT SELECT ON user1.Sales_order TO user2;

b)

ALLOW SELECT ON Sales_order TO user2;

c)

PERMIT user2 TO SELECT FROM Sales_order;

d)

GIVE SELECT PRIVILEGE Sales_order TO user2;

19.

After granting privileges, how do you revoke user2’s access to Sales_order_details?

a)

REVOKE SELECT ON user1.Sales_order_details FROM user2;

b)

REMOVE SELECT FROM user2 ON Sales_order_details;

c)

REVOKE ACCESS Sales_order_details FROM user2;

d)

DENY user2 Sales_order_details;