0% found this document useful (0 votes)
23 views28 pages

Use Org

The document contains a series of SQL queries designed to manipulate and retrieve data from a 'WORKER' table and a 'CEREALS' table. It includes queries for fetching specific columns, filtering records, aggregating data, and performing operations such as joins and subqueries. The queries cover a wide range of SQL functionalities, including string manipulation, date handling, and data summarization.

Uploaded by

Sakata369
Copyright
© © All Rights Reserved
We take content rights seriously. If you suspect this is your content, claim it here.
Available Formats
Download as PDF, TXT or read online on Scribd
0% found this document useful (0 votes)
23 views28 pages

Use Org

The document contains a series of SQL queries designed to manipulate and retrieve data from a 'WORKER' table and a 'CEREALS' table. It includes queries for fetching specific columns, filtering records, aggregating data, and performing operations such as joins and subqueries. The queries cover a wide range of SQL functionalities, including string manipulation, date handling, and data summarization.

Uploaded by

Sakata369
Copyright
© © All Rights Reserved
We take content rights seriously. If you suspect this is your content, claim it here.
Available Formats
Download as PDF, TXT or read online on Scribd
You are on page 1/ 28

# Q-1.

WRITE AN SQL QUERY TO FETCH “FIRST_NAME” FROM WORKER TABLE USING THE
ALIAS NAME AS <WORKER_NAME>.

SELECT FIRST_NAME WORKER_NAME FROM WORKER;

# Q-2. WRITE AN SQL QUERY TO FETCH “FIRST_NAME” FROM WORKER TABLE IN UPPER CASE.

SELECT UPPER(FIRST_NAME) FROM WORKER;

# Q-3. WRITE AN SQL QUERY TO FETCH UNIQUE VALUES OF DEPARTMENT FROM WORKER
TABLE.

SELECT DISTINCT(DEPARTMENT) FROM WORKER;

# Q-4. WRITE AN SQL QUERY TO PRINT THE FIRST THREE CHARACTERS OF FIRST_NAME FROM
WORKER TABLE.

SELECT SUBSTRING(FIRST_NAME,1,3) FROM WORKER;

# Q-5. WRITE AN SQL QUERY TO FIND THE POSITION OF THE ALPHABET (‘A’) IN THE FIRST
NAME COLUMN ‘AMITABH’ FROM WORKER TABLE.

SELECT POSITION('A' IN 'AMITABH');

SELECT INSTR(FIRST_NAME, 'A') FROM WORKER WHERE FIRST_NAME='AMITABH';

# Q-6. WRITE AN SQL QUERY TO PRINT THE FIRST_NAME FROM WORKER TABLE AFTER
REMOVING WHITE SPACES FROM THE RIGHT SIDE.

SELECT RTRIM(FIRST_NAME) WORKER_NAME FROM WORKER;

# Q-7. WRITE AN SQL QUERY TO PRINT THE DEPARTMENT FROM WORKER TABLE AFTER
REMOVING WHITE SPACES FROM THE LEFT SIDE.

SELECT LTRIM(DEPARTMENT) FROM WORKER;

# Q-8. WRITE AN SQL QUERY THAT FETCHES THE UNIQUE VALUES OF DEPARTMENT FROM
WORKER TABLE AND PRINTS ITS LENGTH.

SELECT DISTINCT(DEPARTMENT),LENGTH((DEPARTMENT)) FROM WORKER;


# Q-9. WRITE AN SQL QUERY TO PRINT THE FIRST_NAME FROM WORKER TABLE AFTER
REPLACING ‘A’ WITH ‘A’.

SELECT FIRST_NAME,REPLACE(FIRST_NAME,'A','A') FROM WORKER;

# Q-10. WRITE AN SQL QUERY TO PRINT THE FIRST_NAME AND LAST_NAME FROM WORKER
TABLE INTO A SINGLE COLUMN COMPLETE_NAME.

-- A SPACE CHAR SHOULD SEPARATE THEM.

SELECT CONCAT(FIRST_NAME,' ',LAST_NAME) COMPLETE_NAME FROM WORKER;

# Q-11. WRITE AN SQL QUERY TO PRINT ALL WORKER DETAILS FROM THE WORKER TABLE
ORDER BY FIRST_NAME ASCENDING.

SELECT * FROM WORKER ORDER BY FIRST_NAME ASC;

# Q-12. WRITE AN SQL QUERY TO PRINT ALL WORKER DETAILS FROM THE WORKER TABLE
ORDER BY FIRST_NAME ASCENDING AND DEPARTMENT DESCENDING.

SELECT * FROM WORKER ORDER BY FIRST_NAME ASC, DEPARTMENT DESC;

# Q-13. WRITE AN SQL QUERY TO PRINT DETAILS FOR WORKERS WITH THE FIRST NAME AS
“VIPUL” AND “SATISH” FROM WORKER TABLE.

SELECT * FROM WORKER WHERE FIRST_NAME IN('VIPUL', 'SATISH');

# Q-14. WRITE AN SQL QUERY TO PRINT DETAILS OF WORKERS EXCLUDING FIRST NAMES,
“VIPUL” AND “SATISH” FROM WORKER TABLE.

SELECT * FROM WORKER WHERE FIRST_NAME NOT IN ('VIPUL','SATISH');

# Q-15. WRITE AN SQL QUERY TO PRINT DETAILS OF WORKERS WITH DEPARTMENT NAME AS
“ADMIN”.

SELECT * FROM WORKER WHERE DEPARTMENT='ADMIN';

# Q-16. WRITE AN SQL QUERY TO PRINT DETAILS OF THE WORKERS WHOSE FIRST_NAME
CONTAINS ‘A’.

