0% found this document useful (0 votes)
22 views

SQL

Uploaded by

viveksingh67067
Copyright
© © All Rights Reserved
Available Formats
Download as TXT, PDF, TXT or read online on Scribd
0% found this document useful (0 votes)
22 views

SQL

Uploaded by

viveksingh67067
Copyright
© © All Rights Reserved
Available Formats
Download as TXT, PDF, TXT or read online on Scribd
You are on page 1/ 6

SQL

1.Char :- Char(Size)
Char datatype follows fix length memory allocation
we can put 2000 datatype(maximum)
If the length of the string is less than the set length, it is padded with extra
blank spaces to match the specified length

2.Varchar :- Varchar(size)
Varchar datatype follows not fix length memory allocation
same as 2000 datatype(max)
If the length of the string is less than the set length, it is stored as is without
any paddings
Varchar2 :- same as varchar untill 4000

3.Date :- DD-MMM-YYYY

4.Number :-Number datatye uses to represent are real with decimal point and real
number without a decimal point.
Number(Precision[,scale])
precision is uses to number of digit ,scale is number of decimal point

*>>Constraints :- it is the rule which is use to valid the data


a)Unique :- it is use to avoid duplicate values to enter into the column
b)Not Null :- to avoid a null value
c)Check :- Check(Condition)
d)Primary Key :- It is combination of unique and not null
e)Foriegn Key :- It is used to connect the multiple tables
Syntax :- Foriegn Key (Fk_Column)references parent_table(
(

*>>> SQL Statements or SQL Subsets :-


a)Data Definition Language :- It is used to define and modify the table
*)Create :- Create table table_name(
column_name1 datatype constricts,
column_name2 datatype consticts,
column_namen datatype constricts);
*)Rename :- Generally we use the rename to change the name of the table
syntax :- Rename table_name to new_table
*)Alter :- To add a new column,syntax :- alter table table_name add column_name
datatype constricts
**>>> to rename the column:-
Syntax :- Alter table table_name rename column column_name to new column_name;
**>> to drop a column:-
Syntax :- Alter table table_name drop column column name;
**>> to modify the datatype :-
Syntax :- Alter table table_name modify column column_name new_datatype;
**>> to modify the foreign key:-
Syntax :- Alter table table_name modify foreign key(fk_column)references
parent_table(reff_column)
*)Drop :-to delete the table
**>>drop :-Drop a used to delete the table from the databse to recycle bin
Syntax :- drop table table_name
**>>flashback :-it is used to retried the table from a recycle bin
Syntax :- flashback table table_name to before_drop
**>>purge :- to delete the table permanently
Syntax :- purge table table_name
*)Truncate :-Whenever we use truncate ,it will delete the record permanently
because DDL is auto comments
Syntax :- truncate table table_name;

b)Data Manipulation Language :- We manipulate the data by insertion , updation,


deletion.
**>>Insert :- Insert the data into table
Syntax :- insert into
table_name(column1_value,column2_value,.........,columnn_value);
**>>Update :- Update the existing value
Syntax :- update table_name set column1 = value1,column2 = value2,.........n
[where <condition>]; where condyion executes row by row
**>>Delete :- Delete the data from the table
Syntax :- Delete from table_name [where <condition>];

c)Data Query Language :-it is used to retrieved the data from the table
*>>Projections :- retrieving the data by selecting only columns
Syntax :- select distinct/expression/[alias]/astericks(*);
* :-
distinct :- select all values and remove duplicate values
expression :- it is the combination of both operators and operands
Alias :- alias name only to display the output
*>>Selection :-it is the process of retreiving the data by selecting both columns
and rows
Syntax :- select column/expression
from table_name
[where <condtion>;]
select claws :- selecting the column to the display

