SQL 12-1.30 Notes-1
SQL 12-1.30 Notes-1
---------------
1.DDL(DATA DEFINATION LANGUAGE)
-------------------------------
CREATE
ALTER
TRUNCATE
DROP
SHOW DATABASES;
USE DATABASE_NAME;
USE COMPANY;
SYSTEM CLS
EXIT
SHOW TABLES;
TO CREATE TABLE
---------------
SYNTAX:1
PRODUCT:
DESC TABLE_NAME;
DESC PRODUCT;
USE INFORMATION_SCHEMA;
STEP:2
SELECT *
FROM TABLE_CONSTRAINTS;
FACULTY:
CUSTOMER:
BANK:
ALTER:
------
IT IS USED TO MODIFY STRUCTURE OF THE TABLE.
CHAR(10)
STUDENT:STUDENT_DATA
TO DROP CONSTRAINTS
-------------------
i.TO DROP PRIMARY KEY
---------------------
SYNTAX:
ERROR:WE CANT DROP PRIMARY KEY FROM A TABLE IF PRIMARY KEY IS ACTING AS
FOREIGN KEY IN ANOTHER TABLE.
ERROR:WE CANT DROP PRIMARY KEY FROM A TABLE IF PRIMARY KEY COLUMN IS
ASSIGNED WITH AUTO_INCREMENT.
1.INSERT
--------
IT IS USED TO ADD/INSERT RECORDS INTO EXISTING TABLE.
EX:
EX:
SYNTAX:3
--------
2.UPDATE:
---------
IT IS USED TO MODIFY EXISTING RECORDS IN A TABLE.
SYNTAX:
UPDATE TABLE_NAME
SET COL_NAME_1=V1,COL_NAME_2=V2,.......COL_NAME_N=VN
[WHERE CONDITION];
UPDATE PRODUCT
SET PNAME='BIRYANI';
UPDATE PRODUCT
SET PNAME='CURD RICE'
WHERE PID=1;
KABAB:100
PANNEER:110
UPDATE PRODUCT
SET PNAME='KABAB',PRICE=100
WHERE PID=5;
3.DELETE
---------
IT IS USED TO DELETE EXISTING RECORDS FROM A TABLE.
SYNTAX:
DELETE
FROM TABLE_NAME
[WHERE CONDITION];
DELETE
FROM PRODUCT
WHERE PID=9;
DDL
---
3.TRUNCATE:
-----------
IT IS USED TO DELETE ALL THE RECORDS FROM A TABLE WITHOUT AFFECTING TABLE
STRUCTURE.
SYNTAX:
4.DROP
------
IT IS USED DROP DATABASE AND ITS OBJECTS SUCH AS
TABLE,VIEW,PROCEDURE,TRIGGER AND USER FROM MYSQL.
USE ZOMATO;
1.wqtd FIRST NAME ,SALARY AND STATUS OF EMPLOYEES FROM EMPS TABLE???
SELECT FNAME,SAL,STATUS
FROM EMPS;
2.WQTD FIRST NAME,LAST NAME,DATE OF BIRTH AND DATE OF JOINING FROM EMPS
TABLE???
SELECT FNAME,LNAME,DOB,DOJ
FROM EMPS;
SELECT *
FROM EMPS;
SELECT FNAME,JOB,
FROM EMPS;
SELECT FNAME,COMM,SAL+30000
FROM EMPS;
HIKE:
-----
COLUMN_NAME+(COLUMN_NAME * %HIKE/100)
SELECT *,SAL*12
FROM EMPS;
DEDUCTION:
COLUMN_NAME-(COLUMN_NAME * %DEDUCTION/100)
SELECT FNAME,JOB,SAL-(SAL*8/100)
FROM EMPS;
SELECT FNAME,SAL,COMM*12
FROM EMPS;
SELECT FNAME,LNAME,JOB,(COMM*12)+((COMM*12)*50/100),(SAL*12)-((SAL*12)*25/100)
FROM EMPS;
ALIASING:
--------
IT IS USED TO PROVIDE ALTERNATIVE NAME FOR A COLUMN IN RESULTANT TABLE.
RULES:
------
1.WITH OR WITHOUT USING AS KEYWORD WE CAN WRITE ALIAS NAME.
2.WE CAN USE MULTIPLE WORDS AS A ALIAS NAME BY USING QUOTES OR BY
CONNECTING IT WITH UNDER_SCORE
DISTINCT:
---------
IT IS USED TO AVOID DUPLICATE VALUES FROM RESULTANT TABLE.
RULES:
-----
1.EITHER * OR DISTINCT MUST BE THE FIRST ARGUMENT IN SELECT CLAUSE
(IF WE ARE USING SEPERATELY)
2.WE CAN USE MULTIPLE COLUMNS ALONG WITH DISTINCT ,IT WILL AVOID
COMBINATION OF DUPLICATE VALUES.
SELECT *
FROM EMPS
WHERE fname='DIVYA';
18.WQTD DETAILS OF EMPS IF EMPS ARE GETTING SALARY MORE THAN 45000???
SELECT *
FROM EMPS
WHERE SAl>45000;
SELECT *
FROM EMPS
WHERE JOB='DELIVERY';
SELECT *
FROM EMPS
WHERE STATUS='BUSY';
'YYYY-MM-DD'
22.WQTD DETAILS OF EMPS WHO HIRED AFTER THE MONTH MARCH OF 2020??
SELECT *
FROM EMPS
WHERE DOJ>'2020-03-31';
SELECT *
FROM EMPS
WHERE DOJ<'2019-01-01';
OR
WHERE DOJ<='2018-12-31';
OPERATORS:
----------
1.ARITHMATIC OPERATORS(+,-,*,/,%)
2.RELATIONAL OPERATORS(>,<,>=,<=,=,!=)
3.LOGICAL OPERATORS (AND,OR,NOT)
4.SPECIAL OPERATORS (IN,NOT IN,IS,BETWEEN,NOT BETWEEN,LIKE,
NOT LIKE,ALL,ANY)
SELECT *
FROM EMPS
WHERE JOB='CHEF' OR JOB='CASHIER';
SELECT FNAME,LNAME,JOB,DOB,DOJ
FROM EMPS
WHERE DOB>='1995-01-01' AND DOB<='1995-12-31';
27.WQTD DETAILS OF THE EMPS IF EMPS ARE WORKING AS SECURITY AND GETTING
SALARY LESS THAN 80000???
SELECT *
FROM EMPS
WHERE JOB='SECURITY' AND SAL<80000;
28.WQTD DETAILS OF THE EMPS WHO ARE WORKING AS SECURITY OR MANAGER AND
THEIR STATUS IS AVAILABLE??
SELECT *
FROM EMPS
WHERE (JOB='SECURITY' OR JOB='MANAGER') AND (STATUS='AVAILABLE');
SELECT *
FROM EMPS
WHERE (JOB='SECURITY' OR JOB='CHEF' OR JOB='WAITER' OR JOB='DELIVERY') AND
SAL>45000 And (DOJ>='2018-01-01' AND DOJ<='2018-12-31');
IN:
---
IT IS A MULTI VALUE OPERATOR WHICH TAKES MULTIPLE VALUES AT THE RHS AND
SINGLE VALUE AT THE LHS.
SYNTAX:
LHS RHS
COLUMN_NAME/EXPRESSION IN(V1,V2,.....VN);
SELECT *
FROM EMPS
WHERE JOB IN('SECURITY','CHEF','DELIVERY','WAITER') AND
SAL>45000 And (DOJ>='2018-01-01' AND DOJ<='2018-12-31');
SELECT *
FROM EMPS
WHERE STATUS IN('AVAILABLE','BUSY') AND JOB IN('CLEANER','CASHIER');
31.WQTD DETAILS OF THE ITEMS FROM MENU_ITEMS TABLE IF ITEM NAME IS EITHER
MASALA DOSA OR FISH CURRY AND ITEM PRICE IS LESS THAN 500???
SELECT *
FROM MENU_ITEMS
WHERE NAME IN('MASALA DOSA','FISH CURRY') AND PRICE<500;
32.WQTD DETAILS OF EMPS WHO ARE NOT WORKING AS CHEF,CLEANER AND
CASHIER(WITHOUT USING SPECIAL OPERATOR)
SELECT *
FROM EMPS
WHERE JOB!='CHEF' AND JOB!='CLEANER' AND JOB!='CASHIER';
NOT IN:
-------
IT IS A MULTIVALUE OPERATOR WHICH TAKES MULTIPLE VALUES AT THE RHS AND
SINGLE VALUE AT THE LHS.
SYNTAX:
-------
SELECT *
FROM EMPS
WHERE JOB!='CHEF' AND JOB!='CLEANER' AND JOB!='CASHIER';
SELECT *
FROM EMPS
WHERE JOb not in('CHEF','CLEANER','CASHIER');
33.WQTD DETAILS OF EMPS WHO WERE BORN IN THE YEAR 1992 AND NOT WORKING
AS MANAGER,CHEF AND HIRED IN THE YEAR 2018 BUT NOT AS FEMALE???
SELECT *
FROM EMPS
WHERE DOB>='1992-01-01' AND DOB<='1992-12-31' AND JOB NOT IN('MANAGER','CHEF')
AND
DOJ>='2018-01-01' AND DOJ<='2018-12-31' AND GENDER!='F';
34.WQTD FNAME AND SAL IF EMP SALARY IS MORE THAN OR EQUAL TO 35000 AND
LESS THAN OR EQUAL TO 50000?
SELECT FNAME,SAL
FROM EMPS
WHERE SAL>=35000 AND SAL<=50000;
BETWEEN:
--------
IT IS USED TO INCLUDE SOME RANGE OF VALUES.
SYNTAX:
>= <=
COLUMN_NAME/EXPRESSION BETWEEN LOWER_RANGE_VALUE AND
HIGHER_RANGE_VALUE;
SELECT FNAME,SAL
FROM EMPS
WHERE SAL BETWEEN 35000 AND 50000;
SELECT *
FROM EMPS
WHERE DOB BETWEEN '1995-01-01' AND '1995-12-31';
SELECT *
FROM EMPS
WHERE JOB IN('WAITER','CLEANER','CASHIER') AND SAL BETWEEN 35000+0.01 AND
50000-0.01;
37.WQTD EMP FNAME,SAL IF EMPS ARE NOT GETTING SALARY IN THE RANGE OF
35000 TO 45000???
NOT BETWEEN:
------------
IT IS USED AVOID SOME RANGE OF VALUES.
SYNTAX:
< >
COLUMN_NAME/EXPRESSION NOT BETWEEN LOWER_RANGE_VALUE AND
HIGHER_RANGE_VALUE;
SELECT FNAME,SAL
FROM EMPS
WHERE SAL NOT BETWEEN 35000 AND 45000;
38.WQTD DETAILS OF EMPS WHO ARE NOT JOINED IN THE YEAR 2020 AND 2021????
SELECT *
FROM EMPS
WHERE DOJ NOT BETWEEN '2020-01-01' AND '2021-12-31';
IS:
---
ITS IS USED TO CHECK WHETHER THE COLUMN IS NULL OR NOT NULL
SYNTAX:
SELECT *
FROM EMPS
WHERE COMM IS NOT NULL;
SELECT *
FROM EMPS
WHERE CID IS NOT NULL;
SELECT *
FROM EMPS
WHERE MGR IS NOT NULL;
43.WQTD DETAILS OF EMPS IF EMPS ARE GETTING SALARY IN THE RANGE OF 40000
TO 100000 AND HIRED IN THE YEAR 2019 AND IN THE DATE 12???
SELECT *
FROM EMPS
WHERE SAL BETWEEN 40000 AND 100000 AND DOJ
IN('2019-01-12','2019-02-12','2019-03-12','2019-04-12','2019-05-12','2019-06-12','2019-07-12','2
019-08-12','2019-09-12','2019-10-12','2019-11-12','2019-12-12');
SELECT FNAME
FROM EMPS
WHERE FNAME LIKE 'K%';
SELECT *
FROM EMPS
WHERE LNAME LIKE '%Y';
SELECT FNAME,LNAME,SAL,JOB
FROM EMPS
WHERE FNAME LIKE '%A%A%' AND SAL>40000;
SELECT FNAME,LNAME,JOB
FROM EMPS
WHERE JOB LIKE '%WAIT%';
48.WQTD DETAILS OF EMPS WHOSE FNAME STARTING WITH S OR A???
SELECT *
FROM EMPS
WHERE FNAME LIKE 'S%' OR FNAME LIKE 'A%';
SELECT *
FROM EMPS
WHERE DOJ LIKE '2019%';
2019-__-__
YYYY-MM-DD
SELECT FNAME,LNAME,DOB
FROM EMPS
WHERE DOB LIKE '%-01-%' OR DOB LIKE '%-02___' or DOB LIKE '____-03-__';
A:'1999-01-12' T
B:'1998-10-01' F
SELECT *
FROM EMPS
WHERE DOJ LIKE '%12' OR DOJ LIKE '%01';
NOT LIKE:
---------
IT IS USED FOR PATTERN MATCHING.
SELECT *
FROM EMPS
WHERE FNAME NOT LIKE 'A%';
53.WQTD DETAILS OF EMPS IF EMPS WERE NOT JOINED IN THE YEAR 2020???
SELECT *
FROM EMPS
WHERE DOJ NOT LIKE '2020%';
54.WQTD DETAILS OF EMPS WHOSE FNAME IS NOT STARTING WITH S AND D???
SELECT *
FROM EMPS
WHERE FNAME NOT LIKE 'S%' AND FNAME NOT LIKE 'D%';
SELECT FNAME,LNAME
FROM EMPS
WHERE LNAME LIKE '___';
56.WQTD FNAME AND ANNUAL SALARY IF ANNUAL SALARY LAST 2ND DIGIT IS 0??
57.WQTD DETAILS OF EMPS IF EMP FNAME LAST 3RD CHARACTER IS E AND LNAME
LAST CHARACTER IS R AND WORKING AS WAITER OR MANAGER BUT NOT AS
FEMALE??
SELECT *
FROM EMPS
WHERE FNAME LIKE '%E__' AND LNAME LIKE '%R' AND JOB IN('WAITER','MANAGER')
AND GENDER!='F';
58.WQTD DETAILS OF EMPS IF EMP FNAME LAST 5TH CHARACTER IS H AND EMP JOB
3RD CHARACTER IS I AND EMP IS NOT ACTING AS CUSTOMER FOR HIS COMPANY???
SELECT *
FROM EMPS
WHERE FNAME LIKE '%H____' AND JOB LIKE '__I%' AND CID IS NULL;
SELECT *
FROM EMPS
WHERE FNAME LIKE 'A%' OR
FNAME LIKE 'E%' OR
FNAME LIKE 'I%' OR
FNAME LIKE 'O%' OR
FNAME LIKE 'U%';
SELECT FNAME,LNAME
FROM EMPS
WHERE (FNAME LIKE 'A%' OR
FNAME LIKE 'E%' OR
FNAME LIKE 'I%' OR
FNAME LIKE 'O%' OR
FNAME LIKE 'U%') AND
(LNAME NOT LIKE '%A' AND
LNAME NOT LIKE '%E' AND
LNAME NOT LIKE '%I' AND
LNAME NOT LIKE '%O' AND
LNAME NOT LIKE '%U');
SELECT NAME
FROM PENTAGON
WHERE NAME LIKE '%\%%\%%';
SELECT NAME
FROM PENTAGON
WHERE NAME LIKE '___\_%';
SYNTAX: MAX(COLUMN_NAME/EXPRESSION)
EX:
SELECT MAX(SAL)
FROM EMPS; O/P: 100000
2.MIN():
--------
IT IS USED TO OBTAIN MINIMUM VALUE FROM THE GIVEN COLUMN.
SYNTAX: MIN(COLUMN_NAME/EXPRESSION)
EX:
SELECT MIN(SAL)
FROM EMPS; O/P:20000
3.SUM():
--------
IT IS USED TO OBTAIN TOTAL VALUE FROM THE GIVEN COLUMN.
SYNTAX: SUM(COLUMN_NAME/EXPRESSION)
EX:
SELECT SUM(SAL)
FROM EMPS; O/P:510000
4.AVG():
--------
IT IS USED TO OBTAIN AVERAGE VALUE FROM THE GIVEN COLUMN.
SYNTAX: AVG(COLUMN_NAME/EXPRESSION)
EX:
SELECT AVG(SAL)
FROM EMPS; O/P:51000
5.COUNT():
----------
IT IS USED TO OBTAIN NUMBER OF VALUES PRESENT IN THE GIVEN COLUMN.
SYNTAX: COUNT(*/COLUMN_NAME/EXPRESSION)
EX:
SELECT COUNT(SAL)
FROM EMPS; O/P:10
SELECT COUNT(*)
FROM EMPS; O/P:10
SELECT SUM(SAL)
FROM EMPS
WHERE JOB='WAITER';
SELECT AVG(SAL),SUM(SAL),MIN(sAL),MAX(sAL)
FROM EMPS
WHERE FNAME LIKE 'K%' OR FNAME LIKE 'A%';
SELECT COUNT(*)
FROM EMPS
WHERE JOB IN('DELIVERY','MANAGER');
SELECT COUNT(*),JOB
FROM EMPS
GROUP BY JOB;
ORDER OF EXECUTION:
-------------------
1.FROM
2.[WHERE]
3.GROUP BY
4.SELECT
SELECT COUNT(*),STATUS
FROM EMPS
GROUP BY STATUS;
70.WQTD TOTAL SALARY SPENT BY THE COMPANY IN EACH JOB ROLE IF JOB ROLES
ARE DELIVERY,MANAGER OR WAITER??????
SELECT SUM(sAL),JOB
FROM EMPS
WHERE JOB IN('DELIVERY','MANAGER','WAITER')
GROUP BY JOB;
SELECT COUNT(*),LID
FROM EMPS
WHERE SAL>32000 AND SAL<50000
GROUP BY LID;
SELECT MAX(SAL),LID
FROM EMPS
WHERE SAL>25000
GROUP BY LID
having MAX(sAL)>50000;
ORDER OF EXECUTION:
-------------------
1.FROM
2.WHERE
3.GROUP BY
4.HAVING
5.SELECT
73.WQTD AVERAGE SALARY AND TOTAL SALARY GIVEN TO EMPS PER LOCATION IF
AVERAGE SALARY IS MORE THAN 40000 AND TOTAL SALARY IS MORE THAN 75000???
SELECT AVG(sAL),SUM(SAL),LID
FROM EMPS
GROUP BY LID
HAVING AVG(SAL)>40000 AND SUM(SAL)>75000;
74.WQTD TOTAL SALARY AND NUMBER OF EMPS WORKING IN EACH JOB ROLE IF
MORE THAN 2 EMPS ARE WORKING IN EACH JOB ROLE???
SELECT SUM(sAL),COUNT(*),JOB
FROM EMPS
GROUP BY JOB
HAVING COUNT(*)>2;
75.WQTD MAXIMUM SALARY AND MINIMUM SALARY AND NUMBER OF EMPS WORKING
PER LOCATION IF LOCATION CONTAINS ATLEAST 2 AND ATMOST 2 EMPS WORKING IN
IT??
SELECT MAX(sAL),MIN(sAL),COUNT(*)
FROM EMPS
GROUP BY LID
HAVING COUNT(*)>=2 AND COUNT(*)<=2;
SELECT COUNT(*),SAL
FROM EMPS
GROUP BY SAL
HAVING COUNT(*)>1;
77.WQTD NUMBER OF EMPS HAVING SAME GENDER AND WORKING IN SAME JOB
ROLE???
SELECT COUNT(*),GENDER,JOB
FROM EMPS
GROUP BY GENDER,JOB
HAVING COUNT(*)>1;
78.WQTD DETAILS OF EMPS BASED ON THIER SALARY MAXIMUM TO MINIMUM
ORDER???
ORDER BY:
---------
IT IS USED TO ARRENGE THE RECORDS EITHER IN ASCENDING OR DESCENDING
ORDER.
SYNTAX:
SELECT COLUMN_NAME/EXPRESSION
FROM TABLE_NAME
ORDER BY COLUMN_NAME ASC/DESC;
ORDER BY EXECUTION:
-------------------
1.FROM
2.WHERE
3.GROUP BY
4.HAVING
5.SELECT
6.ORDER BY
SELECT *
FROM EMPS
ORDER BY SAL DESC;
SELECT FNAME,LNAME,JOB
FROM EMPS
WHERE JOB IN('SECURITY','MANAGER','CLEANER')
ORDER BY FNAME ASC;
80.WQTD NUMBER OF EMPS WHO ARE HAVING SAME GENDER AND WORKING IN SAME
JOB AND EMPS ARE GETTING SALARY MORE THAN 30000 AND ARRENGE THE JOB IN
ANTI ALPHABATICAL ORDER??
SELECT COUNT(*),GENDER,JOB
FROM EMPS
WHERE SAL>30000
GROUP BY GENDER,JOB
HAVING COUNT(*)>1
ORDER BY JOB DESC;
LIMIT:
------
IT IS USED TO DISPLAY SOME SPECIFIC NUMBER OF RECORDS FROM RESULTANT
TABLE.
SYNTAX:
SELECT COLUMN_NAME/EXPRESSION
FROM TABLE_NAME
LIMIT VALUE;
SELECT *
FROM EMPS
LIMIT 3;
SELECT *
FROM EMPS
LIMIT 1;
OFFSET:
-------
IT IS USED SKIP/IGNORE SOME SPECIFIC NUMBER OF RECORDS.
SYNTAX:
SELECT COLUMN_NAME/EXPRESSION
FROM EMPS
LIMIT VALUE OFFSET VALUE;
SELECT *
FROM EMPS
LIMIT 1 OFFSET 1;
SELECT *
FROM EMPS
LIMIT 2 OFFSET 2;
SELECT *
FROM EMPS
ORDER BY SAL DESC
LIMIT 3;
SELECT *
FROM EMPS
ORDER BY EID DESC
LIMIT 5;
88.WQTD 3RD MAXIMUM SALARY FROM EMPS TABLE???
OR
SELECT SAL
FROM EMPS
GROUP BY SAL
ORDER BY SAL DESC
LIMIT 1 OFFSET 2;
CHARACTER FUNCTIONS:
1.LOWER():
----------
IT IS USED TO CONVERT GIVEN STRING VALUE INTO LOWERCASE.
EX:
2.UPPER():
-----------
IT IS USED TO CONVERT GIVEN STRING VALUE INTO UPPERCASE.
EX:
3.REVERSE():
------------
IT IS USED TO DISPLAY GIVEN STRING VALUE IN REVERSE FORMAT.
EX:
SELECT *
FROM EMPS
WHERE REVERSE(FNAME)='NAMA';
4.LENGTH():
-----------
IT IS USED TO OBTAIN TOTAL NUMBER OF CHARACTERS PRESENT IN GIVEN STRING
VALUE.
EX:
SELECT LENGTH('PENTAGON');8
SELECT CITY,LENGTH(CITY)
FROM LOCATIONS
ORDER BY LENGTH(CITY) DESC,CITY ASC
LIMIT 1 OFFSET 1;
5.CONCAT():
----------
IT IS USED TO ADD/COMBINE TWO OR MORE STRING VALUES.
SYNTAX:
CONCAT('STR1','STR2',.....'STRN');
SAMEPLE O/P:
I/P:
FNAME:SHARUKH
LNAME:KHAN
O/P:
FULL NAME:
----------
SHARUKH KHAN
I/P:
FNAME:KICCHA
LNAME:SUDEEP
JOB :ACTOR
O/P:
6.SUBSTR():
-----------
IT IS USED TO EXTRACT SOME PART OF THE STRING FROM ORIGINAL STRING.
CASE:1
BENGALURU
123456789
SELECT SUBSTR('BENGALURU',4,3);GAL
SELECT SUBSTR('BENGALURU',5);ALURU
CASE:2
B E N G A L U R U
-9 -8 -7 -6 -5 -4 -3 -2 -1
SELECT SUBSTR('BENGALURU',-3,2);UR
SELECT SUBSTR('BENGALURU',-6);GALURU
SELECT FNAME
FROM EMPS
WHERE SUBSTR(FNAME,1,1)='K';
SELECT FNAME,LNAME
FROM EMPS
WHERE SUBSTR(LNAME,-1,1)='I';
SELECT *
FROM EMPS
WHERE SUBSTR(FNAME,1,1) IN('A','D');
OR
WHERE SUBSTR(FNAME,1,1)='A' OR SUBSTR(FNAME,1,1)='D';
SELECT *
FROM EMPS
WHERE SUBSTR(JOB,1,3)='SEC' OR SUBSTR(JOB,1,4)='WAIT';
99.WQTD FNAME AND LNAME IF EMPLOYEES FNAME STARTING WITH VOWELS AND
LNAME IS NOT ENDING WITH VOWELS???
SELECT FNAME,LNAME
FROM EMPS
WHERE SUBSTR(FNAME,1,1) IN('A','E','O','I','U') AND SUBSTR(LNAME,-1,1) NOT
IN('A','E','I','O','U');
SELECT *
FROM EMPS
WHERE SUBSTR(DOB,1,4)=1995;
YYYY-MM-DD
12345678910
SELECT FNAME,LNAME,DOJ
FROM EMPS
WHERE SUBSTR(DOJ,6,2)IN(04,05,06,07);
I/P:
FNAME:RAMYA
LNAME:AUNTY
O/P:
R.A.
SELECT CONCAT(SUBSTR(FNAME,1,1),'.',SUBSTR(LNAME,1,1),'.')
FROM EMPS;
SELECT FNAME,CONCAT(SUBSTR(FNAME,1,3),LENGTH(FNAME),SUBSTR(JOB,-2,2)) AS
PASSWORD
FROM EMPS;
SELECT SUBSTR(FNAME,LENGTH(FNAME)/2+1)
FROM EMPS;
106.WQTD FIRST HALF OF FNAME IN LOWER CASE AND 2ND HALF OF FNAME IN
REVERSE FORMAT BASED ON SAMPLE O/P:
FNAME:SUNDRA
O/p; sunARD
SELECT
CONCAT(LOWER(SUBSTR(FNAME,1,LENGTH(FNAME)/2)),REVERSE(SUBSTR(FNAME,LE
NGTH(FNAME)/2+1)))
FROM EMPS;
SELECT
FNAME,CONCAT(SUBSTR(FNAME,LENGTH(FNAME)/2+1),LENGTH(LNAME),REVERSE(SU
BSTR(JOB,-4,4))) PASSWORD
FROM EMPS
WHERE FNAME='KIRAN';
7.REPLACE:
----------
IT IS USED TO REPLACE SUBSTRING FROM NEW STRING IN ORIGINAL STRING.
SYNTAX:
SELECT REPLACE('PENTAGON','PENT','HEX');HEXAGON
SELECT REPLACE('PENTAGON','N','S');PESTAGOS
SELECT REPLACE('PENTAGON','R','S');PENTAGON
SELECT REPLACE('PENTAGON','N','');PETAGO
SELECT REPLACE('PENTAGON','n','R');PENTAGON
SELECT LENGTH('MALAYALAM')-LENGTH(REPLACE('MALAYALAM','A',''));
FNAME:KIRAN
O/P: K[I]R[A]N
SELECT REPLACE(REPLACE(FNAME,'A','[A]'),'I','[I]')
FROM EMPS;
NUMBER FUNCTIONS
----------------
CHARACTERISTICS OF NUMBER FUNCTIONS:
------------------------------------
>IT TAKES N NUMBER OF INPUTS AND GENERATE N NUMBER OF OUTPUTS.
>IT EXECUTES ROW BY ROW
>WE CAN NEST NUMBER FUNCTIONS
>WE CAN USE NUMBER FUNCTIONS INSIDE WHERE CLAUSE.
EX:
SELECT ABS(-18);18
SELECT ABS(18); 18
2.MOD():
--------
IT IS USED TO OBTAIN REMAINDER VALUE.
SYNTAX:
MOD(M,D);
EX:
SELECT MOD(8,2);0
SELECT MOD(8,3);2
SELECT *
FROM EMPS
WHERE MOD(EID,2)=0;
3.ROUND():
-----------
IT IS USED TO ROUND OFF THE VALUE UPTO SPECIFIED NUMBER OF DECIMAL
PLACES.
SYNTAX:
ROUND(NUMBER,[DECIMAL_PLACE_VALUE]);
EX:
SELECT ROUND(420.4);420
SELECT ROUND(420.5);421
SELECT ROUND(420.567,2);420.57
SELECT ROUND(420.56743,3);420.567
112.WQTD AVERAGE SALARY OBTAINED IN EACH JOB ROLE AND ROUND OFF THE
AVERAGE SALARY UPTO 2ND DECIMAL PLACE??
SELECT ROUND(AVG(SAL),2),JOB
FROM EMPS
GROUP BY JOB;
4.CEIL:
-------
>IT WILL OBTAIN NEXT INTEGER VALUE FROM THE GIVEN DECIMAL VALUE.
(IF IT IS POSITIVE NUMBER).
>IT WILL OBTAIN CURRENT INTEGER VALUE FROM THE GIVE DECIMAL VALUE.
(IF IT IS NEGATIVE NUMBER)
SELECT CEIL(18.3);19
SELECT CEIL(-18.3);-18
5.FLOOR():
---------
>IT WILL OBTAIN CURRENT INTEGER VALUE FROM GIVEN DECIMAL VALUE.
(IF IT IS POSITIVE NUMBER)
>IT WILL OBTAIN NEXT INTEGER VALUE FROM GIVEN DECIMAL VALUE.
(IF IT IS NEGATIVE NUMBER)
EX:
SELECT FLOOR(18.3);18
SELECT FLOOR(-18.3);-19
6.TRUNCATE():
-------------
IT IS USED TO CUT OFF THE VALUE UPTO SPECIFIED NUMBER OF DECIMAL PLACES
WITHOUT ROUNDING IT.
SYNTAX:
TRUNCATE(NUMBER,DECIMAL_PLACE_VALUE);
EX:
SELECT TRUNCATE(123.4567,2);123.45
SELECT TRUNCATE(123.4567,3);123.456
7.POW():
--------
IT IS USED TO OBTAIN POWER VALUE OF THE GIVEN NUMBER.
EX:
SELECT POW(8,2); 64
8.SQRT():
---------
IT IS USED TO OBTAIN SQUARE ROOT VALUE OF NON NEGATIVE NUMBER.
SELECT SQRT(64);8
SELECT SQRT(-64);NULL
DATE FUNCTIONS
--------------
CHARACTERISTICS OF DATE FUNCTIONS:
----------------------------------
>IT TAKES N NUMBER OF INPUTS AND GENARTE N NUMBER OF OUTPUTS.
>IT EXECUTES ROW BY ROW
>WE CAN NEST DATE FUNCTIONS
>WE CAN USE DATE FUNCTIONS INSIDE WHERE CLAUSE.
1.CURDATE():
------------
IT IS USED TO OBTAIN CURRENT DATE FROM THE SYSTEM.
EX:
2.SYSDATE()/NOW()
-----------------
IT IS USED TO OBTAINM CURRENT DATE AND TIME FROM THE SYSTEM.
EX:
3.YEAR():
--------
IT IS USED TO EXTRACT YEAR FROM THE GIVEN DATE EXPRESSION.
EX:
SELECT YEAR('2020-10-12');2020
113.WQTD NUMBER OF EMPS HIRED IN EACH YEAR AND DISPLAY THE NUMBERS IN
MAXIMUM TO MINIMUM ORDER BASED ON THE COUNT????
SELECT COUNT(*),YEAR(DOJ)
FROM EMPS
GROUP BY YEAR(DOJ)
ORDER BY COUNT(*) DESC;
4.MONTH():
----------
IT IS USED TO EXTRACT MONTH VALUE FROM THE GIVEN DATE EXPRESSION.
EX:
SELECT MONTH('2021-10-12'); 10
SELECT *
FROM ORDERS
WHERE MONTH(ORDER_DATE)=12 AND STATUS='DELIVERED';
5.DAY():
--------
IT IS USED TO EXTRACT DATE VALUE FROM THE GIVEN DATE EXPRESSION.
EX:
SELECT DAY('2022-11-12');12
6.DATEDIFF():
-------------
IT IS USED TO OBTAIN DAY DIFFERENCE BETWEEN TWO DATE VALUES.
EX:
SELECT DATEDIFF(CURDATE(),'2025-08-09'); 2
115.WQTD DETAILS OF EMPS WHO WERE HIRED IN LEAP YEAR ALSO IN THE DATE
20????
SELECT *
FROM EMPS
WHERE MOD(YEAR(DOJ),4)=0 AND DAY(DOJ)=20;
SELECT DOJ
FROM EMPS
ORDER BY DOJ ASC
LIMIT 1;
OR
SELECT MIN(DOJ)
FROM EMPS;
SELECT MAX(DOJ)
FROM EMPS;
7.DATE_ADD():
------------
IT IS USED TO ADD SOME TIME INTERVAL FOR A GIVEN DATE VALUE.
SYNTAX:
2023-10-12
OR
8.DATE_SUB():
-------------
IT IS USED TO SUBTRACT SOME TIME INTERVAL FROM THE GIVEN DATE VALUE.
SYNTAX:
OR
9.DATE_FORMAT():
----------------
IT IS USED EXTRACT SOME TIME INTERVAL FROM GIVEN DATE-TIME EXPRESSION.
SYNTAX:
DATE_FORMAT('DATE VALUE','DATE_FORMAT_PATTERN');
121.WQTD DATE-TIME EXPRESSION FOR THE CURRENT DATE AND TIME IN BELOW
FORMAT:
25-AUGUST-12 03 PM TUESDAY
123.WQTD FNAME AND AGE OF THE EMPS INTERMS OF YEAR IF EMPLOYEE AGE IS
MORE THAN 35 YEAR????
RULES OF SUBQUERY:
-----------------
>THE COLUMN_NAME SELECTED IN INNER QUERY AND THE COLUMN_NAME WRITTEN
INSIDE THE OUTER QUERY SHOULD BE OF SAME DATATYPE.
124.WQTD DETAILS OF EMPS WHO ARE GETTING SALARY LESS THAN JAHNAVI????
SELECT *
FROM EMPS
WHERE SAL<(SELECT SAL
FROM EMPS
WHERE FNAME='JAHNAVI');
SELECT FNAME,LNAME,JOB,SAL
FROM EMPS
WHERE FNAME!='MURALI' AND JOB=(SELECT JOB
FROM EMPS
WHERE FNAME='MURALI');
SELECT *
FROM EMPS
WHERE FNAME LIKE '_A%' AND SUBSTR(LNAME,-2,1)='A' AND SAL<(SELECT SAL
FROM EMPS
WHERE FNAME='JAHNAVI');
SELECT *
FROM EMPS
WHERE SAL=(SELECT DISTINCT SAL
FROM EMPS
ORDER BY SAL DESC
LIMIT 1 OFFSET 1);
128.WQTD FNAME AND LNAME TOGETHER AS FULL NAME ALONG WITH THEIR
SALARY,JOB AND LID IF EMPLOYEE IS WORKING IN THE LOCATION SAME AS SURESH
LOCATION AND GETTING SALARY MORE THAN PRIYA???
SELECT *
FROM EMPS
WHERE DOB<(SELECT DOB
FROM EMPS
WHERE FNAME='PRIYA');
2001< 2004
SELECT CITY
FROM LOCATIONS
WHERE LID=(SELECT LID
FROM EMPS
WHERE FNAME='KIRAN');
SELECT *
FROM EMPS
WHERE LID=(SELECT LID
FROM LOCATIONS
WHERE STATE='KARNATAKA');
SELECT CITY,STATE
FROM LOCATIONS
WHERE LID=(SELECT LID
FROM CUSTOMERS
WHERE NAME='VIRAT KOHLI');
SELECT *
FROM MENU_ITEMS
WHERE RESTAURANT_ID=(SELECT RESTAURANT_ID
FROM RESTAURANTS
WHERE NAME='SPICE HUB');
134.WQTD DETAILS OF EMPS WHO ARE WORKING AS SECURITY OR MANAGER IN
MUMBAI CITY?
SELECT *
FROM EMPS
WHERE JOB IN('SECURITY','MANAGER') AND LID=(SELECT LID
FROM LOCATIONS
WHERE CITY='MUMBAI');
135.WQTD DETAILS OF CUSTOMER WHO HAS GIVEN REVIEW WITH RATING 4???
SELECT *
FROM CUSTOMERS
WHERE CID=(SELECT CID
FROM REVIEWS
WHERE RATING=4);
SELECT *
FROM CUSTOMERS
WHERE LID IN(SELECT LID
FROM LOCATIONS
WHERE CITY IN('CHENNAI','JAIPUR'));
types OF SUBQUERY:
------------------
1.SINGLE-ROW SUBQUERY
2.MULTI-ROW SUBQUERY
3.CORRELATED SUBQUERY
1.SINGLE-ROW SUBQUERY:
----------------------
IF INNER QUERY RETURNS SINGLE VALUE WE CAN CONSIDER THAT QUERY AS
SINGLE ROW SUBQUERY.
2.MULTI-ROW SUBQUERY:
---------------------
IF INNER QUERY RETURNS MORE THAN ONE VALUE WE CAN CONSIDER THAT QUERY
AS MULTI ROW SUBQUERY.
137.WQTD ORDER DETAILS OF THE CUSTOMER WHO HAS GIVEN RATING 5???
SELECT *
FROM ORDERS
WHERE ORDER_ID IN(SELECT ORDER_ID
FROM CUSTOMERS
WHERE CID IN(SELECT CID
FROM REVIEWS
WHERE RATING=5));
138.WQTD DETAILS OF EMPS WHO ARE GETTING SALARY LESS THAN ALL THE
WAITERS???
SELECT *
FROM EMPS
WHERE SAL<ALL(SELECT SAL
FROM EMPS
WHERE JOB='WAITER');
ALL:
----
IT IS A MULTIVALUE OPERATOR WHICH TAKES MULTIPLE VALUES AT THE RHS AND
SINGLE VALUE AT THE LHS ALONG WITH RELATIONAL OPERATORS.
SYNTAX:
LHS RHS
COLUMN_NAME/EXPRESSION </>/<=/>= ALL(V1,V2,......VN);
A:1000 T
B:2000 F
C:10000 F
SAL<ALL(2000,3000,10000)
1000<ALL(
2000<ALL(
10000<ALL(
SELECT *
FROM EMPS
WHERE SAL< (SELECT MIN(SAL)
FROM EMPS
WHERE JOB='WAITER');
139.WQTD DETAILS OF EMPS WHO ARE GETTING SALARY LESS THAN ANY ONE OF
THE WAITER.?
ANY:
----
IT IS A MULTI VALUE OPERATOR WHICH TAKES MULTIPLE VALUES AT THE RHS AND
SINGLE VALUE AT THE LHS ALONG WITH RELATIONAL OPERATORS.
SYNTAX:
A:1000 T
B:2000 T
C:10000 F
SAL<ANY(2000,3000,10000)
1000<ANY(
2000<ANY(
10000<ANY(
SELECT *
FROM EMPS
WHERE SAL<ANY(SELECT SAL
FROM EMPS
WHERE JOB='WAITER');
SELECT *
FROM EMPS
WHERE SAL< (SELECT MAX(SAL)
FROM EMPS
WHERE JOB='WAITER');
SELECT *
FROM CUSTOMERS
WHERE ORDER_ID IN(SELECT ORDER_ID
FROM ORDERS);
SELECT *
FROM CUSTOMERS
WHERE ORDER_ID IS NOT NULL;
SELECT NAME
FROM CUSTOMERS
WHERE ORDER_ID IN(SELECT ORDER_ID
FROM ORDERS
WHERE ORDER_ID IN(SELECT ORDER_ID
FROM PAYMENTS
WHERE STATUS='FAILED'));
142.WQTD DETAILS OF EMPS WHO DELIVERED THE ITEM TO THE CUSTOMER WHO
BELONGS TO KOLKATA CITY??
SELECT *
FROM EMPS
WHERE EID IN(SELECT EID
FROM ORDERS
WHERE STATUS='DELIVERED' AND ORDER_ID IN(SELECT ORDER_ID
FROM CUSTOMERS
WHERE LID IN(SELECT LID
FROM LOCATIONS
WHERE CITY='KOLKATA')));
select *
FROM EMPS
WHERE EID IN(SELECT MGR
FROM EMPS
WHERE FNAME='MURALI');
SELECT CITY
FROM LOCATIONS
WHERE LID IN(SELECT LID
FROM EMPS
WHERE EID IN(SELECT MGR
FROM EMPS
WHERE FNAME='DIVYA'));
SELECT *
FROM EMPS
WHERE EID IN(SELECT MGR
FROM EMPS
WHERE EID IN(SELECT MGR
FROM EMPS
WHERE FNAME='AMAN'));
SELECT *
FROM EMPS
WHERE MGR IN(SELECT EID
FROM EMPS
WHERE FNAME='JAHNAVI');
SELECT *
FROM EMPS
WHERE MGR IN(SELECT EID
FROM EMPS
WHERE EID IN(SELECT MGR
FROM EMPS
WHERE FNAME='ARJUN'));
SELECT *
FROM LOCATIONS
WHERE LID IN(SELECT LID
FROM EMPS
WHERE MGR IN(SELECT EID
FROM EMPS
WHERE EID IN(SELECT MGR
FROM EMPS
WHERE EID IN(SELECT MGR
FROM EMPS
WHERE FNAME='FAIZAN'))));
OR
SELECT *
FROM LOCATIONS
WHERE LID IN(SELECT LID
FROM EMPS
WHERE MGR IN(SELECT MGR
FROM EMPS
WHERE EID IN(SELECT MGR
FROM EMPS
WHERE FNAME='FAIZAN')));
JOINS:
------
IT IS USED TO RETRIEVE DATA FROM MULTIPLE TABLES SIMULTANEOUSELY.
TYPES OF JOINS:
---------------
1.CROSS JOIN/CARTESIAN JOIN
2.INNER JOIN
3.OUTER JOIN:i.LEFT OUTER JOIN/LEFT JOIN
ii.RIGHT OUTER JOIN/RIGHT JOIN
4.SELF JOIN
5.NATURAL JOIN
1.CROSS JOIN:
-------------
IT IS USED TO MERGE THE RECORDS OF ONE TABLE WITH THE RECORDS OF
ANOTHER TABLE.
SYNTAX:
SELECT COLUMN_NAME/EXPRESSION
FROM TABLE_NAME T1 CROSS JOIN TABLE_NAME T2;
SELECT *
FROM LOCATIONS L CROSS JOIN CUSTOMERS C;
DRAWBACK:
---------
IT WILL OBTAIN MORE NUMBER OF UNMATCHED RECORDS COMPARE TO MATCHED
RECORDS.
INNER JOIN:
-----------
IT IS USED TO OBTAIN MATCHED RECORDS FROM DIFFERENT TABLES.
SYNTAX:
SELECT COLUMN_NAME/EXPRESSION
FROM TABLE_NAME T1 INNER JOIN TABLE_NAME T2
ON JOIN_CONDITION;
T1.COLUMN_NAME=T2.COLUMN_NAME
150.WQTD EMPLOYEE FNAME ALONG WITH HIS CITY FROM EMPS AND LOCATIONS
TABLE??
EMPS:E
LOCATIONS:L
151.WQTD ITEM NAME AND RESTAURANT NAME IF ITEM NAME IS FISH CURRY???
MENU_ITEMS:M
RESTAURANTS:R
REVIEWS:R
RESTAURANTS:RR
REVIEWS:R
RESTAURANTS:RR
154.WQTD ORDER DETAILS AND CUSTOMER NAME ALONG WITH DELIVERY PERSON
NAME???
ORDERS:O
CUSTOMERS:C
EMPS:E
SELECT O.*,C.NAME CUSTOMER_NAME,E.FNAME AS DELIEVRY_PERSON_NAME
FROM ORDERS O INNER JOIN CUSTOMERS C INNER JOIN EMPS E
ON O.ORDER_ID=C.ORDER_ID AND O.EID=E.EID;
155.WQTD CUSTOMER NAME AND THEIR ORDER DETAILS WITH PENDING PAYMENTS
BUT ACCEPTED STATUS???
CUSTOMERS:C
ORDERS:O
PAYMENTS:P
SELECT C.NAME,O.*,P.STATUS
FROM CUSTOMERS C INNER JOIN ORDERS O INNER JOIN PAYMENTS P
ON C.ORDER_ID=O.ORDER_ID AND O.ORDER_ID=P.ORDER_ID
WHERE P.STATUS='PENDING' AND O.STATUS='ACCEPTED';
EMPS:E
ORDERS:O
REVIEWS:R
RESTAURANTS:RR
CUSTOMERS:C
CUSTOMERS:C
ORDERS:O
PAYMENTS:P
CUSTOMERS:C
ORDERS:O
EMPS:E
PAYMENTS:P
LOCATIONS:L
CUSTOMERS:C
ORDERS:O
PAYMENTS:P
ORDERS:O
customers:c
ORDERS:O
RESTAURANTS:R
LOCATIONS:L
SELF JOIN:
----------
IT IS USED TO OBTAIN MATCHED RECORDS FROM SAME TABLES.
SYNTAX:
SELECT COLUMN_NAME/EXPRESSION
FROM TABLE_NAME T1 JOIN TABLE_NAME T2
ON JOIN_CONDITION;
163.WQTD EMPLOYEE FNAME ALONG WITH HIS MANAGER FNAME FROM EMPS
TABLE???
E1:FOR EMPS
E2:FOR MANAGERS
E1:FOR EMPS
E2:FOR MANAGERS
E1:FOR AMAN
E2:FOR AMAN MANAGER
E3:FOR AMAN MANAGER MANAGER
SELECT E3.FNAME
FROM EMPS E1 JOIN EMPS E2 JOIN EMPS E3
ON E1.MGR=E2.EID AND E2.MGR=E3.EID
WHERE E1.FNAME='AMAN';
167.WQTD DETAILS OF EMPS WHO ARE GETTING SALARY MORE THAN KIRAN????
E1:FOR EMPS
E2:FOR KIRAN
SELECT E1.*
FROM EMPS E1 JOIN EMPS E2
ON E1.SAL>E2.SAL
WHERE E2.FNAME='KIRAN';
168,WQTD DETAILS OF EMPS WHO ARE REPORTING TO PRIYA IF PRIYA IS GETTING
SALARY MORE THAN KIRAN???
E1:FOR EMPS
E2:FOR PRIYA
E3:FOR KIRAN
SELECT E1.*
FROM EMPS E1 JOIN EMPS E2 JOIN EMPS E3
ON E1.MGR=E2.EID AND E2.SAL>E3.SAL
WHERE E2.FNAME='PRIYA' AND E3.FNAME='KIRAN';
E1:FOR EMPLOYEES
E2:FOR MANAGERS
L1:EMPLOYEE CITY
L2:MANAGER CITY
SYNTAX:
SELECT COLUMN_NAME/EXPRESSION
FROM TABLE_NAME T1 LEFT OUTER JOIN TABLE_NAME T2
ON T1.COLUMN_NAME=T2.COLUMN_NAME;
SELECT *
FROM CUSTOMERS C LEFT OUTER JOIN LOCATIONS L
ON C.LID=L.LID;
SYNTAX:
SELECT COLUMN_NAME/EXPRESSION
FROM TABLE_NAME T1 RIGHT OUTER JOIN TABLE_NAME T2
ON T1.COLUMN_NAME=T2.COLUMN_NAME;
CUSTOMERS:LEFT
LOCATIONS:RIGHT
SELECT *
FROM CUSTOMERS C RIGHT OUTER JOIN LOCATIONS L
ON C.LID=L.LID;
SELECT L.CITY
FROM CUSTOMERS C RIGHT OUTER JOIN LOCATIONS L
ON C.LID=L.LID
WHERE C.LID IS NULL;
SELECT C.NAME
FROM CUSTOMERS C LEFT OUTER JOIN REVIEWS R
ON C.CID=R.CID
WHERE R.CID IS NULL;
SELECT R.NAME
FROM RESTAURANTS R LEFT OUTER JOIN REVIEWS RR
ON R.RESTAURANT_ID=RR.RESTAURANT_ID
WHERE RR.CID IS NULL;
NATURAL JOIN
------------
IT IS USED TO OBTAIN MATCHED RECORDS FROM MULTIPLE TABLES BASED ON
COMMEN ATTRIBUTE.
SYNTAX:
SELECT COLUMN_NAME/EXPRESSION
FROM TABLE_NAME T1 NATURAL JOIN TABLE_NAME T2;
SELECT *
FROM CUSTOMERS C NATURAL JOIN LOCATIONS L;
SELECT *
FROM EMPS E1 NATURAL JOIN EMPS E2;
SET OPERATORS:
--------------
1.UNION
2.UNION ALL
3.INTERSECTION
A:{1,2,3,4,5} B:{5,6,7}
A UNION B:{1,2,3,4,5,6,7}
A INTERSECTION B:{5}
UNION:
------
IT IS USED TO RETRIVE THE DATA FROM MULTIPLE TABLES VERTICALLY.
UNION ALL:
----------
IT IS USED TO RETRIEVE THE DATA FROM MULTIPLE TABLES VERTICALLY.
(SELECT FNAME
FROM EMPS)
UNION
(SELECT FNAME
FROM EMPS); 10 FNAME
(SELECT FNAME
FROM EMPS)
UNION ALL
(SELECT FNAME
FROM EMPS); 20 FNAME
RULES:
------
1.WE SHOULD USE SEMICOLEN FOR THE LAST QUERY
2.WE SHOULD USE ROUND BRACES FOR THE QUERIES
3.WE SHOULD USE SAME NUMBER OF COLUMNS IN SELECT CLAUSES.
CUSTOMERS:LEFT
LOCATIONS:RIGHT
(SELECT *
FROM CUSTOMERS C LEFT OUTER JOIN LOCATIONS L
ON C.LID=L.LID)
UNION
(SELECT *
FROM CUSTOMERS C RIGHT OUTER JOIN LOCATIONS L
ON C.LID=L.LID);
(SELECT *
FROM EMPS
LIMIT 1 OFFSET 2)
UNION
(SELECT *
FROM EMPS
LIMIT 1 OFFSET 4);
(SELECT *
FROM EMPS
LIMIT 2 OFFSET 5)
UNION
(SELECT *
FROM EMPS
LIMIT 1 OFFSET 1)
UNION
(SELECT *
FROM EMPS
LIMIT 1 OFFSET 9);
SET AUTOCOMMIT=0;
1.COMMIT:
---------
IT IS USED TO SAVE ALL THE TRANSACTIONS PERMENENTLY INSIDE THE DATABASE.
SYNTAX:
------
COMMIT;
2.ROLLBACK:
-----------
IT IS USED TO ROLLOUT THE OPERATIONS UPTO PREVIOUSELY USED COMMIT
STATEMENT.
SYNTAX:
ROLLBACK;
>WE CAN GET BACK DELETED RECORD BY USING ROLLBACK IF COMMIT IS NOT USED
AFTER DELETE OPERATION.
3.SAVEPOINT:
------------
IT IS USED TO MARK THE POSITION BETWEEN THE TRANSACTIONS.
SYNTAX:
SAVEPOINT SAVEPOINT_NAME;
>HERE DATA WILL BE STORED TEMPORARILY BUT NOT PERMENENTLY INSIDE THE
DATABASE.
SYNTAX:
ROLLBACK TO SAVEPOINT_NAME;
1.GRANT:
--------
IT IS USED GRANT THE PERMISSION OF THE DATA FROM ONE USER TO ANOTHER
USER.
SYNTAX:
-------
USE INFORMATION_SCHEMA;
STEP:2
SELECT *
FROM USER_ATTRIBUTES;
SELECT USER();
HOSTNAME:LOCALHOST,%
USERNAME:PENTAGON
HOSTNAME:LOCALHOST
PASSWORD:SQL
mysql -u username -p
2.REVOKE:
---------
IT IS USED TO GETBACK THE PERMISSION OF THE DATA FROM ANOTHER USER.
SYNTAX:
DELETE
DATABASE_NAME.*
SYNTAX:
PENTAGON
DROP USER'PENTAGON'@'LOCALHOST';
>IN A TABLE WE CAN HAVE MULTIPLE CANDIDATE KEY BUT SINGLE PRIMARY KEY
177.WQTD FNAME OF EMPS WHO ARE GETTING SALARY MORE THAN AVERAGE
SALARY IN THIER JOB ROLE.
E1:FOR EMPS
E2:TO FIND AVERAGE SALARY
SELECT E1.FNAME
FROM EMPS E1
WHERE E1.SAL>(SELECT AVG(E2.SAL)
FROM EMPS E2
WHERE E1.JOB=E2.JOB);
CORRELATED SUBQUERY:
---------------------
HERE BOTH OUTER QUERY AND INNER QUERY MUTUALLY DEPENDS ON EACH OTHER.
E1:FOR EMPS
E2:FOR MANAGERS
SELECT E1.FNAME
FROM EMPS E1
WHERE E1.DOB>(SELECT E2.DOB
FROM EMPS E2
WHERE E1.MGR=E2.EID);
DEPENDENCY:
-----------
IF ONE ATTRIBUTE DEPENDS ON ANOTHER ATTRIBUTE THEN THE PROCESS WILL BE
KNOWN AS DEPENDENCY.
TYPES OF DEPENDENCY:
--------------------
1.TOTAL FUNCTIONAL DEPENDENCY
2.PARTIAL FUNCTIONAL DEPENDENCY
3.TRANSITIVE FUNCTIONAL DEPENDENCY
SYNTAX:
-------
PARTITION BY:IT IS A CLAUSE USED TO CREATE THE GROUPS,IT RESETS THE RANKS
AFTER EACH GROUP.
SYNTAX:
-------
DRAWBACK:
---------
IT WILL ASSIGN DIFFERENT RANKS FOR THE TIED RECORDS.
2.RANK()
--------
IT IS USED TO ASSIGN RANKS FOR ALL THE RECORDS IN A TABLE.
SYNTAX:
-------
SELECT RANK() OVER([PARTITION BY COLUMN_NAME] ORDER BY COLUMN_NAME
ASC/DESC)
FROM TABLE_NAME;
DRAWBACK:
---------
IT SKIPS NEXT RANKING NUMBERS.
3.DENSE_RANK():
---------------
IT IS USED TO ASSIGN RANKS FOR ALL THE RECORDS IN A TABLE.
>IT WILL ASSIGN SAME RANKS FOR THE TIED RECORDS ALSO IT REMAINS NEXT
RANKING NUMBERS IN SEQUENTIAL ORDER.
SYNTAX:
-------
SELECT DENSE_RANK() OVER([PARTITION BY COLUMN_NAME] ORDER BY
COLUMN_NAME ASC/DESC)
FROM TABLE_NAME;
YES....
SYNTAX:
EMPS:EMPS1
YES....
SYNTAX:
EMPS2:EMPS
CREATE TABLE EMPS2(SELECT * FROM EMPS WHERE FNAME='RAMYA');
SUBTABLE:
VIEW:
-----
>IT IS A VIRTUAL TABLE.
>IT DOESN'T OCCUPY ANY MEMORY INSIDE THE DATABASE.
>TO OVERCOME THE DRAWBACK OF SUBTABLE WE USE VIEW.
TO CREATE VIEW:
---------------
SYNTAX:
SYNTAX:
-------
TO DROP VIEW:
DROP VIEW VIEW_NAME;
CASE STATEMENT:
---------------
IT IS USED TO PASS CERTAIN CONDITIONS WHILE DISPLAYING RECORDS.
SYNTAX:
SELECT CASE
WHEN CONDITION_1 THEN VALUE_1
WHEN CONDITION_2 THEN VALUE_2
'
'
'
WHEN CONDITION_N THEN VALUE_N
ELSE DEFAULT_VALUE
END AS ALIAS_NAME
FROM TABLE_NAME;
ROLE:
SELECT FNAME,CASE
WHEN GENDER='M' THEN 'SIGMA MALE'
WHEN GENDER='F' THEN 'DADS LIL PRINCES'
ELSE 'OTHER'
END AS ROLE
FROM EMPS;
SELECT FNAME,DOJ,CASE
WHEN YEAR(DOJ)<2020 THEN 'SENIOR'
ELSE 'JUNIOR'
END AS ROLE
FROM EMPS;