SELECT * FROM WORKER WHERE FIRST_NAME LIKE '%A%';

SELECT * FROM WORKER WHERE FIRST_NAME REGEXP 'A';


# Q-17. WRITE AN SQL QUERY TO PRINT DETAILS OF THE WORKERS WHOSE FIRST_NAME
ENDS WITH ‘A’.

SELECT * FROM WORKER WHERE FIRST_NAME LIKE '%A';

SELECT * FROM WORKER WHERE FIRST_NAME REGEXP 'A$';

# Q-18. WRITE AN SQL QUERY TO PRINT DETAILS OF THE WORKERS WHOSE FIRST_NAME
ENDS WITH ‘H’ AND CONTAINS SIX ALPHABETS.

SELECT * FROM WORKER WHERE FIRST_NAME LIKE '______H';

# Q-19. WRITE AN SQL QUERY TO PRINT DETAILS OF THE WORKERS WHOSE SALARY LIES
BETWEEN 100000 AND 500000.

SELECT * FROM WORKER WHERE SALARY BETWEEN 100000 AND 500000;

# Q-20. WRITE AN SQL QUERY TO PRINT DETAILS OF THE WORKERS WHO HAVE JOINED IN
FEB’2014.

SELECT * FROM WORKER WHERE JOINING_DATE LIKE '2014-02%';

SELECT * FROM WORKER WHERE YEAR(JOINING_DATE)='2014' AND MONTH(JOINING_DATE)=2;


# THIS IS MORE PROFITIONAL

# Q-21. WRITE AN SQL QUERY TO FETCH THE COUNT OF EMPLOYEES WORKING IN THE
DEPARTMENT ‘ADMIN’.

SELECT COUNT(*) 'NO OF WORKERS IN ADMIN' FROM WORKER WHERE DEPARTMENT ='ADMIN';

# Q-22. WRITE AN SQL QUERY TO FETCH WORKER NAMES WITH SALARIES >= 50000 AND <=
100000.

SELECT CONCAT(FIRST_NAME,' ',LAST_NAME) AS WORKER_NAME FROM WORKER WHERE


SALARY BETWEEN 50000 AND 100000;

# Q-23. WRITE AN SQL QUERY TO FETCH THE NO. OF WORKERS FOR EACH DEPARTMENT IN
THE DESCENDING ORDER.

SELECT DEPARTMENT,COUNT(*) 'NO_OF_WORKERS' FROM WORKER GROUP BY DEPARTMENT


ORDER BY NO_OF_WORKERS DESC;
# Q-24. WRITE AN SQL QUERY TO PRINT DETAILS OF THE WORKERS WHO ARE ALSO
MANAGERS.

SELECT * FROM WORKER;

SELECT * FROM TITLE;

SELECT * FROM WORKER W INNER JOIN TITLE T ON W.WORKER_ID=T.WORKER_REF_ID WHERE


WORKER_TITLE='MANAGER';

# Q-25. WRITE AN SQL QUERY TO FETCH DUPLICATE RECORDS HAVING MATCHING DATA IN
SOME FIELDS OF A TABLE.

SELECT * FROM TITLE;

SELECT WORKER_TITLE,AFFECTED_FROM,COUNT(*) FROM TITLE GROUP BY


WORKER_TITLE,AFFECTED_FROM HAVING COUNT(*)>1;

# Q-26. WRITE AN SQL QUERY TO SHOW ONLY ODD ROWS FROM A TABLE.

SELECT * FROM WORKER WHERE MOD(WORKER_ID,2)!=0;

# Q-27. WRITE AN SQL QUERY TO SHOW ONLY EVEN ROWS FROM A TABLE.

SELECT * FROM WORKER WHERE MOD(WORKER_ID,2) =0;

# Q-28. WRITE AN SQL QUERY TO CLONE A NEW TABLE FROM ANOTHER TABLE.

DROP TABLE IF EXISTS CLONE;

CREATE TABLE WORKER_CLONE LIKE WORKER; # WITHOUT INFORMATION

SELECT * FROM WORKER_CLONE;

CREATE TABLE WORKER_CLONE1 SELECT * FROM WORKER; # WITH INFORMATION

SELECT * FROM WORKER_CLONE1;

# Q-29. WRITE AN SQL QUERY TO FETCH INTERSECTING RECORDS OF TWO TABLES.

SELECT * FROM WORKER WHERE WORKER_ID IN (SELECT WORKER_REF_ID FROM BONUS);

# Q-30. WRITE AN SQL QUERY TO SHOW RECORDS FROM ONE TABLE THAT ANOTHER TABLE
DOES NOT HAVE.

SELECT * FROM WORKER WHERE WORKER_ID NOT IN (SELECT WORKER_REF_ID FROM BONUS);
# Q-31. WRITE AN SQL QUERY TO SHOW THE CURRENT DATE AND TIME.

SELECT NOW();

SELECT CURDATE();

SELECT CURRENT_DATE();

SELECT SYSDATE() FROM DUAL;

# Q-32. WRITE AN SQL QUERY TO SHOW THE TOP N (SAY 5) RECORDS OF A TABLE.

SELECT * FROM WORKER LIMIT 5;

# Q-33. WRITE AN SQL QUERY TO DETERMINE THE NTH (SAY N=5) HIGHEST SALARY FROM A
TABLE.

SELECT * FROM WORKER GROUP BY SALARY ORDER BY SALARY DESC LIMIT 4,1;

# Q-34. WRITE AN SQL QUERY TO DETERMINE THE 5TH HIGHEST SALARY WITHOUT USING TOP
OR LIMIT METHOD.