Operators in SQL :-
1.Arithmetic :- (+,-,*,/)
2.Concatination :- (||)
3.Comparision :- (=,!=,<>)
4.Logical :- (And,Or,Not)
5.Relational :- (>,<,<=,>=)
6.special :-
1.IN :- to check the data present in table
2.NOT IN
3.BETWEEN
4.NOT BETWEEN
5.IS :- to check the null value
6.IS NOT
7.LIKE SYNTAX :- COLUMN LIKE 'PATTERN-TO-MATCH'; '%' & '-' IS TWO
CHARACTERS TO MATCH PATTERN. '%' :- USED TO MATCH 0-N CHARACTER '-' :- USED TO
MATCH 1 CHARACTER
8.NOT LIKE
ESCAPE CHARACTER :- COLUMN NAME 'PATTERN'ESCAPE'ESCAPE_CHAR'
7.SUBQUERY OPERATORS :-
1.ALL :- IF ANY ONE VALUE IS NOT SATISFIED IT RETURNS FALSE.IF ALL VALUE IS
SATISFIED IT RETURNS TRUE.
2.ANY :- IF ANYONE VALUE IS SATISFIED IT RETURNS TRUE.(WE CANNT USE RELATIONAL AND
COMPARISION OPERATOR)
8.CO-RELATED SUBQUERY :-
1.EXISTS :- EXISTS OPERATOR RETURN TRUE IF SUBQUERY RETURNS OTHER THAN NULL
VALUE .IT IS A UNARY OPERATOR.
2.NOT EXISTS :- IF THE INNER QUERY RETURN NULL VALUE THAN IT WILL RETUERN SOME
OUTPUT AND VISE VERSA.
5.NESTED QUERY :- QUERY THE SUBQUERY RETURN INSIDE A RETURN SUBQUERY

#*>> FUNCTIONS :-it is use perform specific task


INBUILT :- it is developed by developer
1.Single Row Function :-
a)UPPER()
b)LOWER()
c)INITCAP()
d)MOD() :- REMINDER OF THE VALUE
e)SUBSTR() :-IT IS EAY TO GET FROM ORIGINAL STR
SYNTAX :- SUBSTR('ORIGINAL-STR',POSITION[LENTH]);
f)REPLACE() :-IT USE TO SUBSTR TO VERSIONAL STR
SYNTAX :- REPLACE('ORIGINAL_STRING','STR'[,'NEW_STR']);
g)REVERSE():- TO REVERSE THE STR(DON'T TRY REVERSE NUMBER)
h)CONCAT() :- TO ADD A NORMAL STR OR TO ADD A TWO SUBSTRING
i)LENGTH() :-TO GET THE LENGTH OF A STRING
j)MONTHS_BETWEEN() :-TO CALCULATE THE MONTHS BTW TO DAYS
(SYSDATE,SYSTIMESTAMP,CURRENT_DATE)
SYNTAX :- MONTHS_BETWEEN('RANGE1','RANGE2');
k)LAST_DAY() :- IT IS USE TO RETURN THE LAST DAY OF THE MONTH
l)TO_CHAR() :- SYNTAX :- TO_CHAR('DATE','FORMAT_MODEL');
YEAR : TWENTY TWENTY FOUR
YYYY : 2024
YY : 24
MONTH : JANUARY
MON : JAN
MM : 01
DAY : TUESDAY
DD : 09
D : 3(DAY OF THE WEEK)
HH24 : 17 HOURS
HH12 : 5 HOURS
MI : 22 MINUTES
SS : 53 SECONDS
HH12:MI:SS : 05:22:53
DD-MM-YY :09-01-24
MM-DD-YYYY :01-09-2024
WHENEVER WE WANT TO MY OWN BIRTH DATE I USE(SELECT TO_CHAR(DATE '2001-08-18',DAY)
m)ROUND() :- TO TAKE OUT THE DECIMAL VALUE
SYNTAX :- ROUND(NUMBER[,SCALE]);
n)TRUNC() :- IT IS ALWAYS TRUNC THE LOWEST VALUE
l)NVL() :- UVL STANDS FOR NULL VALUE LOGICS
SYNTAX :- NVL(VAL,VAL2);
o)INSTR() :- IT IS USE TO WEATHER THE SUBSTR IS PRESENTING ORIGINAL STR OR OT.IF IT
IS PRESENT IT RETURNS THE POSITION OR ELSE IT RETURNS ZERO.
SYNTAX :- INSTR('ORG_STR','STR',POSITION[,OCCURANCE]);
2. Multi Row Funcion :- it take n number
a)MIN()
b)MAX()
c)AVG()
d)SUM()
e)COUNT() it is only func which passed(*)as a argument
USER DEFINEd :-
1.Group By Clause :-it is used to group the records based on group by expressions
Syntax :- Select group _by_express/MRF from table_name[where <filter condition>]
Group By<groip _by_filter_condition>;
2.HAVING CLAUSE :-IT IS USE TO FILTER THE GROUPS
SYNTAX :- SELECT GROUP_BY_GROUPS/MRF FROM TABLE [WHERE <FILTER CONDITION>] GROUP BY
<GROUP_BY_EXPRESSION> HAVING <GROUP_BY_FILTER_CONDITION>;
3.ORDER BY :- IT IS USE TO DISPLAY THE RECORDS EITHER IN ACENDING ORDER OR
DECENDING ORDER
SYNTAX :- SELECT COL/EXP FROM TABLE [WHERE<FILTER CONDITION>] [GROUP BY
<EXPRESSION>] [HAVING <GROUP BY CONDITION>] ORDER BY COLUMN [ASC]/DESC;
ORDER OF EXECUTION :- FROM->WHERE->GROUP BY->HAVING ->SELECT->ORDER BY
A)Subquery :- A query return inside a another query is called as subquey.iNNER
QUERY WILL EXECUTE AND IT RETURNS OUTPUT AS INPUT TO A OUTER QUERY.OUTER QUERY WILL
TAKE FROM A INNER QUERY AND IT EXECUTES AND IT RETURNS THE FINAL OUTPUT.
CASE1 :- WHNEVER WE HAVE A UNKNOWN IN THE QUESTION THAT CASE USE OF SUBQUERY
CASE2 :-WHENVER WE HAVE A UNKNOWN IN THE QUESTION AND DATA TO BE SELECTED BOTH ARE
PRESENTING DEFFERENT TABLES THAT CASE WE MAKE USE OF SUBQUERY
SYNTAX :-
SELECT ENAME,JOB
FROM EMP
WHERE JOB=(SELECT JOB FROM EMP WHERE ENAME='ALLEN');
a)SINGLE ROW SUBQUERY :- WHENEVER THE SUBQUERY RETURNS ONLY A ONE RECORD AS
OUTPUT.IN SINGLE ROW SUBQUERY WE CAN USE NORMAL OPERATORS AND SPECIAL OPERATORS.
b)MULTI ROW SUBQUERY :- WHENEVER THE SUBQUERY RETURNS MORE THAN ONE RECORDS AS
OUTPUT.IN MULTI ROW SUBQUERY WE CAN USE SPECIAL OPERATORS AND AS WELL AS SUBQUERY
OPERATORS.
B)CO-RELATED SUBQUERY :- OUTER QUERY WILL EXECUTE FAST PARTIALY.IT RETURNS OUTPUT
AS INPUT TO A INNER QUERY THEN INNER QUERY WILL EXECUTE COMPLETELY AND IT RETURNS
OUTPUT AS INPUT TO A OUTER QUERY.THEN OUTER QUERY WILL EXECUTE COMPLETELY THEN IT
RETURNS THE RESULT.

*))DIFFERENCE BTW SUB QUERY AND CO RELATED SUBQUERY?


ANS :- WHENEVER WE HAVE A JOIN CONDITION IN A SUBQUERY THEN THAT SUBQUERY BECOMES
CO RELATED SUBQUERY.
**))WAQTD THE nTH MAXIMUM SALARY.
SELECT COLUMN/EXP FROM EMP T1 WHERE(SELECT COUNT(DISTINCT SAL) FROM T2 WHERE
T1.SAL<T2,SAL) IN (N-1,N-1.................);
*>>JOINS :-
1.CROSS/CARTISIAN JOIN :- THE RECORDS OF ONE TABLE CROSS OF THE RECORDS OF ANOTHER
TABLE(THE NUMBER OF COLUMN OUTPUT=SUM OF TABLE1 + TABLE2,IT MERGE THE RECORDS)S
SYNTAX :- SELECT COLUMN/EXPRESSION FROM T1 CROSS JOIN T2;(IT IS AN ANSI SYNTAX)
ORACLE SYNTAX :- SELECT COLUMN/EXPRESSION T1,T2;
2.INNER/EQUI JOIN :- IT RETURNS TO MATCHING RECORDS FROM BOTH THE TABLES.
SYNTAX :- SELECT COL/EXP FROM T1 FROM JOIN T2 ON <JOIN CONDITION>;
3.OUTER JOIN :- IT USED TO GET UNMATCHING RECORDS FROM THE TABLE.
a)LEFT OUTER JOIN :-IT USED TO GET BOTH MATCHING AND UNMATCHING RECORDS FROM THE
LEFT TABLE BUT ONLY MATCHING RECORDS FROM THE RIGHT TABLE
SYNTAX :- SELECT COL/EXP FROM T1 LEFT [OUTER] JOIN T2 ON <JOIN CONDITION>;
ORACLE :- SELECT COL/EXP FROM T1,T2 WHERE T1.COL=T2.COL(+);
b)RIGHT OUTER JOIN :- IT USED TO GET BOTH MATCHING AND UNMATCHING RECORDS FROM THE
RIGHT TABLE BUT ONLY MATCHING RECORDS FROM THE LEFT TABLE
SYNTAX :- SELECT COL/EXP FROM T1 RIGHT [OUTER] JOIN T2 ON <JOIN CONDITION>;
ORACLE :- SELECT COL/EXP FROM T1,T2 WHERE T1.COL=T2.COL(+);
c)FULL OUTER JOIN :-WHENEVER WE WANT TO GET BOTH MATCHING AND UNMATCHING RECPRDS
FROM BOTH THE TABLES IN THAT CASE WE MAKE USE OF FULL OUTER JOIN.
SYNTAX :- SELECT COL/EXP FROM T1 FULL [OUTER] JOIN T2 ON <JOIN CONDITION>;
4.NATURAL JOIN :- IF I PERFORM NATURAL JOIN IT ACCESS INNER/EQUI JOIN IF THEIR IS
ANY RELATION BETWEEN TWO TABLES OR ELSE IT ACCESS CROSS/CARTISIAN JOIN.
SYNTAX :- SELECT COL/EXP FROM T1 NATURAL JOIN T2;
5.SELF JOIN :- IT IS PROCESS OF JOINING THE TABLE BY ITSELF
SYNTAX :- SELECT COL/EXP FROM TABLE T1 JOIN TABLE T2 ON <JOIN CONDITION>;
ORACLE :- SELECT COL/EXP FROM TABLE T1,TABLE T2 WHERE <JOIN CONDITION>;