SELECT * FROM WORKER WHERE SALARY<(SELECT SALARY FROM WORKER GROUP BY SALARY
ORDER BY SALARY DESC LIMIT 3,1) ORDER BY SALARY DESC LIMIT 1;

# Q-35. WRITE AN SQL QUERY TO FETCH THE LIST OF EMPLOYEES WITH THE SAME SALARY.

SELECT * FROM WORKER WHERE SALARY=(SELECT SALARY FROM WORKER GROUP BY SALARY
HAVING COUNT(*)>1);

SELECT DISTINCT W.WORKER_ID, W.FIRST_NAME, W.SALARY

FROM WORKER W, WORKER W1

WHERE W.SALARY = W1.SALARY

AND W.WORKER_ID != W1.WORKER_ID;

# Q-36. WRITE AN SQL QUERY TO SHOW THE SECOND HIGHEST SALARY FROM A TABLE.

SELECT * FROM WORKER GROUP BY SALARY ORDER BY SALARY DESC LIMIT 1,1;

SELECT MAX(SALARY) FROM WORKER WHERE SALARY NOT IN(SELECT MAX(SALARY) FROM
WORKER);
# Q-37. WRITE AN SQL QUERY TO SHOW ONE ROW TWICE IN RESULTS FROM A TABLE.

SELECT * FROM WORKER UNION ALL SELECT * FROM WORKER;

# Q-38. WRITE AN SQL QUERY TO FETCH INTERSECTING RECORDS OF TWO TABLES.

SELECT * FROM WORKER W INNER JOIN WORKER_CLONE1 WC ON


W.WORKER_ID=WC.WORKER_ID;

# Q-39. WRITE AN SQL QUERY TO FETCH THE FIRST 50% RECORDS FROM A TABLE.

SELECT * FROM WORKER WHERE WORKER_ID<=(SELECT COUNT(*)/2 FROM WORKER);

# Q-40. WRITE AN SQL QUERY TO FETCH THE DEPARTMENTS THAT HAVE LESS THAN 3 PEOPLE
IN IT.

SELECT DEPARTMENT,COUNT(*) NUMBER_OF_WORKER FROM WORKER GROUP BY DEPARTMENT


HAVING COUNT(*)<3;

# Q-41. WRITE AN SQL QUERY TO SHOW ALL DEPARTMENTS ALONG WITH THE NUMBER OF
PEOPLE IN THERE.

SELECT DEPARTMENT,COUNT(*) AS 'NUMBER OF WORKER' FROM WORKER GROUP BY


DEPARTMENT ;

# Q-42. WRITE AN SQL QUERY TO SHOW THE LAST RECORD FROM A TABLE.

SELECT * FROM WORKER ORDER BY WORKER_ID DESC LIMIT 1;

# Q-43. WRITE AN SQL QUERY TO FETCH THE FIRST ROW OF A TABLE.

SELECT * FROM WORKER LIMIT 1;

# Q-44. WRITE AN SQL QUERY TO FETCH THE LAST FIVE RECORDS FROM A TABLE.

SELECT * FROM (SELECT * FROM WORKER ORDER BY WORKER_ID DESC LIMIT 5) T ORDER BY
T.WORKER_ID ASC;

# Q-45. WRITE AN SQL QUERY TO PRINT THE NAME OF EMPLOYEES HAVING THE HIGHEST
SALARY IN EACH DEPARTMENT.

SELECT CONCAT(FIRST_NAME,' ',LAST_NAME) AS NAME ,DEPARTMENT,MAX(SALARY) FROM


WORKER GROUP BY DEPARTMENT;
SELECT CONCAT(FIRST_NAME,' ',LAST_NAME) AS FULL_NAME,DEPARTMENT,SALARY FROM
WORKER WHERE SALARY IN (SELECT MAX(SALARY) FROM WORKER GROUP BY DEPARTMENT );

SELECT T.DEPARTMENT,T.FIRST_NAME,T.SALARY FROM(SELECT MAX(SALARY) AS


TOTALSALARY,DEPARTMENT FROM WORKER GROUP BY DEPARTMENT) AS TEMPNEW

INNER JOIN WORKER T ON TEMPNEW.DEPARTMENT=TDEPARTMENT

AND TEMPNEW.TOTALSALARY=T.SALARY;

# Q-46. WRITE AN SQL QUERY TO FETCH THREE MAX SALARIES FROM A TABLE.

SELECT SALARY FROM WORKER GROUP BY SALARY ORDER BY SALARY DESC LIMIT 3;

SELECT DISTINCT(SALARY) FROM WORKER ORDER BY SALARY DESC LIMIT 3;

# Q-47. WRITE AN SQL QUERY TO FETCH THREE MIN SALARIES FROM A TABLE.

SELECT DISTINCT(SALARY) FROM WORKER ORDER BY SALARY LIMIT 3;

# Q-48. WRITE AN SQL QUERY TO FETCH NTH MAX SALARIES FROM A TABLE. (SAY 4TH)

SELECT DISTINCT(SALARY) FROM WORKER ORDER BY SALARY DESC LIMIT 3,1;

# Q-49. WRITE AN SQL QUERY TO FETCH DEPARTMENTS ALONG WITH THE TOTAL SALARIES
PAID FOR EACH OF THEM.

SELECT DEPARTMENT, SUM(SALARY) AS TOTAL_SALARIES FROM WORKER GROUP BY


DEPARTMENT;

# Q-50. WRITE AN SQL QUERY TO FETCH THE NAMES OF WORKERS WHO EARN THE HIGHEST
SALARY.

SELECT FIRST_NAME,SALARY FROM WORKER WHERE SALARY =(SELECT MAX(SALARY) FROM


WORKER);
#1. ADD INDEX NAME FAST ON NAME

CREATE INDEX CEREAL_NAME ON CEREALS (NAME);

SHOW INDEX FROM CEREALS;

CREATE INDEX CEREAL_NAME ON CEREALS (NAME(100));

#2. DESCRIBE THE SCHEMA OF TABLE

DESCRIBE CEREALS;

#3. CREATE VIEW NAME AS SEE WHERE USERS CAN NOT SEE TYPE COLUMN [FIRST RUN
APPROPRIATE QUERY THEN CREATE VIEW]

CREATE VIEW SEE AS

SELECT
NAME,MFR,CALORIES,PROTEIN,FAT,SODIUM,FIBER,CARBO,SUGARS,POTASS,VITAMINS,SHELF,
WEIGHT,CUPS,RATING

FROM CEREALS;

SELECT * FROM SEE;

SELECT * FROM CEREALS;

#4. RENAME THE VIEW AS SAW

RENAME VIEW SEE TO SAW;

#5. COUNT HOW MANY ARE COLD CEREALS

SELECT COUNT(*) FROM CEREALS WHERE TYPE = "C";

#6. COUNT HOW MANY CEREALS ARE KEPT IN SHELF 3

SELECT COUNT(*) FROM CEREALS WHERE SHELF = 3;

#7. ARRANGE THE TABLE FROM HIGH TO LOW ACCORDING TO RATINGS

SELECT * FROM CEREALS ORDER BY RATING ASC;


#8. SUGGEST SOME COLUMN/S WHICH CAN BE PRIMARY KEY

SELECT NAME, COUNT(NAME) FROM CEREALS GROUP BY NAME HAVING COUNT(NAME) >=1
ORDER BY COUNT(NAME) DESC;

#9. FIND AVERAGE OF CALORIES OF HOT CEREAL AND COLD CEREAL IN ONE QUERY

SELECT * FROM CEREALS;

SELECT TYPE, AVG(CALORIES) FROM CEREALS GROUP BY TYPE;

#10. ADD NEW COLUMN AS HL_CALORIES WHERE MORE THAN AVERAGE CALORIES SHOULD
BE CATEGORIZED AS HIGH AND LESS THAN AVERAGE CALORIES SHOULD BE CATEGORIZED AS
LOW

ALTER TABLE CEREALS

ADD COLUMN HL_CALORIES ENUM ("HIGH", "LOW");

CREATE TEMPORARY TABLE TEMPCALO AS SELECT CALORIES FROM CEREALS;

UPDATE CEREALS

SET HL_CALORIES = CASE

WHEN CALORIES > (SELECT AVG(CALORIES) FROM TEMPCALO) THEN "HIGH"

ELSE "LOW"

END;

SELECT * FROM CEREALS;

ALTER TABLE CEREALS

ADD COLUMN VZ ENUM ("LOW","HIGH");

CREATE TEMPORARY TABLE JACK AS SELECT CALORIES FROM CEREALS;

UPDATE CEREALS

SET VZ = CASE

WHEN CALORIES > (SELECT AVG(CALORIES) FROM JACK) THEN "HIGH"

ELSE "LOW"

END;

SELECT * FROM CEREALS;


#11. LIST ONLY THOSE CEREALS WHOSE NAME BEGINS WITH B

SELECT * FROM CEREALS WHERE NAME LIKE 'B%';

#12. LIST ONLY THOSE CEREALS WHOSE NAME BEGINS WITH F

SELECT * FROM CEREALS WHERE NAME LIKE "F%";

#13. LIST ONLY THOSE CEREALS WHOSE NAME ENDS WITH S

SELECT * FROM CEREALS WHERE NAME LIKE "%S";

#14. SELECT ONLY THOSE RECORDS WHICH ARE HIGH IN COLUMN HL_CALORIES AND MAIL
TO [email protected] [SAVE/NAME YOUR FILE AS <YOUR FIRST
NAME_CEREALS_HIGH>]

SELECT * FROM CEREALS WHERE HL_CALORIES = "HIGH";

#15. FIND MAXIMUM OF RATINGS

SELECT MAX(RATING) FROM CEREALS;

#16. FIND AVERAGE RATINGS OF THOSE WERE HIGH AND LOW CALORIES

SELECT * FROM CEREALS;

SELECT ROUND(AVG(CALORIES),2), VZ FROM CEREALS GROUP BY VZ;

SELECT HL_CALORIES, ROUND(AVG(RATING),2) FROM CEREALS GROUP BY HL_CALORIES;

#17. CREATE TWO EXAMPLES OF SUB QUERIES OF YOUR CHOICE AND GIVE EXPLANATION IN
THE SCRIPT

#ITSELF WITH REMARKS BY USING #

SELECT * FROM CEREALS;

SELECT AVG(CALORIES) FROM CEREALS WHERE CALORIES IN

(SELECT CALORIES FROM CEREALS ORDER BY CALORIES DESC);


#18. REMOVE COLUMN FAT

ALTER TABLE CEREALS

DROP FAT;

#19. COUNT RECORDS FOR EACH MANUFACTURER [MFR]

SELECT MFR, COUNT(MFR) FROM CEREALS GROUP BY MFR;

#20. SELECT NAME, CALORIES AND RATINGS ONLY

SELECT NAME, CALORIES, RATING FROM CEREALS;

-- 1. ADD INDEX NAME FAST ON NAME

ALTER TABLE CLINICTRIAL MODIFY NAME VARCHAR(30) PRIMARY KEY;