d)Data Control language :- IT IS USED TO CONTROL THE DATA FLOW BETWEEN THE USES
1.GRANT :- SYNTAX :- GRANT SQL STATEMENTS/ALL ON TABLE_NAME TO USER_NAME
2.REVOKE :-WHEN WE GET BACK THE PERMISSION WE USE REVOKE
SYNTAX :- REVOKE SQL STATEMENTS/ALL ON TABLE_NAME TO USER_NAME;
e)Transaction Control Language :- It is used to control transaction on database
*>>Commit :- to save the transaction into a database
*>> Rollback :-

**>> PSUDO COLUMNS :- THIS ARE THE INVISIBLE COLUMN WHICH ARE PRESENT IN EVERY
TABLE
1.ROWID :-IT IS A UNIQUE ADDRESS GIVEN TO A RECORD AND IT WILL GET CREATE WHEN WE
INSERT THE DATA INTO A TABLE
2.ROW NUMBER :-THIS IS A SERIAL NUMBER GIVEN TO THE RECORDS.WHEN WE TRY DISPLAY THE
RECORDS THEN IT GENERATES SERIAL NUMBERS IN ROWNUM COLUMN.NOT USE > OPERATOR,USE
ONLY < OR <=

1.WHY ALIAS NAME NOT USE WHERE CLAUSE?


ANS :- SELECT CLAUSE EXECUTE AFTER WHERE CLAUSE

write a query to display half-term salary into employee number