CREATE INDEX MEDICAL ON CLINICTRIAL (NAME);

SHOW INDEX FROM CLINICTRIAL;

-- 2. DESCRIBE THE SCHEMA OF TABLE

SHOW TABLES;

SELECT * FROM CLINICTRIAL;

DESCRIBE CLINICTRIAL;

-- 3. FIND AVERAGE OF AGE

SELECT AVG(AGE) AVERAGE_AGE FROM CLINICTRIAL;

# 4. FIND MINIMUM OF AGE

SELECT MIN(AGE) AS MINIMUM_AGE FROM CLINICTRIAL;

# 5. FIND MAXIMUM OF AGE

SELECT MAX(AGE) MAXIMUM_AGE FROM CLINICTRIAL;


# 6. FIND AVERAGE AGE OF THOSE WERE PREGNANT AND NOT PREGNANT

SELECT * FROM CLINICTRIAL;

SELECT PREGNANT,ROUND(AVG(AGE),0) AVERAGE_AGE FROM CLINICTRIAL GROUP BY


PREGNANT;

# 7. FIND AVERAGE BLOOD PRESSURE OF THOSE HAD DRUG REACTION AND DID NOT HAD
DRUG REACTION

SELECT DRUG_REACTION,ROUND(AVG(BP),0) AS AVERAGE_BP FROM CLINICTRIAL GROUP BY


DRUG_REACTION;

# 8. ADD NEW COLUMN NAME AS ‘AGE_GROUP’ AND THOSE HAVING AGE BETWEEN 16 & 21
SHOULD BE CATEGORIZED AS LOW, MORE THAN 21 AND LESS THAN 35 SHOULD BE
CATEGORIZED AS MIDDLE AND ABOVE 35 SHOULD BE CATEGORIZED AS HIGH.

SELECT AGE,CASE WHEN AGE BETWEEN 16 AND 21 THEN 'LOW' WHEN AGE BETWEEN 21 AND
35 THEN 'MIDDLE' WHEN AGE >35 THEN 'HIGH' END 'AGE_GROUP' FROM CLINICTRIAL;

SELECT * FROM CLINICTRIAL;

ALTER TABLE CLINICTRIAL ADD COLUMN AGE_GROUP VARCHAR(10) AFTER AGE ;

SELECT * FROM CLINICTRIAL;

UPDATE CLINICTRIAL

SET AGE_GROUP = CASE WHEN AGE BETWEEN 16 AND 21

THEN 'LOW' WHEN AGE BETWEEN 21 AND 35 THEN 'MIDDLE'

WHEN AGE >35 THEN 'HIGH' END ;

SELECT * FROM CLINICTRIAL;

# 9. CHANGE ‘AGE’ OF REETIKA TO 32

UPDATE CLINICTRIAL SET AGE=32 WHERE NAME ='REETIKA';

SELECT * FROM CLINICTRIAL;

# 10. CHANGE NAME OF REENA AS SHARA’

UPDATE CLINICTRIAL SET NAME='SHARA' WHERE NAME='REENA';


# 11. REMOVE CHLSTRL COLUMN

SELECT * FROM CLINICTRIAL;

ALTER TABLE CLINICTRIAL DROP COLUMN CHLSTRL;

SELECT * FROM CLINICTRIAL;

# 12. SELECT ONLY NAME, AGE AND BP

SELECT NAME,AGE,BP FROM CLINICTRIAL;

# 13. SELECT LADIES WHOSE FIRST NAME STARTS WITH ‘E’

SELECT * FROM CLINICTRIAL;

SELECT * FROM CLINICTRIAL WHERE NAME LIKE 'E%';

# 14. SELECT LADIES WHOSE AGE_GROUP WERE LOW

SELECT * FROM CLINICTRIAL WHERE AGE_GROUP ='LOW';

# 15. SELECT LADIES WHOSE AGE_GROUP WERE HIGH

SELECT * FROM CLINICTRIAL WHERE AGE_GROUP='HIGH';

# 16. SELECT LADIES WHOSE NAME STARTS WITH ‘A’ AND THOSE WERE PREGNANT

SELECT NAME,PREGNANT FROM CLINICTRIAL WHERE NAME LIKE 'A%' AND PREGNANT='YES';

# 17. IDENTIFY LADIES WHOSE BP WAS MORE THAN 120

SELECT * FROM CLINICTRIAL WHERE BP>120;

# 18. IDENTIFY LADIES WHOSE BP WAS BETWEEN 100 AND 120

SELECT * FROM CLINICTRIAL WHERE BP BETWEEN 100 AND 120;

# 19. IDENTIFY LADIES WHO HAD LOW ANXIETY AGED LESS THAN 30

SELECT * FROM CLINICTRIAL WHERE ANXTY_LH = 'NO' AND AGE<30;


# 20. SELECT LADIES WHOSE NAME ENDS WITH ‘I’

SELECT * FROM CLINICTRIAL WHERE NAME LIKE '%I';

# 21. SELECT LADIES WHOSE NAME ENDS WITH ‘A’

SELECT * FROM CLINICTRIAL WHERE NAME LIKE '%A';

# 22. SELECT LADIES WHOSE NAME STARTS WITH ‘K’

SELECT * FROM CLINICTRIAL WHERE NAME LIKE 'A%';

# 23. SELECT LADIES WHOSE NAME HAVE ‘A’ ANYWHERE

SELECT * FROM CLINICTRIAL WHERE NAME LIKE '%A%';

# 24. ORDER LADIES IN ASCENDING WAY BASED ON ‘BP’

SELECT * FROM CLINICTRIAL ORDER BY BP ASC;

# 25. ORDER LADIES IN DESCENDING WAY BASED ON ‘AGE’

SELECT * FROM CLINICTRIAL ORDER BY AGE DESC;

#1. COUNT FOR EACH CATEGORIES OF ‘REGION

SELECT REGION, COUNT(REGION) "NO OF CATEGORIES" FROM INSURANCE_INFO GROUP BY


REGION;

#2. FIND 50 RECORDS OF HIGHEST ‘AGE’ AND EXPORT DATA/TABLE TO DESKTOP

SELECT AGE, COUNT(AGE) FROM

(SELECT AGE FROM INSURANCE_INFO ORDER BY AGE DESC LIMIT 50) AS AGES

GROUP BY AGE;
#3. ADD INDEX NAME ‘QUICK’ ON ‘ID’

#4. DESCRIBE THE SCHEMA OF TABLE

DESCRIBE INSURANCE_INFO;

#5. CREATE VIEW NAME AS ‘GENDER’ WHERE USERS CAN NOT SEE ‘SEX’ [HINT: FIRST RUN
APPROPRIATE QUERY THEN CREATE VIEW]

CREATE VIEW GENDER AS

SELECT ID,AGE,BMI,CHILDREN,SMOKER,REGION,CHARGES

FROM INSURANCE_INFO;

SELECT * FROM GENDER;

#6. RENAME THE VIEW AS ‘TYPE’

#7. COUNT HOW MANY ARE ‘NORTHWEST’ INSURANCE HOLDERS

SELECT REGION, COUNT(REGION) FROM INSURANCE_INFO GROUP BY REGION HAVING


REGION = "NORTHWEST";

#8. COUNT HOW MANY INSURANCE HOLDERS WERE ‘FEMALE’

SELECT SEX, COUNT(SEX) FROM INSURANCE_INFO GROUP BY SEX HAVING SEX = "FEMALE";

#9. CREATE PRIMARY KEY ON A SUITABLE COLUMN

ALTER TABLE INSURANCE_INFO

ADD CONSTRAINT PK_ID PRIMARY KEY (ID);

DESCRIBE INSURANCE_INFO;
#10. CREATE A NEW COLUMN ‘RATIO’ WHICH IS AGE MULTIPLY BY BMI

ALTER TABLE INSURANCE_INFO

ADD COLUMN RATIO DECIMAL(10,2);

UPDATE INSURANCE_INFO

SET RATIO = AGE * BMI;

SELECT * FROM INSURANCE_INFO;

# 11. ARRANGE THE TABLE FROM HIGH TO LOW ACCORDING TO CHARGES

SELECT * FROM INSURANCE_INFO ORDER BY CHARGES DESC;

# 12. FIND MAX OF ‘CHARGES’

SELECT ID, CHARGES FROM INSURANCE_INFO WHERE CHARGES IN

(SELECT MAX(CHARGES) FROM INSURANCE_INFO);

# 13. FIND MIN OF ‘CHARGES’

SELECT ID, CHARGES FROM INSURANCE_INFO WHERE CHARGES IN

(SELECT MIN(CHARGES) FROM INSURANCE_INFO);

#14. FIND AVERAGE OF ‘CHARGES’ OF MALE AND FEMALE

SELECT SEX, ROUND(AVG(CHARGES),2) AS "AVG CHARGES" FROM INSURANCE_INFO GROUP


BY SEX HAVING SEX IN ( "FEMALE", "MALE");
#15. WRITE A QUERY TO RENAME COLUMN NAME SEX TO GENDER

ALTER TABLE INSURANCE_INFO

RENAME COLUMN GENDER TO SEX ;

DESCRIBE INSURANCE_INFO;

SELECT * FROM INSURANCE_INFO;

#16. ADD NEW COLUMN AS HL_CHARGES WHERE MORE THAN AVERAGE CHARGES SHOULD
BE CATEGORIZED AS HIGH AND LESS THAN AVERAGE CHARGES SHOULD BE CATEGORIZED AS
LOW

ALTER TABLE INSURANCE_INFO

ADD COLUMN HL_CHARGES ENUM ("HIGH", "LESS");

CREATE TEMPORARY TABLE AVG_CHARGES AS SELECT CHARGES FROM INSURANCE_INFO;

SELECT * FROM AVG_CHARGES;

UPDATE INSURANCE_INFO

SET HL_CHARGES = CASE

WHEN CHARGES > ( SELECT AVG(CHARGES) FROM AVG_CHARGES) THEN 'HIGH'

ELSE 'LESS'

END;

SELECT * FROM INSURANCE_INFO;

#17. CHANGE LOCATION/POSITION OF ‘SMOKER’ AND BRING BEFORE ‘CHILDREN’

ALTER TABLE INSURANCE_INFO

MODIFY COLUMN SMOKER TEXT AFTER BMI;

SELECT * FROM INSURANCE_INFO;


#18. SHOW TOP 20 RECORDS

SELECT * FROM INSURANCE_INFO ORDER BY ID LIMIT 20;

#19. SHOW BOTTOM 20 RECORDS

SELECT * FROM INSURANCE_INFO ORDER BY ID DESC LIMIT 20;

#20. RANDOMLY SELECT 20% OF RECORDS AND EXPORT TO DESKTOP

SELECT * FROM INSURANCE_INFO

WHERE RAND() <= 0.2;

#21. REMOVE COLUMN ‘RATIO’

ALTER TABLE INSURANCE_INFO

DROP COLUMN RATIO;