display the employee name who has six characters in their name and the third char
is A
DETAILS OF EMPLOYEES WHO'S NAME CONTAINS E AS LAST BUT 1 CHAR
*)DESPLAY DETAILS EMP TO HIRED IN DEC
*)DISPLAY DETAILS EMP TO SAL CONTAINS 50 AS LAST 2 DIGITS
*)DISPLAY THE NAME AND HIRED DATE EMP IF ENAME START WITH VOWELS
the emp no of designation of smi
the details of emp who is eaarning more than 2000 per motnth
along with anual salary in dept no 20
the emp name to hired date if the employee hired after 1981
the details of emp who is working in deptno 10 and earning more than 2000
emp name deptno and sal of all the emp EXCEPT those deptno 10 and 40
DISPLAY THE EMP NAME AND SAL OF ALL THE EMPLOYEES IF THE EMPLOYEES ARE
ERARNING<1000 AND EARNINGS>3000
DISPLAY EMP NAME AND HIREDATE OF ALL THE EMPLOYEES EXCEPT WHO HIRED IN 1982
DISPLAY THE DETAILS WHO DOES NOT EARN ANY COMMISION
DISPLAY THE EMPLOYEES THOSSE FOR GETTING THE SALARY AND COMMISION
DETAILS OF EMPLOYEE WHOSE NAME CONTAINS UNDERSCORE
DETAILS OF EMP IF ENAME START WITH UNDERSCORE AND ENDS WITH UNDERSCORE
DETAILS IF EMP WHOSE NAME CONTAINS 2%
if ename having 8 char in their name and 3rd and 7th char is
the no of employees earning more then 1500 in deptno 20n
the total sal given to the employees whose name contains char E
the min sal given to the employees whose working as clerk in deptno 10 or 20
WTQD CALCULATE YOUR OWN AGE
the number of employees working in each designation
the number of employes earning more than 2000 in each dept
THE TOTAL SALARY NEEDED TO PAY FOR EACH DESIGNATION
THE NUM OF EMP THE MAX SAL OF EMP HAVING CHAR A IN THEIR NAMES IN EACH DESIGNATION
THE NUMBER OF EMP WORKING OF EACH DEPT EXCEPT PRESIDENT
WAQTD THE MAX SAL IN EACH DESIGNATION IF MAX SAL IS GREATER THAN 2500
WAQTD THE NUMBER OF EMPLOYEES EARNING SALARY MORE THAN 1200 IN EACH DESIGNATION AND
TOTAL SALARY NEEDED TO PAY AN EMP OF EACH DESIGNATION MUCH EXCEEDS 3800
THE ENAME AND DESIGNATION IF THE EMP ARE WORKING IS SAME DESIGNATION AS ALLEN
THE DETAILS OF EMPLOYEE IF EMPLOYEES EARNING MORE THAN SCOTT BUT LESS THAN KING
THE NAME OF AN EMP WHOSE NAME START WITH A AND WORKS IT SAME DEPT AS BLAKE
WAQTD THE DETAILS TO EMP IF EMP HIRED AFTER ALL THE CLERKS.
THE DETAILS OF EMP IF THE EMPLOYEES ARE EARNING MORE THAN ANYONE OF THE SALESMAN
WAQTD THE DPT NAME OF AN EMP WHOSE NAME IS SMITH
THE DETAILS OF 3RD HIRED EMPLOYEE
WAQTD THE MANAGER NAME OF JOHNS, MARTIN & SCOTT
WAQTD THE DETAILS OF EMP WHO ARE REPORTING TO KING
WAQTD THE ENAME AND DESIGNATION AND DEPTNAME ONLY IF EMPLOYEE WORKING IN ACCOUNTING
DEPT
WAQTD THE DEPTNAME AND NO OF EMP WORKING IN EACH DEPT
THE DEPTNAME AND DESIGNATION FROM ALL THE EMPLOYEES WHOSE JOB AND DEPTNAME START
WITH S
WAQTD THE ENAME AND MANAGER NAME
THE ENAME AND EMP SAL AND MGRNAME AND MGR SAL
WAQTD ENAME AND MGR JOB IF MGR WORKS IN DEPT 10 OR 20
WAQTD ENAME AND MGR SAL IF EMP AND MGR BOTH ARE MORE THAN 2300
WAQTD ENAME,MGR NAME AND MANAGER'S MGR NAME
THE DETAILS OF DEPT IF ATLEAST ONE EMPLOYE IS WORKING IN THAT DEPT
THE DETAILS OF DEPT IF NO ONE IS WORKING IN THAT DEPT
WAQTD THE nTH MAXIMUM SALARY
DETAILS OF EMPLOYEE IN A DECENDING ORDER BEST ON SALARY
THE DETAILS OF EMPLOYEE IN WHICH NEW EMPLOYEES ON TOP AND OLD EMPLOYEES ON LAST
WAQTD THE FIRST HALF OF THE TABLE.
ANS :- SELECT ROWNUM,EMP.* FROM EMP WHERE ROWNUM<=(SELECT COUNT(*) /2 FROM EMP);
WAQTD THE 5TH RECORDS OF THE TABLE
ANS :- SELECT * FROM(SELECT ROWNUM SLNO,EMP.* FROM EMP) WHERE SLNO=5;
WAQTD THE 2ND HALF OF THE TABLE
ANS :- SELECT*FROM(SELECT ROWNUM SLNO,EMP.* FROM EMP) WHERE SLNP>=(SELECT
COUNT(*) /2 FROM EMP);
ANS :- SELECT EMP.* FROM EMP,(SELECT ROWNUM SLNO,EMP.* FROM EMP) EMP2 WHERE
EMP.EMPNO=EMP2.EMPNO AND SLNO>=(SELECT COUNT(*) /2 FROM EMP);
Diff between WHERE and HAVING
ANS :- The main difference between the WHERE and HAVING clauses comes when used
together with the GROUP BY clause. In that case, WHERE is used to filter rows
before grouping, and HAVING is used to exclude records after grouping.

You might also like