-- 22. CREATE ONE EXAMPLE OF SUB QUERIES INVOLVING ‘BMI’ AND ‘SEX’ AND GIVE
EXPLANATION IN

-- THE SCRIPT ITSELF WITH REMARKS BY USING #

USE INSURANCE;

SELECT ID, SEX, BMI FROM INSURANCE_INFO WHERE (SEX, BMI) IN

(SELECT SEX, BMI FROM INSURANCE_INFO GROUP BY SEX, BMI HAVING COUNT(*) >1)

ORDER BY BMI;

-- 23. CREATE A VIEW CALLED FEMALE_HL_CHARGES THAT SHOWS ONLY THOSE DATA WHERE
HL_CHARGES IS HIGH, FEMALE, SMOKERS AND WITH 0 CHILDREN
#24. UPDATE CHILDREN COLUMN IF THERE IS 0 CHILDREN THEN MAKE IT AS ZERO CHILDREN,
IF 1

#THEN ONE_CHILDREN, IF 2 THEN TWO_CHILDREN, IF 3 THEN THREE_CHILDREN, IF 4 THEN

#FOUR_CHILDREN IF 5 THEN FIVE_CHILDREN ELSE PRINT IT AS MORE_THAN_FIVE_CHILDREN.

ALTER TABLE INSURANCE_INFO

MODIFY COLUMN CHILDREN VARCHAR(50);

UPDATE INSURANCE_INFO

SET CHILDREN =

CASE

WHEN CHILDREN = 0 THEN 'ZERO CHILDREN'

WHEN CHILDREN = 1 THEN 'ONE CHILD'

WHEN CHILDREN = 2 THEN 'TWO CHILDREN'

WHEN CHILDREN = 3 THEN 'THREE CHILDREN'

WHEN CHILDREN = 4 THEN 'FOUR CHILDREN'

WHEN CHILDREN = 5 THEN 'FIVE CHILDREN'

ELSE 'MORE THAN FIVE CHILDREN'

END;

DESCRIBE INSURANCE_INFO;

SELECT * FROM INSURANCE_INFO;

#1. LIST ALL CATEGORIES AND THEIR IDS;

SELECT CATEGORYNAME, CATEGORYID FROM CATEGORIES;

#2. FIND THE NAMES AND CONTACT DETAILS OF ALL CUSTOMERS.

SELECT

CONTACTNAME AS 'CONTACT NAME',

CONCAT(ADDRESS," ",CITY," ",POSTALCODE," ",COUNTRY) AS 'CONTACT DETAILS'


FROM

CUSTOMERS;
#3. RETRIEVE THE AVERAGE PRICE OF PRODUCTS IN EACH CATEGORY.

SELECT * FROM PRODUCTS;

SELECT

C.CATEGORYID,

C.CATEGORYNAME,

ROUND(AVG(P.PRICE),2)

FROM

CATEGORIES C

INNER JOIN

PRODUCTS P

ON

P.CATEGORYID = C.CATEGORYID

GROUP BY

C.CATEGORYID, C.CATEGORYNAME;

#4. LIST ALL ORDER DETAILS WITH THE PRODUCT NAME, QUANTITY, AND UNIT PRICE.

SELECT

P.PRODUCTNAME,

O.QUANTITY,

P.PRICE

FROM

ORDERDETAILS O

INNER JOIN

PRODUCTS P ON O.PRODUCTID = P.PRODUCTID;


#5. GET THE TOTAL NUMBER OF ORDERS PLACED BY EACH CUSTOMER.

SELECT

C.CUSTOMERNAME,

COUNT(O.ORDERID) AS 'NO_OF_ORDERS'

FROM

CUSTOMERS C

INNER JOIN

ORDERS O

ON

O.CUSTOMERID = C.CUSTOMERID

GROUP BY

C.CUSTOMERNAME

ORDER BY

NO_OF_ORDERS DESC;

#6. FIND THE NAMES AND SHIPPING COMPANIES OF ALL SHIPPERS.

SELECT

S.SUPPLIERNAME,

SH.SHIPPERNAME

FROM

SUPPLIERS S

INNER JOIN

SHIPPERS SH

ON S.SHIPPERID = SH.SHIPPERID;
#7. RETRIEVE ALL PRODUCTS THAT BELONG TO A SPECIFIC CATEGORY (E.G., 'BEVERAGES').

SELECT

P.PRODUCTNAME,

C.CATEGORYNAME

FROM

CATEGORIES C

INNER JOIN

PRODUCTS P

ON

C.CATEGORYID = P.CATEGORYID

WHERE

CATEGORYNAME = 'BEVERAGES';

#8. LIST ALL ORDERS ALONG WITH THE ORDER DATE AND CUSTOMER NAME.

SELECT

C.CUSTOMERNAME,

O.ORDERDATE

FROM

CUSTOMERS C

INNER JOIN

ORDERS O

ON

O.CUSTOMERID = C.CUSTOMERID;
#9. GET THE TOTAL SALES AMOUNT FOR EACH PRODUCT.

SELECT

P.PRODUCTID,

P.PRODUCTNAME,

SUM(OD.QUANTITY * P.PRICE) AS TOTAL_SALES

FROM

PRODUCTS P

JOIN

ORDERDETAILS OD ON P.PRODUCTID = OD.PRODUCTID

GROUP BY

P.PRODUCTID, P.PRODUCTNAME

ORDER BY PRODUCTID;

#10. FIND THE TOP 5 MOST EXPENSIVE PRODUCTS.

SELECT * FROM PRODUCTS ORDER BY PRICE DESC LIMIT 5;

#11. LIST ALL SUPPLIERS AND THE NUMBER OF PRODUCTS THEY SUPPLY.

SELECT

S.SUPPLIERID,

S.SUPPLIERNAME,

COUNT(O.ORDERID)

AS ' TOTAL_ORDERS'

FROM

SUPPLIERS S

INNER JOIN

ORDERS O

ON S.SUPPLIERID = O.SUPPLIERID

GROUP BY

S.SUPPLIERID,S.SUPPLIERNAME

ORDER BY

TOTAL_ORDERS DESC;
#12. RETRIEVE ALL ORDERS THAT WERE SHIPPED BY A SPECIFIC SHIPPER (E.G., 'SPEEDY
EXPRESS'.

SELECT

P.PRODUCTID,

P.PRODUCTNAME

FROM

PRODUCTS P

JOIN

ORDERDETAILS OD ON P.PRODUCTID = OD.PRODUCTID

JOIN

ORDERS O ON OD.ORDERID = O.ORDERID

JOIN

SHIPPERS S ON O.SHIPPERID = S.SHIPPERID

WHERE

S.SHIPPERNAME = 'SPEEDY EXPRESS';

#13. LIST ALL CUSTOMERS WHO HAVE ORDERED PRODUCTS FROM A SPECIFIC CATEGORY
(E.G., ‘BEVERAGES’).

SELECT

DISTINCT C.CUSTOMERID,

C.CUSTOMERNAME

FROM

CUSTOMERS C

JOIN

ORDERS O ON C.CUSTOMERID = O.CUSTOMERID

JOIN

ORDERDETAILS OD ON O.ORDERID = OD.ORDERID

JOIN

PRODUCTS P ON OD.PRODUCTID = P.PRODUCTID

JOIN

CATEGORIES CAT ON P.CATEGORYID = CAT.CATEGORYID

WHERE

CAT.CATEGORYNAME = 'BEVERAGES';
#14. LIST ALL PRODUCTS THAT HAVE NOT BEEN ORDERED YET.

SELECT

P.PRODUCTID,

P.PRODUCTNAME

FROM

PRODUCTS P

LEFT JOIN

ORDERDETAILS OD

ON

P.PRODUCTID = OD.PRODUCTID

WHERE

OD.PRODUCTID IS NULL;

#15. GET THE AVERAGE ORDER VALUE FOR EACH CUSTOMER.

SELECT

C.CUSTOMERID,

C.CUSTOMERNAME,

ROUND(AVG(OD.TOTAL_ORDER_VALUE),2) AS AVERAGE_ORDER_VALUE

FROM

CUSTOMERS C

JOIN

ORDERS O ON C.CUSTOMERID = O.CUSTOMERID

JOIN

(SELECT

OD.ORDERID,

SUM(OD.QUANTITY * P.PRICE) AS TOTAL_ORDER_VALUE

FROM

ORDERDETAILS OD

JOIN
PRODUCTS P ON OD.PRODUCTID = P.PRODUCTID

GROUP BY

OD.ORDERID) OD ON O.ORDERID = OD.ORDERID

GROUP BY

C.CUSTOMERID, C.CUSTOMERNAME

LIMIT 0, 10000;

#16. FIND THE LATEST ORDER DATE FOR EACH CUSTOMER.

SELECT

C.CUSTOMERID,

C.CUSTOMERNAME,

MAX(O.ORDERDATE) AS LATEST_ORDER_DATE

FROM

CUSTOMERS C

JOIN

ORDERS O ON C.CUSTOMERID = O.CUSTOMERID

GROUP BY

C.CUSTOMERID, C.CUSTOMERNAME;

#17. RETRIEVE THE TOP 3 MOST FREQUENT CUSTOMERS BASED ON THE NUMBER OF ORDERS
PLACED.

SELECT

C.CUSTOMERID,

C.CUSTOMERNAME,

COUNT(O.ORDERID) AS ORDER_COUNT

FROM

CUSTOMERS C

JOIN

ORDERS O ON C.CUSTOMERID = O.CUSTOMERID

GROUP BY

C.CUSTOMERID, C.CUSTOMERNAME
ORDER BY

ORDER_COUNT DESC

LIMIT 3;

#18. LIST ALL PRODUCTS AND THEIR CATEGORIES, INCLUDING CATEGORY NAMES.

SELECT

P.PRODUCTID,

P.PRODUCTNAME,

C.CATEGORYID,

C.CATEGORYNAME

FROM

PRODUCTS P

JOIN

CATEGORIES C ON P.CATEGORYID = C.CATEGORYID;

#19. FIND THE TOTAL QUANTITY OF EACH PRODUCT ORDERED.

SELECT

P.PRODUCTID,

P.PRODUCTNAME,

SUM(OD.QUANTITY) AS TOTAL_QUANTITY_ORDERED

FROM

PRODUCTS P

JOIN

ORDERDETAILS OD ON P.PRODUCTID = OD.PRODUCTID

GROUP BY

P.PRODUCTID, P.PRODUCTNAME;

#20. FIND THE TOTAL SALES AMOUNT FOR EACH SUPPLIER.

SELECT

S.SUPPLIERID,

S.SUPPLIERNAME,
SUM(OD.QUANTITY * P.PRICE) AS TOTAL_SALES

FROM

SUPPLIERS S

JOIN

PRODUCTS P ON S.SUPPLIERID = P.SUPPLIERID

JOIN

ORDERDETAILS OD ON P.PRODUCTID = OD.PRODUCTID

JOIN

ORDERS O ON OD.ORDERID = O.ORDERID

GROUP BY

S.SUPPLIERID, S.SUPPLIERNAME

ORDER BY SUPPLIERID;

You might also like