Search This Blog

Thursday, April 15, 2021

SQL for testers

SQL Queries Set 1

1.Display the dept information from department table
select * from dept;

2.Display the details of all employees
select * from emp;

3.Display the name and job for all employees
select ename,job from emp;

4.Display name and salary for all employees
select ename,sal from emp;

5.Display employee number and total salary for each employee
select empno,sal+comm from emp;

6.Display employee name and annual salary for all employees
select empno,ename,12*sal+nvl(comm,0) annualsal from emp;

7.Display the names of all employees who are working in department number 10
select ename from emp where deptno = 10;

8.Display the names of all employees working as clerks and drawing a salary more than 3000
select ename from emp wher job = ‘CLERK’ and sal > 3000;

9.Display employee number and names for employees who earn commission
select empno,ename from emp where comm is not null and comm > 0;

10.Display names of employees who do not earn any commission
select empno,ename from emp where comm is null and comm = 0;

11.Display the names of employees who are working as clerk , salesman or analyst and drawing a salary more than 3000
select ename from emp where (job=’CLERK’ or job=’SALESMAN’ or job=’ANALYST’) and sal>3000;

12.Display the names of employees who are working in the company for the past 5 years
select ename from emp where sysdate – hiredate > 5*365;

13.Display the list of employees who have joined the company before 30 th june 90 or after 31 st dec 90
select * from emp where hiredate between ’30-jun-1990′ and ’31-dec-1990′;

14.Display current date
select sysdate from dual;

15.Display the list of users in your database (using log table)
select * from dba_users;

16.Display the names of all tables from the current user
select * from tab;

17.Display the name of the current user
show user;

18.Display the names of employees working in department number 10 or 20 or 40 or employees working as clerks , salesman or analyst
select ename from emp where deptno in (10,20,40) or job in (‘CLERK’,’SALESMAN’,’ANALYST’);

19.Display the names of employees whose name starts with alphabet S
select ename from emp where ename like ‘S%’;

20.Display employee name from employees whose name ends with alphabet S
select ename from emp where ename like ‘%S’;

21.Display the names of employees whose names have sencond alphabet A in their names
select ename from emp where ename like ‘_S%’;

22.Display the names of employees whose name is exactly five characters in length
select ename from emp where length(ename)=5;
or
select ename from emp where ename like ‘_____’;

23.Display the names of employees who are not working as managers
select * from emp minus (select * from emp where empno in (select mgr from emp));
or
select * from emp where empno not in (select mgr from emp where mgr is not null);
or
select * from emp e where empno not in (select mgr from emp where e.empno=mgr);

24.Display the names of employees who are not working as SALESMAN or CLERK or ANALYST
select job from emp where job not in (‘CLERK’,’ANALYST’,’SALESMAN’);

25.Display all rows from emp table. The system should wait after every screen full of information
set pause on;

26.Display the total number of employees working in the company
select count(*) from emp;

27.Display the total salary and total commission to all employees
select sum(sal), sum(nvl(comm,0)) from emp;

28.Display the maximum salary from emp table
select max(sal) from emp;

29.Display the minimum salary from emp table
select min(sal) from emp;

30.Display the average salary from emp table
select avg(sal) from emp;

31.Display the maximum salary being paid to CLERK
select max(sal) from emp where job=’CLERK’;

32.Display the maximum salary being paid in dept no 20
select max(sal) from emp where deptno=20;

33.Display the minimum salary being paid to any SALESMAN
select min(sal) from emp where job=’SALESMAN’;

34.Display the average salary drawn by managers
select avg(sal) from emp where job=’MANAGER’;

35.Display the total salary drawn by analyst working in dept no 40
select sum(sal)+sum(nvl(comm,0)) from emp where deptno=40;

36.Display the names of employees in order of salary i.e. the name of the employee earning lowest salary shoud appear first
select ename from emp order by sal;

37.Display the names of employees in descending order of salary
select ename from emp order by sal desc;

38.Display the details from emp table in order of emp name
select ename from emp order by ename;

39.Display empnno,ename,deptno and sal. Sort the output first based on name and within name by deptno and witdhin deptno by sal;
select * from emp order by ename,deptno,sal;

40) Display the name of employees along with their annual salary(sal*12).
the name of the employee earning highest annual salary should appear first?
Ans:select ename,sal,sal*12 “Annual Salary” from emp order by “Annual Salary” desc;

41) Display name,salary,Hra,pf,da,TotalSalary for each employee.
The out put should be in the order of total salary ,hra 15% of salary ,DA 10% of salary .pf 5% salary Total Salary
will be (salary+hra+da)-pf?
Ans: select ename,sal SA,sal*0.15 HRA,sal*0.10 DA,sal*5/100 PF, sal+(sal*0.15)+(sal*0.10)-(sal*.05) TOTALSALARY
from emp ORDER BY TOTALSALARY DESC;

42) Display Department numbers and total number of employees working in each Department?
Ans: select deptno,count(*) from tvsemp group by deptno;

43) Display the various jobs and total number of employees working in each job group?
Ans: select job,count(*) from tvsemp group by job;

44)Display department numbers and Total Salary for each Department?
Ans: select deptno,sum(sal) from tvsemp group by deptno;

45)Display department numbers and Maximum Salary from each Department?
Ans: select deptno,max(Sal) from tvsemp group by deptno;

46)Display various jobs and Total Salary for each job?
Ans: select job,sum(sal) from tvsemp group by job;

47)Display each job along with min of salary being paid in each job group?
Ans: select job ,min(sal) from tvsemp group by job;

48) Display the department Number with more than three employees in each department?
Ans: select deptno ,count(*) from tvsemp group by deptno having count(*)>3;

49) Display various jobs along with total salary for each of the job where total salary is greater than 40000?
Ans: select job,sum(sal) from tvsemp group by job having sum(SAl)>40000;

50) Display the various jobs along with total number of employees in each job.The
output should contain only those jobs with more than three employees?
Ans: select job,count(*) from tvsemp group by job having count(*)>3;

51) Display the name of employees who earn Highest Salary?
Ans: select ename, sal from tvsemp where sal>=(select max(sal) from tvsemp );

52) Display the employee Number and name for employee working as clerk and earning highest salary among the clerks?
Ans: select ename,empno from tvsemp where sal=(select max(sal) from tvsemp where job=’CLERK’) and job=’CLERK’ ;

53) Display the names of salesman who earns a salary more than the Highest Salary of the clerk?
Ans: select ename,sal from tvsemp where sal>(select max(sal) from tvsemp where job=’CLERK’) AND job=’SALESMAN’;

54) Display the names of clerks who earn a salary more than the lowest Salary of any salesman?
Ans: select ename,sal from tvsemp where sal>(select min(sal) from tvsemp where job=’SALESMAN’) and job=’CLERK’;

55) Display the names of employees who earn a salary more than that of jones or that of salary greater than that of scott?
Ans: select ename,sal from tvsemp where sal>all(select sal from tvsemp where ename=’JONES’ OR ename=’SCOTT’);

56) Display the names of employees who earn Highest salary in their respective departments?
Ans: select ename,sal,deptno from tvsemp where sal in (select max(sal) from tvsemp group by deptno);

57) Display the names of employees who earn Highest salaries in their respective job Groups?
Ans: select ename,job from tvsemp where sal in (select max(sal) from tvsemp group by job);

58) Display employee names who are working in Accounting department?
Ans: select e.ename,d.dname from emp e,dept d where e.deptno=d.deptno and d.dname=’ACCOUNTING’;

59) Display the employee names who are Working in Chicago?
Ans: select e.ename,d.loc from emp e,tvsdept d where e.deptno=d.deptno and d.loc=’CHICAGO’;

60) Display the job groups having Total Salary greater than the maximum salary for Managers?
Ans: select job ,sum(sal) from tvsemp group by job having sum(sal) >(select max(sal) from tvsemp where job=’MANAGER’);

61) Display the names of employees from department number 10 with salary greater than that of ANY employee working in other departments?
Ans: select ename,deptno from tvsemp where sal>any(select min(sal) from tvsemp where deptno!=10 group by deptno) and deptno=10 ;

62) Display the names of employees from department number 10 with salary greater than that of ALL employee working in other departments?
Ans: select ename,deptno from tvsemp where sal>all(select max(sal) from tvsemp where deptno!=10 group by deptno) and deptno=10 ;

63) Display the names of mployees in Upper Case?
Ans: select upper(ename) from tvsemp;

64) Display the names of employees in Lower Case?
Ans: select Lower(ename) from tvsemp;

65) Display the names of employees in Proper case?
Ans: select InitCap(ename)from tvsemp;

Q:66) Find the length of your name using Appropriate Function?
Ans: select lentgh(‘RAMA’) from dual;

67) Display the length of all the employee names?
Ans: select length(ename) from tvsemp;

68) Display the name of employee Concatinate with Employee Number?
Ans: select ename||’ ‘||empno from tvsemp;

69) Use appropriate function and extract 3 characters starting from 2 characters from the following string ‘Oracle’ i.e., the out put should be ac?
Ans: select substr(‘Oracle’,3,2) from dual;

70) Find the first occurance of character a from the following string Computer Maintenance Corporation?
Ans: select lstr(‘Computer Maintenance Corporation’,’a’ ) from dual;

71) Replace every occurance of alphabet A with B in the string .Alliens (Use Translate function)?
Ans: select translate(‘Alliens’,’A’,’B’) from Dual;

72) Display the information from the employee table . where ever job Manager is found it should be displayed as Boss?
Ans: select ename ,replace(job,’MANAGER’,’BOSS’) from tvsemp;

73) Display empno,ename,deptno from tvsemp table. Instead of display department numbers
display the related department name(Use decode function)?
Ans: select empno,ename,deptno,Decode(deptno,10,’ACCOUNTING’
,20,’RESEARCH’,30,’SALES’,’OPERATIONS’)DName from tvsemp;

74) Display your Age in Days?
Ans: select sysdate-to_date(’30-jul-1977′) from dual;

75) Display your Age in Months?
Ans: select months_between(sysdate,to_date(’30-jul-1977′)) from dual;

76) Display current date as 15th August Friday Nineteen Nienty Seven?
Ans: select To_char(sysdate,’ddth Month Day year’) from dual;

77) Display the following output for each row from tvsemp table?
Ans: Q:78

78) Scott has joined the company on 13th August ninteen ninety?
Ans: select empno,ename,to_char(Hiredate,’Day ddth Month year’) from tvsemp;

79) Find the nearest Saturday after Current date?
Ans: select next_day(sysdate,’Saturday’) from dual;

80) Display the current time?
Ans: select To_Char(sysdate,’HH:MI:SS’) from dual;

81) Display the date three months before the Current date?
Ans: select Add_months(sysdate,-3) from dual

82) Display the common jobs from department number 10 and 20?
Ans: select job from tvsemp where job in (select job from tvsemp where deptno=20) and deptno=10;

83) Display the jobs found in department 10 and 20 Eliminate duplicate jobs?
Ans: select Distinct job from tvsemp where deptno in(10,20);

84) Display the jobs which are unique to department 10?
Ans: select job from tvsemp where deptno=10;

85) Display the details of those employees who do not have any person working under him?
Ans: select empno,ename,job from tvsemp where empno not in (select mgr from tvsemp where mgr is not null );

86) Display the details of those employees who are in sales department and grade is 3?
Ans: select e.ename,d.dname,grade from emp e,dept d ,salgrade where e.deptno=d.deptno and dname=’SALES’ and grade=3;

87) Display thoes who are not managers?
Ans: select ename from tvsemp where job!=’MANAGER’;

88) Display those employees whose name contains not less than 4 characters?
Ans: select ename from tvsemp where length(ename)>=4

89) Display those department whose name start with”S” while location name ends with “K”?
Ans: select e.ename,d.loc from tvsemp e ,tvsdept d where d.loc like(‘%K’) and ename like(‘S%’)

90) Display those employees whose manager name is Jones?
Ans: select e.ename Superior,e1.ename Subordinate from tvsemp e,e1 where e.empno=e1.mgr and e.ename=’JONES’;

91) Display those employees whose salary is more than 3000 after giving 20% increment?
Ans: select ename,sal,(sal+(sal*0.20)) from tvsemp where (sal+(sal*0.20))>3000;

92) Display all employees with their department names?
Ans: select e.ename,d.dname from tvsemp e, tvsdept d where e.deptno=d.deptno

93) Display ename who are working in sales department?
Ans: select e.ename,d.dname from emp e,dept d where e.deptno=d.deptno and d.dname=’SALES’;

94) Display employee name,dept name,salary,and commission for those sal in between 2000
to 5000 while location is Chicago?
Ans: Select e.ename,d.dname,e.sal,e.comm from tvsemp e,dept d where e.deptno=d.deptno and sal between 2000 and 5000;

95) Display those employees whose salary is greater than his managers salary?
Ans: Select e.ename,e.sal,e1.ename,e1.sal from tvsemp e,e1 where e.mgr=e1.empno and e.sal>e1.sal;

96) Display those employees who are working in the same dept where his manager is work?
Ans: select e.ename,e.deptno,e1.ename,e1.deptno from tvsemp e,e1 where e.mgr=e1.empno and e.deptno=e1.deptno;

97) Display those employees who are not working under any Manager?
Ans: select ename from tvsemp where mgr is null;

98) Display the grade and employees name for the deptno 10 or 30 but grade is not 4 while
joined the company before 31-DEC-82?
Ans: select ename,grade,deptno,sal from tvsemp ,salgrade where ( grade,sal) in
( select grade,sal from salgrade,tvsemp where sal between losal and hisal)
and grade!=4 and deptno in (10,30) and hiredate<’31-Dec-82

99) Update the salary of each employee by 10% increment who are not eligible for commission?
Ans: update tvsemp set sal= (sal+(sal*0.10)) where comm is null;

100) Delete those employees who joined the company before 31-Dec-82 while their department Location is New York or Chicago?
Ans: select e.ename,e.hiredate,d.loc from tvsemp e,tvsdept d where
e.deptno=d.deptno and hiredate<’31-Dec-82′ and d.loc in(‘NEW YORK’,’CHICAGO’);

Sql Queries2

101) Display employee name ,job,deptname,loc for all who are working as manager?

Ans: select e.ename,e.job,d.dname,d.loc from tvsemp e,tvsdept d where e.deptno=d.deptno

and e.empno in (select mgr from tvsemp where mgr is not null);102) Display those employees whose manager name is jones and also display their manager

name?

Ans: select e.ename sub,e1.ename from tvsemp e,e1 where e.mgr=e1.empno and e1.ename=’JONES’;

103) Display name and salary of ford if his salary is equal to hisal of his grade?

Ans: select ename,grade,hisal,sal from emp,salgrade where ename=’FORD’ and sal=hisal;

OR

select grade,sal,hisal from tvsemp,salgrade where ename=’FORD’ and sal between losal and hisal;

OR

select ename,sal,hisal,grade from tvsemp,salgrade where ename=’FORD’

and (grade,sal) in (select grade,hisal from salgrade,tvsemp where

sal between losal and hisal);


104) Display employee name ,job,deptname,his manager name ,his grade and make an

under department wise?

Ans: select e.ename sub,e1.ename sup,e.job,d.dname ,grade from tvsemp e,e1,salgrade,tvsdept d where e.mgr=e1.empno and e.sal between losal and hisal and e.deptno=d.deptno group by d.deptno,e.ename,e1.ename,e.job,d.dname,grade;

OR

select e.ename sub,e1.ename sup,e.job,d.dname ,grade from tvsemp e,e1,salgrade,tvsdept d where e.mgr=e1.empno and e.sal between losal and hisal and e.deptno=d.deptno


105) List out all the employee names ,job,salary,grade and deptname for every one in a company except ‘CLERK’ . Sort on salary display the highest salary?

Ans: select e.ename ,e.job,e.sal,d.dname ,grade from tvsemp e,salgrade,tvsdept d where (e.deptno=d.deptno and e.sal between losal and hisal ) order by e.sal desc


106) Display employee name,job abd his manager .Display also employees who are with out

managers?

Ans: select e.ename ,e1.ename,e.job,e.sal,d.dname from tvsemp e,e1,tvsdept d where e.mgr=e1.empno(+) and e.deptno=d.deptno107) Display Top 5 employee of a Company?

Ans:

108) Display the names of those employees who are getting the highest salary?

Ans: select ename,sal from tvsemp where sal in (select max(sal) from tvsemp)


109) Display those employees whose salary is equal to average of maximum and minimum?

Ans: select * from tvsemp

where sal=(select (max(sal)+min(sal))/2 from tvsemp)


110) Select count of employees in each department where count >3?

Ans: select count(*) from tvsemp group by deptno having count(*)>3


111) Display dname where atleast three are working and display only deptname?

Ans: select d.dname from tvsdept d, tvsemp e where e.deptno=d.deptno group by d.dname having count(*)>3;


112) Display name of those managers name whose salary is more than average salary of

Company?

Ans: select distinct e1.ename,e1.sal from tvsemp e,e1,dept d where e.deptno=d.deptno and e.mgr=e1.empno and e1.sal> (select avg(sal) from tvsemp);


113) Display those managers name whose salary is more than average salary salary of his

employees?

Ans: select distinct e1.ename,e1.sal from tvsemp e,e1,dept d where e.deptno=d.deptno and e.mgr=e1.empno and e1.sal>any (select avg(sal) from tvsemp group by deptno);


114) Display employee name,sal,comm and netpay for those employees whose netpay is

greater than or equal to any other employee salary of the company?

Ans: select ename,sal,NVL(comm,0),sal+NVL(comm,0) from tvsemp where

sal+NVL(comm,0) >any (select e.sal from tvsemp e );


115) Display those employees whose salary is less than his manager but more than salary of

other managers?

Ans: select e.ename sub,e.sal from tvsemp e,e1,tvsdept d where


e.deptno=d.deptno and e.mgr=e1.empno

and e.sal<e1.sal

and e.sal >any (select e2.sal from tvsemp e2, e,tvsdept d1 where

e.mgr=e2.empno and d1.deptno=e.deptno);

116) Display all employees names with total sal of company with each employee name?

Ans:

117) Find the last 5(least) employees of company?

Ans:

118) Find out the number of employees whose salary is greater than their managers salary?

Ans: select e.ename,e.sal,e1.ename,e1.sal from tvsemp e,e1,tvsdept d where e.deptno=d.deptno and e.mgr=e1.empno and e.sal>e1.sal

119) Display the manager who are not working under president but they are working under

any other manager?

Ans: select e2.ename from emp e1,emp e2,emp e3 where e1.mgr=e2.empno and e2.mgr=e3.empno and e3.job!=’PRESIDENT’;

120) Delete those department where no employee working?

Ans: delete from tvsemp where empno is null;

121) Delete those records from emp table whose deptno not available in dept table?

Ans: delete from tvsemp e where e.deptno not in (select deptno from tvsdept)

122) Display those enames whose salary is out of grade available in salgrade table?

Ans: select empno,sal from tvsemp where sal<(select min(LOSAL) from salgrade )

OR sal>(select max(hisal) from salgrade)

123) Display employee name,sal,comm and whose netpay is greater than any othere in the

company?

Ans: select ename,sal,comm,sal+comm from tvsemp where sal+comm>any

(select sal+comm from tvsemp )

124) Display name of those employees who are going to retire 31-Dec-99 if maximum job period

is 30 years?

Ans: select empno, hiredate,sysdate, to_char(sysdate,’yyyy’) – to_char(hiredate,’yyyy’)

from tvsemp where to_char(sysdate,’yyyy’) – to_char(hiredate,’yyyy’)=30

125) Display those employees whose salary is odd value?

Ans: select ename ,sal from tvsemp where mod(sal,2)!=0

126) Display those employees whose salary contains atleast 3 digits?

Ans: select ename,sal from tvsemp where length(sal)=3

127) Display those employees who joined in the company in the month of Dec?

Ans: Select empno,ename from tvsemp where trim(to_char(hiredate,’Mon’))=trim(‘DEC’)

128) Display those employees whose name contains A?

Ans: select ename from tvsemp where ename like(‘%A%’)

129) Display those employees whose deptno is available in salary?

Ans: select ename,sal from tvsemp where deptno in (select distinct sal from tvsemp);

130) Display those employees whose first 2 characters from hiredate – last 2 characters sal?

Ans: select empno,hiredate,sal from tvsemp where trim(substr(hiredate,1,2))=trim(substr(sal,-2,2));

or

select hiredate,sal from tvsemp where to_Char(hiredate,’dd’)=trim(substr(sal,-2,2))

131) Display those employeess whose 10% of salary is equal to the year joining?

Ans: select ename ,sal,0.10*sal from tvsemp where 0.10*sal=trim(to_char(hiredate,’yy’))

132) Display those employees who are working in sales or research?

Ans: select e.ename from tvsemp e ,tvsdept d where e.deptno=d.deptno and d.dname in(‘SALES’,’RESEARCH’);

133) Display the grade of jones?

Ans: select ename,grade from tvsemp,salgrade where ( grade,sal) =

(select grade,sal from salgrade,tvsemp where sal between losal and hisal and ename=’JONES’)

134) Display those employees who joined the company before 15th of the month?

Ans: select ename ,hiredate from tvsemp where hiredate<’15-Jul-02′ and hiredate >=’01-jul-02′;

135) Display those employees who has joined before 15th of the month?

Ans: select ename ,hiredate from tvsemp where hiredate<’15-Jul-02′

136) Delete those records where no of employees in particular department is less than 3?

Ans: delete from tvsemp where deptno in (select deptno from tvsemp group by deptno having count(*) ❤

137A) Delete those employeewho joined the company 10 years back from today?

Ans: delete from tvsemp where empno in (select empno from tvsemp

where to_char(sysdate,’yyyy’)- to_char(hiredate,’yyyy’)>=10)

137B) Display the deptname the number of characters of which is equal to no of employee

in any other department?

Ans:

138) Display the deptname where no employee is working?

Ans: select deptno from tvsemp where empno is null;

139) Display those employees who are working as manager?

Ans: select e2.ename from tvsemp e1,e2 where e1.mgr=e2.empno and e2.empno is not null

140) Count th number of employees who are working as managers (Using set opetrator)?

Ans: select d.dname from tvsdept d where length(d.dname) in (select count(*) from tvsemp e where e.deptno!=d.deptno group by e.deptno)

141) Display the name of the dept those employees who joined the company on the same date?

Ans: select a.ename,b.ename from tvsemp a,tvsemp b where a.hiredate=b.hiredate and a.empno!=b.empno

142) Display those employees whose grade is equal to any number of sal but not equal to first number of sal?

Ans: select ename,sal,grade ,substr(sal,grade,1) from tvsemp,salgrade where

grade!=substr(sal,1,1) and grade = substr(sal,grade,1)

and sal between losal and hisal

143) Count the no of employees working as manager using set operation?

Ans: Select count(empno) from tvsemp where

empno in (select a.empno from tvsemp a

intersect

select b.mgr from tvsemp b)

144) Display the name of employees who joined the company on the same date?

Ans: select a.ename,b.ename from tvsemp a,tvsemp b where a.hiredate=b.hiredate and a.empno!=b.empno;

145) Display the manager who is having maximum number of employees working under him?

Ans: select e2.ename,count(*) from tvsemp e1,e2 where e1.mgr=e2.empno group by e2.ename Having count(*)=(select max(count(*)) from tvsemp e1,e2 where e1.mgr=e2.empno group by e2.ename)

146) List out the employee name and salary increased by 15% and express as whole number of Dollars?

Ans: select ename,sal,lpad(translate(sal,sal,((sal +(sal*0.15))/50)),5,’$’) from tvsemp

147) Produce the output of the emptable “EMPLOYEE_AND JOB” for ename and job ?

Ans: select ename”EMPLOYEE_AND”,job”JOB” FROM TVSEMP;

148) Lust of employees with hiredate in the format of ‘June 4 1988’?

Ans: select ename,to_char(hiredate,’Month dd yyyy’) from tvsemp;

149) print list of employees displaying ‘Just salary’ if more than 1500 if exactly 1500

display ‘on taget’ if less than 1500 display below 1500?

Ans: select ename,sal,

(

case when sal < 1500 then

‘Below_Target’

when sal=1500 then

‘On_Target’

when sal > 1500 then

‘Above_Target’

else

‘kkkkk’

end

)

from tvsemp

150) Which query to calculate the length of time any employee has been with the company

Ans: select hiredate,to_char(hiredate,’ HH:MI:SS’) FROM tvsemp

151) Given a string of the format ‘nn/nn’ . Verify that the first and last 2 characters are numbers .And that the middle character is ‘/’ Print the expressions ‘Yes’ IF valid

‘NO’ of not valid . Use the following values to test your solution’12/54′,01/1a,’99/98′?

Ans:

152) Employes hire on OR Before 15th of any month are paid on the last friday of that month

those hired after 15th are paid the last friday of th following month .print a list of employees .their hiredate and first pay date sort those who se salary contains first

digit of their deptno?

Ans: select ename,hiredate, LAST_DAY ( next_day(hiredate,’Friday’)),

(

case when to_char(hiredate,’dd’) <=(’15’) then

LAST_DAY ( next_day(hiredate,’Friday’))

when to_char(hiredate,’dd’)>(’15’) then

LAST_DAY( next_day(add_months(hiredate,1),’Friday’))

end

)

from tvsemp

153) Display those managers who are getting less than his employees salary?

Ans: select a.empno,a.ename ,a.sal,b.sal,b.empno,b.ename from tvsemp a, tvsemp b where a.mgr=b.empno and a.sal>b.sal

154) Print the details of employees who are subordinates to BLAKE?

Ans: select a.empno,a.ename ,b.ename from tvsemp a, tvsemp b where a.mgr=b.empno

and b.ename=’BLAKE’

151.Display those who working as manager using co related sub query

select * from emp where empno in (select mgr from emp);

152.Display those employees whose manager name is JONES and also with his manager name

select * from emp where mgr=(select empno from emp where ename=’JONES’) union select * from emp where empno =

(select mgr from emp where ename=’JONES’);

153.Define variable representing the expressions used to calculate on employees total annual renumaration

define emp_ann_sal=(sal+nvl(comm,0))*.12;

154.Use the variable in a statement which finds all employees who can earn 30000 a year or more

select * from emp where &emp_ann_sal>30000;

155.Find out how many managers are there with out listing them

select count(*) from emp where empno in (select mgr from emp);

156.Find out the avg sal and avg total remuneration for each job type remember salesman earn commission

select job,avg(sal+nvl(comm,0)),sum(sal+nvl(comm,0)) from emp group by job;

157.Check whether all employees number are indeed unique

select count(empno) ,count(distinct(empno)) from emp having count(empno)=(count(distinct(empno));

158.List out the lowest paid employees working for each manager, exclude any groups where minsal is less than

1000 sort the output by sal

select e.ename,e.mgr,e.sal from emp e where sal in (select min(sal) from emp where mgr=e.mgr) and

e.sal>1000 order by sal;

159.List ename,job,annual sal,depno,dname and grade who earn 30000 per year and who are not clerks

select e.ename,e.job,(e.sal+nvl(e.comm,0))*12,e.deptno,d.dname,s.grade from emp e,salgrade s,dept d

where e.sal between s.losal and s.hisal and e.deptno=d.deptno and (e.sal+nvl(comm,0))*12 > 30000

and e.job<>’CLERK’;

160.Find out th job that was falled in the first half of 1983 and the same job that was falled during the

same period on 1984

161.Find out the all employees who joined the company before their manager

select * from emp e where hiredate <(select hiredate from emp where empno=e.mgr);

162.List out the all employees by name and number along with their manager’s name and number also display

‘NO MANAGER’ who has no manager

select e.empno,e.ename,m.empno Manager,m.ename ManagerName from emp e,emp m where e.mgr=m.empno

union

select empno,ename,mgr,’NO Manager’ from emp where mgr is null;

163.Find out the employees who earned the highest sal in each job typed sort in descending sal order

select * from emp e where sal=(select max(sal) from emp where job=e.job);

164.Find out the employees who earned the min sal for their job in ascending order

select * from emp e where sal=(select min(sal) from emp where job=e.job) order by sal;

165.Find out the most recently hired employees in each dept order by hire date

select * from emp order by deptno,hiredate desc;

166.Display ename,sal and deptno for each employee who earn a sal greater than the avg of their department

order by deptno

select ename,sal,deptno from emp e where sal>(select avg(sal) from emp where deptno=e.deptno) order by deptno;

167.Display the department where there are no employees

select deptno,dname from dept where deptno not in (select distinct(deptno) from emp);

168.Display the dept no with highest annual remuneration bill as compensation

select deptno,sum(sal) from emp group by deptno having sum(sal)=(select max(sum(sal)) from emp group by deptno);

169.In which year did most people join the company. Display the year and number of employees

select count(*),to_char(hiredate,’yyyy’) from emp group by to_char(hiredate,’yyyy’);

170.Display avg sal figure for the dept

select deptno,avg(sal) from emp group by deptno;

171.Write a query of display against the row of the most recently hierd employee.display ename hire date

and column max date showing

select empno,hiredate from emp wher hiredate=(select max(hiredate) from emp);

172.Display employees who can earn more than lowest sal in dept no 30

select * from emp where sal > (select min(sal) from emp where deptno=30);

173.Find employees who can earn more than every employees in dept no 30

select * from emp where sal>(select max(sal) from emp where deptno=30);

select * from emp where sal>all(select sal from emp where deptno=30);

174.select dept name and deptno and sum of sal

break on deptno on dname;

select e.deptno,d.dname,sal from emp e,dept d where e.deptno=d.deptno order by e.deptno;

175.Find out avg sal and avg total remainders for each job type

176.Find all dept’s which have more than 3 employees

select deptno from emp group by deptno having count(*)>3;

177.If the pay day is next Friday after 15th and 30th of every month. What is the next pay day from

their hire date for employee in emp table

178.If an employee is taken by you today in your organization and is a policy in your company to have a

review after 9 months the joined date (and of 1st of next month after 9 months) how many days from today

your employee has to wait for a review

179.Display employee name and his sal whose sal is greater than highest avg of deptno

180.Display the 10 th record of emp table (without using rowid)

181.Display the half of the enames in upper case and remaining lower case

select concat(upper(substr(ename,0,length(ename)/2),lower(substr(ename,length(ename)/2+1,length(ename)))) from

emp;

182.Display the 10th record of emp table without using group by and rowid

183.Delete the 10th record of emp table

184.Create a copy of emp table

create table emp1 as select * from emp;

185.select ename if ename exists more than once

select distinct(ename) from emp e where ename in (select ename from emp where e.empno<>empno);

186.Display all enames in reverse order

select ename from emp order by ename desc;

187.Display those employee whose joining of month and grade is equal

select empno,ename from emp e,salgrade s where e.sal between s.losal and s.hisal and to_char(hiredate,

‘mm’)=grade;

188.Display those employee whose joining date is available in deptno

select * from emp where to_char(hiredate,’dd’) =deptno;

189.Display those employee name as follows A ALLEN, B BLAKE

select substr(ename,1,1)||”||ename from emp;

190.List out the employees ename,sal,pf from emp

select ename,sal,sal*15/100 pf from emp;

191.Display RSPS from emp without using updating,inserting

192.Create table emp with only one column empno

create table emp (empno number(5));

193.Add this column to emp table ename varchar2(20)

alter table emp add ename varchar2(20) not null;

194.OOPSI i forget to give the primary key constraint. Add it now

alter table emp add constraint emp_empno primary key (empno);

195.Now increase the length of ename column to 30 characters

alter table emp modify ename varchar2(30);

196.Add salary column to emp table

alter table emp add sal number(7,2);

197.I want to give a validation saying that sal can not be greater 10000(note give a name to this column)

alter table emp add constraint emp_sal_check check(sal<10000);

198.For the time being i have decided that i will not impose this validation. My boss has agreed to pay

more than 10000

alter table emp disable constraint emp_sal_check;

199.My boss has changed his mind. Now he doesn’t want to pay more than 10000 So revoke that salary constraint

alter table emp enable constraint emp_sal_check;

200.Add column called as mgr to your emp table

alter table emp add mgr number(5);


Sql Queries3

Q:1) Display the name of employees along with their annual salary(sal*12).

the name of the employee earning highest annual salary should appear first?

Ans: select ename,sal,sal*12 “Annual Salary” from emp order by “Annual Salary” desc;Q:2)Display name,salary,Hra,pf,da,TotalSalary for each employee.

The out put should be in the order of total salary ,hra 15% of salary ,

DA 10% of salary .pf 5% salary Total Salary will be (salary+hra+da)-pf?

Ans: select ename,sal SA,sal*0.15 HRA,sal*0.10 DA,sal*5/100 PF,

sal+(sal*0.15)+(sal*0.10)-(sal*.05) TOTALSALARY from emp ORDER BY TOTALSALARY DESC;

Q:3) Display Department numbers and total number of employees working in each Department?

Ans: select deptno,count(*) from emp group by deptno;


Q:4) Display the various jobs and total number of employees working in each job group?

Ans: select job,count(*) from emp group by job;


Q:5) Display department numbers and Total Salary for each Department?

Ans: select deptno,sum(sal) from emp group by deptno;


Q:6) Display department numbers and Maximum Salary from each Department?

Ans: select deptno,max(sal) from emp group by deptno;


Q:7) Display various jobs and Total Salary for each job?

Ans: select job,sum(sal) from emp group by job;


Q:8) Display each job along with min of salary being paid in each job group?

Ans: select job ,min(sal) from emp group by job;


Q:9) Display the department Number with more than three employees in each department?

Ans: select deptno ,count(*) from emp group by deptno having count(*)>3;


Q:10) Display various jobs along with total salary for each of the job

where total salary is greater than 40000?

Ans: select job,sum(sal) from emp group by job having sum(sal)>40000;


Q:11) Display the various jobs along with total number of employees in each job.The output should contain only those jobs with more than three employees?

Ans: select job,count(*) from emp group by job having count(*)>3;


Q:12) Display the name of employee who earn Highest Salary?

Ans: select ename, sal from emp where sal>=(select max(sal) from emp );


Q:13) Display the employee Number and name for employee working as clerk and earning highest salary among the clerks?

Ans: select ename,empno from emp where sal=(select max(sal) from emp where

job=’CLERK’) and job=’CLERK’ ;


Q:14) Display the names of salesman who earns a salary more than the Highest Salary of the Clerk?

Ans: select ename,sal from emp where sal>(select max(sal) from emp

where job=’CLERK’) AND job=’SALESMAN’;


Q:15) Display the names of clerks who earn a salary more than the lowest Salary of any Salesman?

Ans: select ename,sal from emp where sal>(select min(sal) from emp where job=’SALESMAN’) and job=’CLERK’;


Q:16) Display the names of employees who earn a salary more than that of jones or that of salary greater than that of scott?

Ans: select ename,sal from emp where sal>all(select sal from emp where

ename=’JONES’ OR ename=’SCOTT’);


Q:17) Display the names of employees who earn Highest salary in their respective departments?

Ans: select ename,sal,deptno from emp where sal in (select max(sal) from emp group by deptno);


Q:18) Display the names of employees who earn Highest salaries in their respective job Groups?

Ans: select ename,job from emp where sal in (select max(sal) from emp group by job);


Q:19) Display employee names who are working in Accounting department?

Ans: select e.ename,d.dname from emp e,dept d where e.deptno=d.deptno and d.dname=’ACCOUNTING’;


Q:20) Display the employee names who are Working in Chicago?

Ans: select e.ename,d.loc from emp e,dept d where e.deptno=d.deptno and d.loc=’CHICAGO’;


Q:21) Display the job groups having Total Salary greater than the maximum salary for Managers?

Ans: select job ,sum(sal) from emp group by job having sum(sal) >(select max(sal) from emp where job=’MANAGER’);


Q:22) Display the names of employees from department number 10 with salary greater than that of ANY employee working in other departments?

Ans: select ename,deptno from emp where sal>any(select min(sal) from emp where deptno!=10 group by deptno) and deptno=10 ;


Q:23) Display the names of employees from department number 10 with salary greater than that of ALL employee working in other departments?

Ans: select ename,deptno from emp where sal>all(select max(sal) from emp where deptno!=10 group by deptno) and deptno=10 ;


Q:24) Display the names of employees in Upper Case?

Ans: select upper(ename) from emp;


Q:25) Display the names of employees in Lower Case?

Ans: select Lower(ename) from emp;


Q:26) Display the names of employees in Proper case?

Ans: select InitCap(ename)from emp;


Q:27) Find the length of your name using Appropriate Function?

Ans: select lentgh(‘SRINIVASARAO’) from dual;


Q:28) Display the length of all the employee names?

Ans: select length(ename) from emp;


Q:29) Display the name of employee Concatinate with Employee Number?

Ans: select ename||’ ‘||empno from emp;


Q:30) Use appropriate function and extract 3 characters starting from 2 characters from the following string ‘Oracle’ i.e., the out put should be ac?

Ans: select substr(‘Oracle’,3,2) from dual;


Q:31) Find the first occurance of character a from the following string Computer Maintenance Corporation?

Ans: select lstr(‘Computer Maintenance Corporation’,’a’ ) from dual;


Q:32) Replace every occurance of alphabet A with B in the string .Alliens (Use Translate function)?

Ans: select translate(‘Alliens’,’A’,’B’) from Dual;


Q:33) Display the information from the employee table . where ever job Manager is found it should be displayed as Boss?

Ans: select ename ,replace(job,’MANAGER’,’BOSS’) from emp;


Q:34) Display empno,ename,deptno from emp table. Instead of display department numbers display the related department name(Use decode function)?

Ans: select empno,ename,deptno,Decode(deptno,10,’ACCOUNTING’

,20,’RESEARCH’,30,’SALES’,’OPERATIONS’)DName from emp;


Q:35) Display your Age in Days?

Ans: select sysdate-to_date(’30-jul-1977′) from dual;


Q:36) Display your Age in Months?

Ans: select months_between(sysdate,to_date(’30-jul-1977′)) from dual;


Q:37) Display current date as 15th August Friday Nineteen Nienty Seven?

Ans: select To_char(sysdate,’ddth Month Day year’) from dual;


Q:38) Display the following output for each row from emp table?

Ans: Q:39


Q:39) Scott has joined the company on 13th August ninteen ninety?

Ans: select empno,ename,to_char(Hiredate,’Day ddth Month year’) from emp;


Q:40) Find the nearest Saturday after Current date?

Ans: select next_day(sysdate,’Saturday’) from dual;


Q:41) Display the current time?

Ans: select To_Char(sysdate,’HH:MI:SS’) from dual;


Q:42) Display the date three months before the Current date?

Ans: select Add_months(sysdate,-3) from dual;


Q:43) Display the common jobs from department number 10 and 20?

Ans: select job from emp where job in (select job from emp where deptno=20) and deptno=10;


Q:44) Display the jobs found in department 10 and 20 Eliminate duplicate jobs?

Ans: select Distinct job from emp where deptno in(10,20);


Q:45) Display the jobs which are unique to department 10?

Ans: select job from emp where deptno=10;


Q:46) Display the details of those employees who do not have any person working under him?

Ans: select empno,ename,job from emp where empno not in (select mgr from emp where mgr is not null );


Q:47)Display the details of those employees who are in sales department and grade is 3?

Ans: select e.ename,d.dname,grade from emp e,dept d ,salgrade where e.deptno=d.deptno and dname=’SALES’ and grade=3;


Q:48) Display those who are not managers?

Ans: select ename from emp where job!=’MANAGER’;


Q:49) Display those employees whose name contains not less than 4 characters?

Ans: select ename from emp where length(ename)>=4;


Q:50) Display those department whose name start with”S” while location name ends with “K”?

Ans: select e.ename,d.loc from emp e ,dept d where d.loc like(‘%K’) and ename like(‘S%’);


Q:51) Display those employees whose manager name is Jones?

Ans: select e.ename Superior,e1.ename Subordinate from emp e,e1 where e.empno=e1.mgr and e.ename=’JONES’;


Q:52) Display those employees whose salary is more than 3000 after giving 20% increment?

Ans: select ename,sal,(sal+(sal*0.20)) from emp where (sal+(sal*0.20))>3000;


Q:53) Display all employees with their department names?

Ans: select e.ename,d.dname from emp e, dept d where e.deptno=d.deptno;


Q:54) Display ename who are working in sales department?

Ans: select e.ename,d.dname from emp e,dept d where e.deptno=d.deptno and d.dname=’SALES’;


Q:56) Display employee name,dept name,salary,and commission for those sal in between 2000 to 5000 while location is Chicago?

Ans: Select e.ename,d.dname,e.sal,e.comm from emp e,dept d where e.deptno=d.deptno and sal between 2000 and 5000;


Q:57) Display those employees whose salary is greater than his managers salary?

Ans: Select e.ename,e.sal,e1.ename,e1.sal from emp e,e1 where e.mgr=e1.empno and e.sal>e1.sal;


Q:58) Display those employees who are working in the same dept where his manager is work?

Ans: select e.ename,e.deptno,e1.ename,e1.deptno from emp e,e1 where e.mgr=e1.empno and e.deptno=e1.deptno;


Q:59) Display those employees who are not working under any Manager?

Ans: select ename from emp where mgr is null;


Q:60) Display the grade and employees name for the deptno 10 or 30 but grade is not 4 while joined the company before 31-DEC-82?

Ans: select ename,grade,deptno,sal from emp ,salgrade where ( grade,sal) in

( select grade,sal from salgrade,emp where sal between losal and hisal)

and grade!=4 and deptno in (10,30) and hiredate<’31-Dec-82′;


Q:61) Update the salary of each employee by 10% increment who are not eligible for commission?

Ans: update emp set sal= (sal+(sal*0.10)) where comm is null;


Q:62) Delete those employees who joined the company before 31-Dec-82 while their department Location is New York or Chicago?

Ans: select e.ename,e.hiredate,d.loc from emp e,dept d where

e.deptno=d.deptno and hiredate<’31-Dec-82′ and d.loc in(‘NEW YORK’,’CHICAGO’);


Q:63) Display employee name ,job,deptname,loc for all who are working as manager?

Ans: select e.ename,e.job,d.dname,d.loc from emp e,dept d where e.deptno=d.deptno

and e.empno in (select mgr from emp where mgr is not null);


Q:64) Display those employees whose manager name is jones and also display their manager name?

Ans: select e.ename sub,e1.ename from emp e,e1 where e.mgr=e1.empno and e1.ename=’JONES’;


Q:65) Display name and salary of ford if his salary is equal to hisal of his grade?

Ans: select ename,grade,hisal,sal from emp,salgrade where ename=’FORD’ and sal=hisal;

OR

select grade,sal,hisal from emp,salgrade where ename=’FORD’ and sal between losal and hisal;

OR

select ename,sal,hisal,grade from emp,salgrade where ename=’FORD’

and (grade,sal) in (select grade,hisal from salgrade,emp where

sal between losal and hisal);


Q66) Display employee name ,job,deptname,his manager name ,his grade and make an under department wise?

Ans: select e.ename sub,e1.ename sup,e.job,d.dname ,grade from emp e,e1,salgrade,dept d where e.mgr=e1.empno and e.sal between losal and hisal and e.deptno=d.deptno group by d.deptno,e.ename,e1.ename,e.job,d.dname,grade;

OR

select e.ename sub,e1.ename sup,e.job,d.dname ,grade from emp e,e1,salgrade,tvsdept d where e.mgr=e1.empno and e.sal between losal and hisal and e.deptno=d.deptno;


Q:67) List out all the employee names ,job,salary,grade and deptname for every one in a company except ‘CLERK’ . Sort on salary display the highest salary?

Ans: select e.ename ,e.job,e.sal,d.dname ,grade from emp e,salgrade,dept d where (e.deptno=d.deptno and e.sal between losal and hisal ) order by e.sal desc;


Q:68) Display employee name,job abd his manager .Display also employees who are with out managers?

Ans: select e.ename ,e1.ename,e.job,e.sal,d.dname from emp e,e1,dept d where e.mgr=e1.empno(+) and e.deptno=d.deptno;


Q:69) Display Top 5 employee of a Company?

Ans:


Q:70) Display the names of those employees who are getting the highest salary?

Ans: select ename,sal from emp where sal in (select max(sal) from emp);


Q:71) Display those employees whose salary is equal to average of maximum and minimum?

Ans: select * from emp

where sal=(select (max(sal)+min(sal))/2 from emp);


Q:72) Select count of employees in each department where count >3?

Ans: select count(*) from emp group by deptno having count(*)>3


Q:73) Display dname where atleast three are working and display only deptname?

Ans: select d.dname from dept d, emp e where e.deptno=d.deptno group by d.dname having count(*)>3;


Q:74) Display name of those managers name whose salary is more than average salary of Company?

Ans: select distinct e1.ename,e1.sal from emp e,e1,dept d where e.deptno=d.deptno and e.mgr=e1.empno and e1.sal> (select avg(sal) from emp);


Q:75) Display those managers name whose salary is more than average salary salary of his employees?

Ans: select distinct e1.ename,e1.sal from emp e,e1,dept d where e.deptno=d.deptno and e.mgr=e1.empno and e1.sal>any (select avg(sal) from emp group by deptno);


Q:76) Display employee name,sal,comm and netpay for those employees whose netpay is greater than or equal to any other employee salary of the company?

Ans: select ename,sal,NVL(comm,0),sal+NVL(comm,0) from emp where

sal+NVL(comm,0) >any (select e.sal from emp e );


Q:77) Display those employees whose salary is less than his manager but more than salary of other managers?

Ans: select e.ename sub,e.sal from emp e,e1,dept d where

e.deptno=d.deptno and e.mgr=e1.empno

and e.sal<e1.sal

and e.sal >any (select e2.sal from emp e2, e,dept d1 where

e.mgr=e2.empno and d1.deptno=e.deptno);


Q:78) Display all employees names with total sal of company with each employee name?

Ans:


Q:79) Find the last 5(least) employees of company?

Ans:


Q:80) Find out the number of employees whose salary is greater than their  managers salary?

Ans: select e.ename,e.sal,e1.ename,e1.sal from emp e,e1,dept d where e.deptno=d.deptno and e.mgr=e1.empno and e.sal>e1.sal;


Q:81) Display the manager who are not working under president but they are working under any other manager?

Ans: select e2.ename from emp e1,emp e2,emp e3 where e1.mgr=e2.empno and e2.mgr=e3.empno and e3.job!=’PRESIDENT’;


Q:82) Delete those department where no employee working?

Ans: delete from emp where empno is null;


Q:83) Delete those records from emp table whose deptno not available in dept table?

Ans: delete from emp e where e.deptno not in (select deptno from dept);


Q:84) Display those enames whose salary is out of grade available in salgrade table?

Ans: select empno,sal from emp where sal<(select min(LOSAL) from salgrade )

OR sal>(select max(hisal) from salgrade);


Q:85) Display employee name,sal,comm and whose netpay is greater than any other in the company?

Ans: select ename,sal,comm,sal+comm from emp where sal+comm>any

(select sal+comm from emp );


Q:86) Display name of those employees who are going to retire 31-Dec-99 if maximum job period is 30 years?

Ans: select empno, hiredate,sysdate, to_char(sysdate,’yyyy’) – to_char(hiredate,’yyyy’)

from emp where to_char(sysdate,’yyyy’) – to_char(hiredate,’yyyy’)=30;


Q:87) Display those employees whose salary is odd value?

Ans: select ename ,sal from emp where mod(sal,2)!=0;


Q:88) Display those employees whose salary contains atleast 3 digits?

Ans: select ename,sal from emp where length(sal)=3;


Q:89) Display those employees who joined in the company in the month of Dec?

Ans: Select empno,ename from emp where trim(to_char(hiredate,’Mon’))=trim(‘DEC’);


Q:90) Display those employees whose name contains A?

Ans: select ename from emp where ename like(‘%A%’);


Q:91) Display those employees whose deptno is available in salary?

Ans: select ename,sal from emp where deptno in (select distinct sal from emp);


Q:92) Display those employees whose first 2 characters from hiredate – last 2 characters sal?

Ans: select empno,hiredate,sal from emp where trim(substr(hiredate,1,2))=trim(substr(sal,-2,2));

or

select hiredate,sal from emp where to_Char(hiredate,’dd’)=trim(substr(sal,-2,2));


Q:93) Display those employeess whose 10% of salary is equal to the year joining?

Ans: select ename ,sal,0.10*sal from emp where 0.10*sal=trim(to_char(hiredate,’yy’));


Q:94) Display those employees who are working in sales or research?

Ans: select e.ename from emp e ,dept d where e.deptno=d.deptno and d.dname in(‘SALES’,’RESEARCH’);


Q:95) Display the grade of jones?

Ans: select ename,grade from emp,salgrade where ( grade,sal) =

(select grade,sal from salgrade,emp where sal between losal and hisal and ename=’JONES’);


Q:96) Display those employees who joined the company before 15th of the month?

Ans: select ename ,hiredate from emp where hiredate<’15-Jul-02′ and hiredate >=’01-jul-02′;


Q:97) Display those employees who has joined before 15th of the month?

Ans: select ename ,hiredate from emp where hiredate<’15-Jul-02′


Q:98) Delete those records where no of employees in particular department is less than 3?

Ans: delete from emp where deptno in (select deptno from emp group by deptno having count(*)  ;


Q:99A) Delete those employeewho joined the company 10 years back from today?

Ans: delete from emp where empno in (select empno from emp

where to_char(sysdate,’yyyy’)- to_char(hiredate,’yyyy’)>=10);


Q:99B) Display the deptname the number of characters of which is equal to no of employee in any other department?

Ans:


Q:100) Display the deptname where no employee is working?

Ans: select deptno from emp where empno is null;


Most Common SQL Commands

SQL statements can be grouped in different categories:

Data Definition Language(DDL) Commands

  • CREATE: creates a new database object, such as a table.
  • ALTER: used to modify the database object
  • DROP: used to delete the objects.

Data Manipulation Language(DML) Commands

  • INSERT: used to insert a new data row record in a table.
  • UPDATE: used to modify an existing record in a table.
  • DELETE: used delete a record from the table.

Data Query Language(DQL) Commands
  • SELECT: it is the DQL command to select data from the database.
Data Control Language(DCL) Commands
  • GRANT: used to assign permission to users to access database objects.
  • REVOKE: used to deny permission to users to access database objects.
Data Transfer Language(DTL) Commands
  • COMMIT: used to save any transaction into the database permanently.
  • ROLLBACK: restores the database to the last committed state.

CREATE DATABASE
The first thing we need to do to work with SQL is to create a database. The CREATE DATABASE statement does exactly that.

Example:

CREATE DATABASE testDB

CREATE TABLE
The CREATE TABLE statement creates a new table in a database.

Example:

CREATE TABLE Employees (
    EmployeeID int,
    FirstName varchar(255),
    LastName varchar(255),
    Department varchar(255)
);

INSERT INTO
The INSERT INTO statement inserts new rows of data into a table

Example:

INSERT INTO Employees (FirstName, LastName, Department)
VALUES ('Sam', 'Burger', 'IT');

SELECT
SELECT is one of the main and most used SQL command. It selects data from a database and returns the table of results, called the result-set.

Example:

SELECT firstName, lastName
FROM Employees;

SELECT *
The SELECT command when used with an asterisk * operator, selects all records from a specified table.

Example:

SELECT * FROM Employees

SELECT DISTINCT
SELECT DISTINCT returns only the data that is distinct; i.e. does not include duplicate entries.

Example:

SELECT DISTINCT Department FROM Employees;

SELECT INTO
The SELECT INTO statement selects specified data from a table and copies it to another table.

Example:

SELECT firstName, entryGraduated INTO StudentAlumni
FROM Students;

SELECT TOP
SELECT TOP specifies the maximum number or percentage of data entries to return in a result-set.

SELECT TOP 50 PERCENT * FROM Customers;

WHERE
The WHERE clause is used to filter results based on a specified condition.

Example:

SELECT * FROM Employees
WHERE department = 'IT';

GROUP BY
The GROUP BY command arranges identical data from different rows into groups, thus creating summarizing rows.

Example:

SELECT COUNT(Department), Department
FROM Employees
GROUP BY Department;

HAVING
The HAVING clause performs the same as the WHERE clause, but the difference is that HAVING only works with aggregate functions. Likewise, WHERE clause doesn’t work with aggregate functions.

Example:

SELECT COUNT(Department), Department
FROM Employees
GROUP BY Department
HAVING COUNT(Department) > 2;

IN
The IN operator includes multiple values into the WHERE clause.

Example:

SELECT * FROM Employees
WHERE Department IN ('IT', 'Graphics', 'Marketing');

BETWEEN
BETWEEN operator filters the results and returns only the ones that fit the specified range.

Example:

SELECT * FROM Employees
WHERE JoiningDate BETWEEN '01-01-2015' AND `01-01-2020`;

AND / OR
The AND and OR are conditional statements. In AND, all conditions must meet a specified criteria. In OR any of the conditions that satisfy a given criteria returns a result.

Example AND:

SELECT * FROM Employees
WHERE Department = 'IT' AND JoiningDate > '01-01-2015';
Example OR:

SELECT * FROM Employees
WHERE Department ='IT' OR Department = 'Graphics';

AS (Alias)
AS works as an alias. With AS, we can rename a column to something more meaningful or shorter in the query, without having to change the name in the database.

Example:

SELECT FirstName AS fname, LastName AS lname
FROM Employees;

INNER JOIN
INNER JOIN combines rows from different tables.

Example:

SELECT Orders.ID, Customers.Name
FROM Orders
INNER JOIN Customers ON Orders.ID = Customers.ID;

LEFT JOIN
LEFT JOIN retrieves records from the left table that match records in the right table.

Example:

SELECT Customers.CustomerName, Orders.OrderID
FROM Customers
LEFT JOIN Orders ON Customers.CustomerID = Orders.CustomerID
ORDER BY Customers.CustomerName;

RIGHT JOIN
Opposite of the LEFT JOIN, the RIGHT JOIN retrieves records from the right table that match records in the left table.

Example:

SELECT Orders.OrderID, Employees.LastName
FROM Orders
RIGHT JOIN Employees ON Orders.EmployeeID = Employees.EmployeeID
ORDER BY Orders.OrderID;

FULL JOIN
FULL JOIN returns all the records that match either in left or right tables.

Example:

SELECT Customers.Name, CustomerOrders.ID
FROM Customers
FULL OUTER JOIN Orders ON Customers.ID = CustomerOrders.customerID
ORDER BY Customers.Name;

DELETE
The DELETE statement removes certain rows from the table that meet a specified condition.

Example:

DELETE FROM Employees
WHERE FirstName = 'Sam' AND LastName = 'Burger';

ALTER TABLE
We use ALTER TABLE to add or remove columns from a table.

Example:

ALTER TABLE Employees
ADD JoiningDate date;

TRUNCATE TABLE
TRUNCATE TABLE removes data entries from a table in a database, but keeps the table structure.

Example:

TRUNCATE TABLE temp_table

DROP TABLE
DROP TABLE statement deletes the whole table with its column parameters and datatype settings.

Example:

DROP TABLE temp_table

DROP DATABASE
DROP DATABASE deletes the whole specified database together with all its parameters and data.

Be extra cautious when using this command.

Example:

DROP DATABASE temp_db


How to use the SQL Drop, Truncate and Delete Statements

The SQL DELETE statement is used to delete records from a table whereas the DROP statement is used to delete a table or a database.

The TRUNCATE TABLE statement can also be used to delete records from a table.

Deleting Records From a Table
The DELETE statement in SQL is used to delete records from a database table. We can remove all records from a table or delete specific records using the WHERE clause.

DELETE FROM table_name
WHERE condition;

SQL DELETE Statement Examples
Let’s assume we have a table called “Employees” with the following records:

+------------+-----------+----------+------------+
| EmployeeID | FirstName | LastName | Department |
+------------+-----------+----------+------------+
| 1          | Mark      | Otto     | Finance    |
| 2          | Jacob     | Thornton | IT         |
| 3          | Su        | Bird     | Marketing  |
| 4          | Sam       | Burger   | IT         |
+------------+-----------+----------+------------+

Delete a Single Record
The following code removes “Jacob Thornton” from the “Employees” table:

DELETE FROM Employees
WHERE FirstName = 'Jacob'
AND LastName = 'Thornton';

Note: In the above example, we use two conditions, WHERE and AND, i.e. by first name and last name. This is to ensure we delete the correct record, in case there is another employee with the same first name.

Delete All Records From a Table
The following code deletes all records from the “Employees” table:

DELETE * FROM Employees;
Note: The DELETE statement removes the records from a table, but does not delete the table itself.

SQL TRUNCATE TABLE Statement
The TRUNCATE TABLE statement can also be used to delete records from a table, but not the table instead.

Example:

TRUNCATE TABLE table_name;


SQL Drop Statement
The DROP statement in SQL is used to delete a table or a database.

How to Drop a Table in SQL
The following code drops a table called “Employees”:

DROP TABLE "Employees";
Note: Take extra care when using the DROP statement. When dropping a table, it will delete all records inside the table as well.


How to Drop a Database in SQL
The following code drops a database called “EmployeesDB”:

DROP DATABASE "EmployeesDB";
Note: Take extra care when using the DROP statement. When dropping a database, it will delete all tables inside the database.


SQL Queries Set 4

Q:1) Display the name of employees along with their annual salary(sal*12). the name of the employee earning highest annual salary should appear first?
Ans: select ename,sal,sal*12 “Annual Salary” from emp order by “Annual Salary” desc;Q:2)Display name,salary,Hra,pf,da,TotalSalary for each employee. The out put should be in the order of total salary ,hra 15% of salary , DA 10% of salary .pf 5% salary Total Salary will be (salary+hra+da)-pf?
Ans: select ename,sal SA,sal*0.15 HRA,sal*0.10 DA,sal*5/100 PF,sal+(sal*0.15)+(sal*0.10)-(sal*.05) TOTALSALARY from emp ORDER BY TOTALSALARY DESC;
Q:3) Display Department numbers and total number of employees working in each Department?
Ans: select deptno,count(*) from emp group by deptno;

Q:4) Display the various jobs and total number of employees working in each job group?
Ans: select job,count(*) from emp group by job;

Q:5) Display department numbers and Total Salary for each Department?
Ans: select deptno,sum(sal) from emp group by deptno;

Q:6) Display department numbers and Maximum Salary from each Department?
Ans: select deptno,max(sal) from emp group by deptno;

Q:7) Display various jobs and Total Salary for each job?
Ans: select job,sum(sal) from emp group by job;

Q:8) Display each job along with min of salary being paid in each job group?

Q:9) Display the department Number with more than three employees in each department?
Ans: select deptno ,count(*) from emp group by deptno having count(*)>3;

Q:10) Display various jobs along with total salary for each of the job
where total salary is greater than 40000?
Ans: select job,sum(sal) from emp group by job having sum(sal)>40000;

Q:11) Display the various jobs along with total number of employees in each job.The output should contain only those jobs with more than three employees?
Ans: select job,count(*) from emp group by job having count(*)>3;

Q:12) Display the name of employee who earn Highest Salary?
Ans: select ename, sal from emp where sal>=(select max(sal) from emp );

Q:13) Display the employee Number and name for employee working as clerk and earning highest salary among the clerks?

Ans: select ename,empno from emp where sal=(select max(sal) from emp where
job=’CLERK’) and job=’CLERK’ ;

Q:14) Display the names of salesman who earns a salary more than the Highest Salary of the Clerk?
Ans: select ename,sal from emp where sal>(select max(sal) from emp
where job=’CLERK’) AND job=’SALESMAN’;

Q:15) Display the names of clerks who earn a salary more than the lowest Salary of any Salesman?
Ans: select ename,sal from emp where sal>(select min(sal) from emp where job=’SALESMAN’) and job=’CLERK’;

Q:16) Display the names of employees who earn a salary more than that of jones or that of salary greater than that of scott?
Ans: select ename,sal from emp where sal>all(select sal from emp where
ename=’JONES’ OR ename=’SCOTT’);

Q:17) Display the names of employees who earn Highest salary in their respective departments?
Ans: select ename,sal,deptno from emp where sal in (select max(sal) from emp group by deptno);

Q:18) Display the names of employees who earn Highest salaries in their respective job Groups?
Ans: select ename,job from emp where sal in (select max(sal) from emp group by job);

Q:19) Display employee names who are working in Accounting department?
Ans: select e.ename,d.dname from emp e,dept d where e.deptno=d.deptno and d.dname=’ACCOUNTING’;

Q:20) Display the employee names who are Working in Chicago?
Ans: select e.ename,d.loc from emp e,dept d where e.deptno=d.deptno and d.loc=’CHICAGO’;

Q:21) Display the job groups having Total Salary greater than the maximum salary for Managers?
Ans: select job ,sum(sal) from emp group by job having sum(sal) >(select max(sal) from emp where job=’MANAGER’);

Q:22) Display the names of employees from department number 10 with salary greater than that of ANY employee working in other departments?
Ans: select ename,deptno from emp where sal>any(select min(sal) from emp where deptno!=10 group by deptno) and deptno=10 ;

Q:23) Display the names of employees from department number 10 with salary greater than that of ALL employee working in other departments?
Ans: select ename,deptno from emp where sal>all(select max(sal) from emp where deptno!=10 group by deptno) and deptno=10 ;

Q:24) Display the names of employees in Upper Case?
Ans: select upper(ename) from emp;

Q:25) Display the names of employees in Lower Case?
Ans: select Lower(ename) from emp;

Q:26) Display the names of employees in Proper case?
Ans: select InitCap(ename)from emp;

Q:27) Find the length of your name using Appropriate Function?
Ans: select lentgh(‘SRINIVASARAO’) from dual;

Q:28) Display the length of all the employee names?
Ans: select length(ename) from emp;

Q:29) Display the name of employee Concatinate with Employee Number?
Ans: select ename||’ ‘||empno from emp;

Q:30) Use appropriate function and extract 3 characters starting from 2 characters from the following string ‘Oracle’ i.e., the out put should be ac?
Ans: select substr(‘Oracle’,3,2) from dual;

Q:31) Find the first occurance of character a from the following string Computer Maintenance Corporation?
Ans: select lstr(‘Computer Maintenance Corporation’,’a’ ) from dual;

Q:32) Replace every occurance of alphabet A with B in the string .Alliens (Use Translate function)?
Ans: select translate(‘Alliens’,’A’,’B’) from Dual;

Q:33) Display the information from the employee table . where ever job Manager is found it should be displayed as Boss?
Ans: select ename ,replace(job,’MANAGER’,’BOSS’) from emp;

Q:34) Display empno,ename,deptno from emp table. Instead of display department numbers display the related department name(Use decode function)?
Ans: select empno,ename,deptno,Decode(deptno,10,’ACCOUNTING’

,20,’RESEARCH’,30,’SALES’,’OPERATIONS’)DName from emp;

Q:35) Display your Age in Days?
Ans: select sysdate-to_date(’30-jul-1977′) from dual;

Q:36) Display your Age in Months?
Ans: select months_between(sysdate,to_date(’30-jul-1977′)) from dual;

Q:37) Display current date as 15th August Friday Nineteen Nienty Seven?
Ans: select To_char(sysdate,’ddth Month Day year’) from dual;

Q:38) Display the following output for each row from emp table?
Ans: Q:39

Q:39) Scott has joined the company on 13th August ninteen ninety?
Ans: select empno,ename,to_char(Hiredate,’Day ddth Month year’) from emp;

Q:40) Find the nearest Saturday after Current date?
Ans: select next_day(sysdate,’Saturday’) from dual;

Q:41) Display the current time?
Ans: select To_Char(sysdate,’HH:MI:SS’) from dual;

Q:42) Display the date three months before the Current date?
Ans: select Add_months(sysdate,-3) from dual;

Q:43) Display the common jobs from department number 10 and 20?
Ans: select job from emp where job in (select job from emp where deptno=20) and deptno=10;

Q:44) Display the jobs found in department 10 and 20 Eliminate duplicate jobs?
Ans: select Distinct job from emp where deptno in(10,20);

Q:45) Display the jobs which are unique to department 10?
Ans: select job from emp where deptno=10;

Q:46) Display the details of those employees who do not have any person working under him?
Ans: select empno,ename,job from emp where empno not in (select mgr from emp where mgr is not null );

Q:47)Display the details of those employees who are in sales department and grade is 3?
Ans: select e.ename,d.dname,grade from emp e,dept d ,salgrade where e.deptno=d.deptno and dname=’SALES’ and grade=3;

Q:48) Display those who are not managers?
Ans: select ename from emp where job!=’MANAGER’;

Q:49) Display those employees whose name contains not less than 4 characters?
Ans: select ename from emp where length(ename)>=4;

Q:50) Display those department whose name start with”S” while location name ends with “K”?
Ans: select e.ename,d.loc from emp e ,dept d where d.loc like(‘%K’) and ename like(‘S%’);

Q:51) Display those employees whose manager name is Jones?
Ans: select e.ename Superior,e1.ename Subordinate from emp e,e1 where e.empno=e1.mgr and e.ename=’JONES’;

Q:52) Display those employees whose salary is more than 3000 after giving 20% increment?
Ans: select ename,sal,(sal+(sal*0.20)) from emp where (sal+(sal*0.20))>3000;

Q:53) Display all employees with their department names?
Ans: select e.ename,d.dname from emp e, dept d where e.deptno=d.deptno;

Q:54) Display ename who are working in sales department?
Ans: select e.ename,d.dname from emp e,dept d where e.deptno=d.deptno and d.dname=’SALES’;

Q:56) Display employee name,dept name,salary,and commission for those sal in between 2000 to 5000 while location is Chicago?
Ans: Select e.ename,d.dname,e.sal,e.comm from emp e,dept d where e.deptno=d.deptno and sal between 2000 and 5000;

Q:57) Display those employees whose salary is greater than his managers salary?
Ans: Select e.ename,e.sal,e1.ename,e1.sal from emp e,e1 where e.mgr=e1.empno and e.sal>e1.sal;

Q:58) Display those employees who are working in the same dept where his manager is work?
Ans: select e.ename,e.deptno,e1.ename,e1.deptno from emp e,e1 where e.mgr=e1.empno and e.deptno=e1.deptno;

Q:59) Display those employees who are not working under any Manager?
Ans: select ename from emp where mgr is null;

Q:60) Display the grade and employees name for the deptno 10 or 30 but grade is not 4 while joined the company before 31-DEC-82?
Ans: select ename,grade,deptno,sal from emp ,salgrade where ( grade,sal) in
( select grade,sal from salgrade,emp where sal between losal and hisal)
and grade!=4 and deptno in (10,30) and hiredate<’31-Dec-82′;

Q:61) Update the salary of each employee by 10% increment who are not eligible for commission?
Ans: update emp set sal= (sal+(sal*0.10)) where comm is null;

Q:62) Delete those employees who joined the company before 31-Dec-82 while their department Location is New York or Chicago?
Ans: select e.ename,e.hiredate,d.loc from emp e,dept d where
e.deptno=d.deptno and hiredate<’31-Dec-82′ and d.loc in(‘NEW YORK’,’CHICAGO’);

Q:63) Display employee name ,job,deptname,loc for all who are working as manager?
Ans: select e.ename,e.job,d.dname,d.loc from emp e,dept d where e.deptno=d.deptno
and e.empno in (select mgr from emp where mgr is not null);

Q:64) Display those employees whose manager name is jones and also display their manager name?
Ans: select e.ename sub,e1.ename from emp e,e1 where e.mgr=e1.empno and e1.ename=’JONES’;

Q:65) Display name and salary of ford if his salary is equal to hisal of his grade?
Ans: select ename,grade,hisal,sal from emp,salgrade where ename=’FORD’ and sal=hisal;
OR
select grade,sal,hisal from emp,salgrade where ename=’FORD’ and sal between losal and hisal;
OR
select ename,sal,hisal,grade from emp,salgrade where ename=’FORD’
and (grade,sal) in (select grade,hisal from salgrade,emp where
sal between losal and hisal);

Q66) Display employee name ,job,deptname,his manager name ,his grade and make an under department wise?
Ans: select e.ename sub,e1.ename sup,e.job,d.dname ,grade from emp e,e1,salgrade,dept d where e.mgr=e1.empno and e.sal between losal and hisal and e.deptno=d.deptno group by d.deptno,e.ename,e1.ename,e.job,d.dname,grade;
OR
select e.ename sub,e1.ename sup,e.job,d.dname ,grade from emp e,e1,salgrade,tvsdept d where e.mgr=e1.empno and e.sal between losal and hisal and e.deptno=d.deptno;

Q:67) List out all the employee names ,job,salary,grade and deptname for every one in a company except ‘CLERK’ . Sort on salary display the highest salary?
Ans: select e.ename ,e.job,e.sal,d.dname ,grade from emp e,salgrade,dept d where (e.deptno=d.deptno and e.sal between losal and hisal ) order by e.sal desc;

Q:68) Display employee name,job abd his manager .Display also employees who are with out managers?
Ans: select e.ename ,e1.ename,e.job,e.sal,d.dname from emp e,e1,dept d where e.mgr=e1.empno(+) and e.deptno=d.deptno;

Q:69) Display Top 5 employee of a Company?
Ans:

Q:70) Display the names of those employees who are getting the highest salary?
Ans: select ename,sal from emp where sal in (select max(sal) from emp);

Q:71) Display those employees who are working as manager?
Ans: select e2.ename from emp e1,e2 where e1.mgr=e2.empno and e2.empno is not null;

Q:72) Count th number of employees who are working as managers (Using set opetrator)?
Ans: select d.dname from dept d where length(d.dname) in (select count(*) from emp e where e.deptno!=d.deptno group by e.deptno);

Q:73) Display the name of the dept those employees who joined the company on the same date?
Ans: select a.ename,b.ename from emp a,emp b where a.hiredate=b.hiredate and a.empno!=b.empno;

Q:74) Display those employees whose grade is equal to any number of sal but not equal to first number of sal?
Ans: select ename,sal,grade ,substr(sal,grade,1) from emp,salgrade where
grade!=substr(sal,1,1) and grade = substr(sal,grade,1)
and sal between losal and hisal;

Q:75) Count the no of employees working as manager using set operation?
Ans: Select count(empno) from emp where
empno in (select a.empno from emp a
intersect
select b.mgr from emp b);

Q:76) Display the name of employees who joined the company on the same date?
Ans: select a.ename,b.ename from emp a,emp b where a.hiredate=b.hiredate and a.empno!=b.empno;

Q:77) Display the manager who is having maximum number of employees working under him?
Ans: select e2.ename,count(*) from emp e1,e2 where e1.mgr=e2.empno group by e2.ename Having count(*)=(select max(count(*)) from emp e1,e2 where e1.mgr=e2.empno group by e2.ename);

Q:78) List out the employee name and salary increased by 15% and express as whole number of Dollars?
Ans: select ename,sal,lpad(translate(sal,sal,((sal +(sal*0.15))/50)),5,’$’) from emp;

Q:79) Produce the output of the emptable “EMPLOYEE_AND JOB” for ename and job ?
Ans: select ename”EMPLOYEE_AND”,job”JOB” FROM EMP;

Q:80) Lust of employees with hiredate in the format of ‘June 4 1988′?
Ans: select ename,to_char(hiredate,’Month dd yyyy’) from emp;

Q:81) print list of employees displaying ‘Just salary’ if more than 1500 if exactly 1500 display ‘on taget’ if less than 1500 display below 1500?
Ans: select ename,sal,
(
case when sal < 1500 then
‘Below_Target’
when sal=1500 then
‘On_Target’
when sal > 1500 then
‘Above_Target’
else
‘kkkkk’
end
)
from emp;

Q:82) Which query to calculate the length of time any employee has been with the company
Ans: select hiredate,to_char(hiredate,’ HH:MI:SS’) FROM emp;

Q:83) Given a string of the format ‘nn/nn’ . Verify that the first and last 2 characters are numbers .And that the middle character is ‘/’ Print the expressions ‘Yes’ IF valid ‘NO’ of not valid . Use the following values to test your solution’12/54′,01/1a,’99/98′?
Ans:

Q:84) Employes hire on OR Before 15th of any month are paid on the last friday of that month those hired after 15th are paid the last friday of th following month .print a list of employees .their hiredate and first pay date sort those who se salary contains first digit of their deptno?
Ans: select ename,hiredate, LAST_DAY ( next_day(hiredate,’Friday’)),
(
case when to_char(hiredate,’dd’) <=(’15’) then
LAST_DAY ( next_day(hiredate,’Friday’))
when to_char(hiredate,’dd’)>(’15’) then
LAST_DAY( next_day(add_months(hiredate,1),’Friday’))
end
)
from emp;

Q:85) Display those managers who are getting less than his employees salary?
Ans: select a.empno,a.ename ,a.sal,b.sal,b.empno,b.ename from emp a, emp b where a.mgr=b.empno and a.sal>b.sal;

Q:86) Print the details of employees who are subordinates to BLAKE?
Ans: select a.empno,a.ename ,b.ename from emp a, emp b where a.mgr=b.empno
and b.ename=’BLAKE’;

Q:87) Display those employees whose salary is equal to average of maximum and minimum?
Ans: select * from emp
where sal=(select (max(sal)+min(sal))/2 from emp);

Q:89) Select count of employees in each department where count >3?
Ans: select count(*) from emp group by deptno having count(*)>3

Q:90) Display dname where atleast three are working and display only deptname?
Ans: select d.dname from dept d, emp e where e.deptno=d.deptno group by d.dname having count(*)>3;

Q:91) Display name of those managers name whose salary is more than average salary of Company?
Ans: select distinct e1.ename,e1.sal from emp e,e1,dept d where e.deptno=d.deptno and e.mgr=e1.empno and e1.sal> (select avg(sal) from emp);

Q:92) Display those managers name whose salary is more than average salary salary of his employees?
Ans: select distinct e1.ename,e1.sal from emp e,e1,dept d where e.deptno=d.deptno and e.mgr=e1.empno and e1.sal>any (select avg(sal) from emp group by deptno);

Q:93) Display employee name,sal,comm and netpay for those employees whose netpay is greater than or equal to any other employee salary of the company?
Ans: select ename,sal,NVL(comm,0),sal+NVL(comm,0) from emp where
sal+NVL(comm,0) >any (select e.sal from emp e );

Q:94) Display those employees whose salary is less than his manager but more than salary of other managers?
Ans: select e.ename sub,e.sal from emp e,e1,dept d where
e.deptno=d.deptno and e.mgr=e1.empno
and e.sal<e1.sal
and e.sal >any (select e2.sal from emp e2, e,dept d1 where
e.mgr=e2.empno and d1.deptno=e.deptno);

Q:95) Display all employees names with total sal of company with each employee name?
Ans:

Q:96) Find the last 5(least) employees of company?
Ans:

Q:97) Find out the number of employees whose salary is greater than their managers salary?
Ans: select e.ename,e.sal,e1.ename,e1.sal from emp e,e1,dept d where e.deptno=d.deptno and e.mgr=e1.empno and e.sal>e1.sal;

Q:98) Display the manager who are not working under president but they are working under any other manager?
Ans: select e2.ename from emp e1,emp e2,emp e3 where e1.mgr=e2.empno and e2.mgr=e3.empno and e3.job!=’PRESIDENT’;

Q:99) Delete those department where no employee working?
Ans: delete from emp where empno is null;

Q:100) Delete those records from emp table whose deptno not available in dept table?
Ans: delete from emp e where e.deptno not in (select deptno from dept);

SQL Queries Set 5

Q:1) Display those enames whose salary is out of grade available in salgrade table?
Ans: select empno,sal from emp where sal<(select min(LOSAL) from salgrade )
OR sal>(select max(hisal) from salgrade);Q:2) Display employee name,sal,comm and whose netpay is greater than any other in the company?
Ans: select ename,sal,comm,sal+comm from emp where sal+comm>any
(select sal+comm from emp );

Q:3) Display name of those employees who are going to retire 31-Dec-99 if maximum job period is 30 years?
Ans: select empno, hiredate,sysdate, to_char(sysdate,’yyyy’) -to_char(hiredate,’yyyy’) from emp where to_char(sysdate,’yyyy’) – to_char(hiredate,’yyyy’)=30;

Q:4) Display those employees whose salary is odd value?
Ans: select ename ,sal from emp where mod(sal,2)!=0;

Q:5) Display those employees whose salary contains atleast 3 digits?
Ans: select ename,sal from emp where length(sal)=3;

Q:6) Display those employees who joined in the company in the month of Dec?
Ans: Select empno,ename from emp where trim(to_char(hiredate,’Mon’))=trim(‘DEC’);

Q:7) Display those employees whose name contains A?
Ans: select ename from emp where ename like(‘%A%’);

Q:8) Display those employees whose deptno is available in salary?
Ans: select ename,sal from emp where deptno in (select distinct sal from emp);

Q:9) Display those employees whose first 2 characters from hiredate – last 2 characters sal?
Ans: select empno,hiredate,sal from emp where trim(substr(hiredate,1,2))=trim(substr(sal,-2,2));
or
select hiredate,sal from emp where to_Char(hiredate,’dd’)=trim(substr(sal,-2,2));

Q:10) Display those employeess whose 10% of salary is equal to the year joining?
Ans: select ename ,sal,0.10*sal from emp where 0.10*sal=trim(to_char(hiredate,’yy’));

Q:11) Display those employees who are working in sales or research?
Ans: select e.ename from emp e ,dept d where e.deptno=d.deptno and d.dname in(‘SALES’,’RESEARCH’);

Q:12) Display the grade of jones?
Ans: select ename,grade from emp,salgrade where ( grade,sal) =
(select grade,sal from salgrade,emp where sal between losal and hisal and ename=’JONES’);

Q:13) Display those employees who joined the company before 15th of the month?
Ans: select ename ,hiredate from emp where hiredate<’15-Jul-02′ and hiredate >=’01-jul-02′;

Q:14) Display those employees who has joined before 15th of the month?
Ans: select ename ,hiredate from emp where hiredate<’15-Jul-02′

Q:15) Delete those records where no of employees in particular department is less than 3?
Ans: delete from emp where deptno in (select deptno from emp group by deptno having count(*)  ;

Q:16) Delete those employeewho joined the company 10 years back from today?
Ans: delete from emp where empno in (select empno from emp
where to_char(sysdate,’yyyy’)- to_char(hiredate,’yyyy’)>=10);

Q:16B) Display the deptname the number of characters of which is equal to no of employee in any other department?
Ans:

Q:17) Display the deptname where no employee is working?
Ans: select deptno from emp where empno is null;

Q:18) Display those employees who are working as manager?
Ans: select e2.ename from emp e1,e2 where e1.mgr=e2.empno and e2.empno is not null;

Q:19) Count th number of employees who are working as managers (Using set opetrator)?
Ans: select d.dname from dept d where length(d.dname) in (select count(*) from emp e where e.deptno!=d.deptno group by e.deptno);

Q:20) Display the name of the dept those employees who joined the company on the same date?
Ans: select a.ename,b.ename from emp a,emp b where a.hiredate=b.hiredate and a.empno!=b.empno;

Q:21) Display those employees whose grade is equal to any number of sal but not equal to first number of sal?
Ans: select ename,sal,grade ,substr(sal,grade,1) from emp,salgrade where
grade!=substr(sal,1,1) and grade = substr(sal,grade,1)
and sal between losal and hisal;

Q:22) Count the no of employees working as manager using set operation?
Ans: Select count(empno) from emp where
empno in (select a.empno from emp a
intersect
select b.mgr from emp b);

Q:23) Display the name of employees who joined the company on the same date?
Ans: select a.ename,b.ename from emp a,emp b where a.hiredate=b.hiredate and a.empno!=b.empno;

Q:24) Display the manager who is having maximum number of employees working under him?
Ans: select e2.ename,count(*) from emp e1,e2 where e1.mgr=e2.empno group by e2.ename Having count(*)=(select max(count(*)) from emp e1,e2 where e1.mgr=e2.empno group by e2.ename);

Q:25) List out the employee name and salary increased by 15% and express as whole number of Dollars?
Ans: select ename,sal,lpad(translate(sal,sal,((sal +(sal*0.15))/50)),5,’$’) from emp;

Q:26) Produce the output of the emptable “EMPLOYEE_AND JOB” for ename and job ?
Ans: select ename”EMPLOYEE_AND”,job”JOB” FROM EMP;

Q:27) Lust of employees with hiredate in the format of ‘June 4 1988′?
Ans: select ename,to_char(hiredate,’Month dd yyyy’) from emp;

Q:28) print list of employees displaying ‘Just salary’ if more than 1500 if exactly 1500 display ‘on taget’ if less than 1500 display below 1500?
Ans: select ename,sal,
(
case when sal < 1500 then
‘Below_Target’
when sal=1500 then
‘On_Target’
when sal > 1500 then
‘Above_Target’
else
‘kkkkk’
end
)
from emp;

Q:29) Which query to calculate the length of time any employee has been with the company
Ans: select hiredate,to_char(hiredate,’ HH:MI:SS’) FROM emp;

Q:30) Given a string of the format ‘nn/nn’ . Verify that the first and last 2 characters are numbers .And that the middle character is ‘/’ Print the expressions ‘Yes’ IF valid ‘NO’ of not valid . Use the following values to test your solution’12/54′,01/1a,’99/98′?
Ans:

Q:31) Employes hire on OR Before 15th of any month are paid on the last friday of that month those hired after 15th are paid the last friday of th following month .print a list of employees .their hiredate and first pay date sort those who se salary contains first digit of their deptno?
Ans: select ename,hiredate, LAST_DAY ( next_day(hiredate,’Friday’)),
(
case when to_char(hiredate,’dd’) <=(’15’) then
LAST_DAY ( next_day(hiredate,’Friday’))
when to_char(hiredate,’dd’)>(’15’) then
LAST_DAY( next_day(add_months(hiredate,1),’Friday’))
end
)
from emp;

Q:32) Display those managers who are getting less than his employees salary?
Ans: select a.empno,a.ename ,a.sal,b.sal,b.empno,b.ename from emp a, emp b where a.mgr=b.empno and a.sal>b.sal;

Q:33) Print the details of employees who are subordinates to BLAKE?
Ans: select a.empno,a.ename ,b.ename from emp a, emp b where a.mgr=b.empno
and b.ename=’BLAKE



******************************************************************************

What is DBMS ?
The database management system is a collection of programs that enables user to store, retrieve, update and delete information from a database.

2. What is RDBMS ?
Relational Database Management system (RDBMS) is a database management system (DBMS) that is based on the relational model. Data from relational database can be accessed or reassembled in many different ways without having to reorganize the database tables. Data from relational database can be accessed using an API , Structured Query Language (SQL).

3. What is SQL ?

Structured Query Language(SQL) is a language designed specifically for communicating with databases. SQL is an ANSI (American National Standards Institute) standard.

4. What are the different type of SQL’s statements ?

This is one of the most frequently asked SQL Interview Questions for freshers. SQL statements are broadly classified into three. They are
1. DDL – Data Definition Language
DDL is used to define the structure that holds the data. For example, Create, Alter, Drop and Truncate table.

2. DML– Data Manipulation Language
DML is used for manipulation of the data itself. Typical operations are Insert, Delete, Update and retrieving the data from the table. The Select statement is considered as a limited version of the DML, since it can’t change the data in the database. But it can perform operations on data retrieved from the DBMS, before the results are returned to the calling function.

3. DCL– Data Control Language
DCL is used to control the visibility of data like granting database access and set privileges to create tables, etc. Example – Grant, Revoke access permission to the user to access data in the database.

5. What are the Advantages of SQL ?

1. SQL is not a proprietary language used by specific database vendors. Almost every major DBMS supports SQL, so learning this one language will enable programmers to interact with any database like ORACLE, SQL ,MYSQL etc.

2. SQL is easy to learn. The statements are all made up of descriptive English words, and there aren’t that many of them.

3. SQL is actually a very powerful language and by using its language elements you can perform very complex and sophisticated database operations.

6. what is a field in a database ?

A field is an area within a record reserved for a specific piece of data.
Examples: Employee Name, Employee ID, etc.
Must Read – Top 100+ SQL Query Interview Questions and Answers and SQL Tutorial
7. What is a Record in a database ?

A record is the collection of values / fields of a specific entity: i.e. an Employee, Salary etc.
8. What is a Table in a database ?

A table is a collection of records of a specific type. For example, employee table, salary table etc.

9. What is a database transaction?

Database transaction takes database from one consistent state to another. At the end of the transaction the system must be in the prior state if the transaction fails or the status of the system should reflect the successful completion if the transaction goes through.

10. What are properties of a transaction?
Expect this SQL Interview Questions as a part of an any interview, irrespective of your experience. Properties of the transaction can be summarized as ACID Properties.
1. Atomicity
A transaction consists of many steps. When all the steps in a transaction get completed, it will get reflected in DB or if any step fails, all the transactions are rolled back.

2. Consistency
The database will move from one consistent state to another, if the transaction succeeds and remain in the original state, if the transaction fails.

3. Isolation
Every transaction should operate as if it is the only transaction in the system.

4. Durability
Once a transaction has completed successfully, the updated rows/records must be available for all other transactions on a permanent basis.

11. What is a Database Lock ?

Database lock tells a transaction, if the data item in questions is currently being used by other transactions.
12. What are the type of locks ?

1. Shared Lock
When a shared lock is applied on data item, other transactions can only read the item, but can’t write into it.

2. Exclusive Lock
When an exclusive lock is applied on data item, other transactions can’t read or write into the data item.
Database Normalization Interview Questions

13. What are the different type of normalization?

In database design, we start with one single table, with all possible columns. A lot of redundant data would be present since it’s a single table. The process of removing the redundant data, by splitting up the table in a well defined fashion is called normalization.

1. First Normal Form (1NF)
A relation is said to be in first normal form if and only if all underlying domains contain atomic values only. After 1NF, we can still have redundant data.

2. Second Normal Form (2NF)
A relation is said to be in 2NF if and only if it is in 1NF and every non key attribute is fully dependent on the primary key. After 2NF, we can still have redundant data.

3. Third Normal Form (3NF)
A relation is said to be in 3NF, if and only if it is in 2NF and every non key attribute is non-transitively dependent on the primary key.
Database Keys and Constraints SQL Interview Questions

14. What is a primary key?

A primary key is a column whose values uniquely identify every row in a table. Primary key values can never be reused. If a row is deleted from the table, its primary key may not be assigned to any new rows in the future. To define a field as primary key, following conditions had to be met :

1. No two rows can have the same primary key value.
2. Every row must have a primary key value.
3. The primary key field cannot be null.
4. Value in a primary key column can never be modified or updated, if any foreign key refers to that primary key.

 

15. What is a Composite Key ?

A Composite primary key is a type of candidate key, which represents a set of columns whose values uniquely identify every row in a table.

For example – if “Employee_ID” and “Employee Name” in a table is combined to uniquely identify a row its called a Composite Key.

16. What is a Composite Primary Key ?
A Composite primary key is a set of columns whose values uniquely identify every row in a table. What it means is that, a table which contains composite primary key will be indexed based on the columns specified in the primary key. This key will be referred in Foreign Key tables.

For example – if the combined effect of columns, “Employee_ID” and “Employee Name” in a table is required to uniquely identify a row, its called a Composite Primary Key. In this case, both the columns will be represented as primary key.

17. What is a Foreign Key ?

When a “one” table’s primary key field is added to a related “many” table in order to create the common field which relates the two tables, it is called a foreign key in the “many” table.

For example, the salary of an employee is stored in salary table. The relation is established via foreign key column “Employee_ID_Ref” which refers “Employee_ID” field in the Employee table.
18. What is a Unique Key ?

Unique key is same as primary with the difference being the existence of null. Unique key field allows one value as NULL value.
SQL Insert, Update and Delete Commands Interview Questions

19. Define SQL Insert Statement ?

SQL INSERT statement is used to add rows to a table. For a full row insert, SQL Query should start with “insert into “ statement followed by table name and values command, followed by the values that need to be inserted into the table. The insert can be used in several ways:

1. To insert a single complete row.
2. To insert a single partial row.

20. Define SQL Update Statement ?

SQL Update is used to update data in a row or set of rows specified in the filter condition.

The basic format of an SQL UPDATE statement is, Update command followed by table to be updated and SET command followed by column names and their new values followed by filter condition that determines which rows should be updated.

21. Define SQL Delete Statement ?

SQL Delete is used to delete a row or set of rows specified in the filter condition.

The basic format of an SQL DELETE statement is, DELETE FROM command followed by table name followed by filter condition that determines which rows should be updated.

 

22. What are wild cards used in database for Pattern Matching ?

SQL Like operator is used for pattern matching. SQL ‘Like’ command takes more time to process. So before using “like” operator, consider suggestions given below on when and where to use wild card search.

1) Don’t overuse wild cards. If another search operator will do, use it instead.
2) When you do use wild cards, try not to use them at the beginning of the search pattern, unless absolutely necessary. Search patterns that begin with wild cards are the slowest to process.
3) Pay careful attention to the placement of the wild card symbols. If they are misplaced, you might not return the data you intended.


23. Define Join and explain different type of joins?
Another frequently asked SQL Interview Questions on Joins. In order to avoid data duplication, data is stored in related tables. Join keyword is used to fetch data from related tables. “Join” return rows when there is at least one match in both table. Type of joins are

Right Join
Return all rows from the right table, even if there are no matches in the left table.

Outer Join

Left Join
Return all rows from the left table, even if there are no matches in the right table.

Full Join
Return rows when there is a match in one of the tables.

24. What is Self-Join?

Self-join is query used to join a table to itself. Aliases should be used for the same table comparison.

25. What is Cross Join?

Cross Join will return all records where each row from the first table is combined with each row from the second table.
Database Views Interview Questions

26. What is a view?

The views are virtual tables. Unlike tables that contain data, views simply contain queries that dynamically retrieve data when used.

27. What is a materialized view?

Materialized views are also a view but are disk based. Materialized views get updates on specific duration, base upon the interval specified in the query definition. We can index materialized view.

28. What are the advantages and disadvantages of views in a database?

Advantages:
1. Views don’t store data in a physical location.
2. The view can be used to hide some of the columns from the table.
3. Views can provide Access Restriction, since data insertion, update and deletion is not possible with the view.

Disadvantages:
1. When a table is dropped, associated view become irrelevant.
2. Since the view is created when a query requesting data from view is triggered, its a bit slow.
3. When views are created for large tables, it occupies more memory.

29. What is a stored procedure?

Stored Procedure is a function which contains a collection of SQL Queries. The procedure can take inputs , process them and send back output.

30. What are the advantages of a stored procedure?
Stored Procedures are precomplied and stored in the database. This enables the database to execute the queries much faster. Since many queries can be included in a stored procedure, round trip time to execute multiple queries from source code to database and back is avoided.

31. What is a trigger?

Database triggers are sets of commands that get executed when an event(Before Insert, After Insert, On Update, On delete of a row) occurs on a table, views.

32. Explain the difference between DELETE , TRUNCATE and DROP commands?

Once delete operation is performed, Commit and Rollback can be performed to retrieve data.

Once the truncate statement is executed, Commit and Rollback statement cannot be performed. Where condition can be used along with delete statement but it can’t be used with truncate statement.

Drop command is used to drop the table or keys like primary,foreign from a table.

33. What is the difference between Cluster and Non cluster Index?

A clustered index reorders the way records in the table are physically stored. There can be only one clustered index per table. It makes data retrieval faster.

A non clustered index does not alter the way it was stored but creates a completely separate object within the table. As a result insert and update command will be faster.

34. What is Union, minus and Interact commands?

MINUS operator is used to return rows from the first query but not from the second query. INTERSECT operator is used to return rows returned by both the queries.

—————————————————————————————————————————————————-

What does UNION do? What is the difference between UNION and UNION ALL?

UNION merges the contents of two structurally-compatible tables into a single combined table. The difference between UNION andUNION ALL is that UNION will omit duplicate records whereas UNION ALL will include duplicate records.

It is important to note that the performance of UNION ALL will typically be better than UNION, since UNION requires the server to do the additional work of removing any duplicates. So, in cases where is is certain that there will not be any duplicates, or where having duplicates is not a problem, use of UNION ALL would be recommended for performance reasons.

List and explain the different types of JOIN clauses supported in ANSI-standard SQL.

ANSI-standard SQL specifies five types of JOIN clauses as follows:

  • INNER JOIN (a.k.a. “simple join”): Returns all rows for which there is at least one match in BOTH tables. This is the default type of join if no specific JOIN type is specified.
  • LEFT JOIN (or LEFT OUTER JOIN): Returns all rows from the left table, and the matched rows from the right table; i.e., the results will contain all records from the left table, even if the JOIN condition doesn’t find any matching records in the right table. This means that if the ON clause doesn’t match any records in the right table, the JOIN will still return a row in the result for that record in the left table, but with NULL in each column from the right table.
  • RIGHT JOIN (or RIGHT OUTER JOIN): Returns all rows from the right table, and the matched rows from the left table. This is the exact opposite of a LEFT JOIN; i.e., the results will contain all records from the right table, even if the JOIN condition doesn’t find any matching records in the left table. This means that if the ON clause doesn’t match any records in the left table, the JOIN will still return a row in the result for that record in the right table, but with NULL in each column from the left table.
  • FULL JOIN (or FULL OUTER JOIN): Returns all rows for which there is a match in EITHER of the tables. Conceptually, a FULL JOIN combines the effect of applying both a LEFT JOIN and a RIGHT JOIN; i.e., its result set is equivalent to performing aUNION of the results of left and right outer queries.
  • CROSS JOIN: Returns all records where each row from the first table is combined with each row from the second table (i.e., returns the Cartesian product of the sets of rows from the joined tables). Note that a CROSS JOIN can either be specified using the CROSS JOIN syntax (“explicit join notation”) or (b) listing the tables in the FROM clause separated by commas without using a WHERE clause to supply join criteria (“implicit join notation”).

Consider the following two query results:

SELECT count(*) AS total FROM orders;

+-------+
| total |
+-------+
|  100  |
+-------+

SELECT count(*) AS cust_123_total FROM orders WHERE customer_id = '123';

+----------------+
| cust_123_total |
+----------------+
|       15       |
+----------------+

Given the above query results, what will be the result of the query below?

SELECT count(*) AS cust_not_123_total FROM orders WHERE customer_id <> '123'

The obvious answer is 85 (i.e, 100 – 15). However, that is not necessarily correct. Specifically, any records with a customer_id of NULL will not be included in either count (i.e., they won’t be included in cust_123_total, nor will they be included in cust_not_123_total). For example, if exactly one of the 100 customers has a NULLcustomer_id, the result of the last query will be:

+--------- ----------+
| cust_not_123_total |
+--------------------+
|         84         |
+--------------------+

What will be the result of the query below? Explain your answer and provide a version that behaves correctly.

select case when null = null then 'Yup' else 'Nope' end as Result;

This query will actually yield “Nope”, seeming to imply that null is not equal to itself! The reason for this is that the proper way to compare a value to null in SQL is with the is operator, not with =.

Accordingly, the correct version of the above query that yields the expected result (i.e., “Yup”) would be as follows:

select case when null is null then 'Yup' else 'Nope' end as Result;

Given the following tables:

sql> SELECT * FROM runners;
+----+--------------+
| id | name         |
+----+--------------+
|  1 | John Doe     |
|  2 | Jane Doe     |
|  3 | Alice Jones  |
|  4 | Bobby Louis  |
|  5 | Lisa Romero  |
+----+--------------+

sql> SELECT * FROM races;
+----+----------------+-----------+
| id | event          | winner_id |
+----+----------------+-----------+
|  1 | 100 meter dash |  2        |
|  2 | 500 meter dash |  3        |
|  3 | cross-country  |  2        |
|  4 | triathalon     |  NULL     |
+----+----------------+-----------+

What will be the result of the query below?

SELECT * FROM runners WHERE id NOT IN (SELECT winner_id FROM races)

Explain your answer and also provide an alternative version of this query that will avoid the issue that it exposes.

Surprisingly, given the sample data provided, the result of this query will be an empty set. The reason for this is as follows: If the set being evaluated by the SQL NOT IN condition contains any values that are null, then the outer query here will return an empty set, even if there are many runner ids that match winner_ids in the races table.

Knowing this, a query that avoids this issue would be as follows:

SELECT * FROM runners WHERE id NOT IN (SELECT winner_id FROM races WHERE winner_id IS NOT null)

Given two tables created and populated as follows:

CREATE TABLE dbo.envelope(id int, user_id int);
CREATE TABLE dbo.docs(idnum int, pageseq int, doctext varchar(100));

INSERT INTO dbo.envelope VALUES
  (1,1),
  (2,2),
  (3,3);

INSERT INTO dbo.docs(idnum,pageseq) VALUES
  (1,5),
  (2,6),
  (null,0);

What will the result be from the following query:

UPDATE docs SET doctext=pageseq FROM docs INNER JOIN envelope ON envelope.id=docs.idnum
WHERE EXISTS (
  SELECT 1 FROM dbo.docs
  WHERE id=envelope.id
);

Answer:-

The result of the query will be as follows:

idnum  pageseq  doctext
1      5        5
2      6        6
NULL   0        NULL

The EXISTS clause in the above query is a red herring. It will always be true since ID is not a member of dbo.docs. As such, it will refer to the envelope table comparing itself to itself!

The idnum value of NULL will not be set since the join of NULL will not return a result when attempting a match with any value of envelope.

What is wrong with this SQL query? Correct it so it executes properly.

SELECT Id, YEAR(BillingDate) AS BillingYear 
FROM Invoices
WHERE BillingYear >= 2010;

The expression BillingYear in the WHERE clause is invalid. Even though it is defined as an alias in the SELECT phrase, which appears before the WHERE phrase, the logical processing order of the phrases of the statement is different from the written order. Most programmers are accustomed to code statements being processed generally top-to-bottom or left-to-right, but T-SQL processes phrases in a different order.

The correct query should be:

SELECT Id, YEAR(BillingDate) AS BillingYear
FROM Invoices
WHERE YEAR(BillingDate) >= 2010;

Given these contents of the Customers table:

Id	Name			ReferredBy
1	John Doe		NULL
2	Jane Smith		NULL
3	Anne Jenkins		2
4	Eric Branford		NULL
5	Pat Richards		1
6	Alice Barnes		2

Here is a query written to return the list of customers not referred by Jane Smith:

SELECT Name FROM Customers WHERE ReferredBy <> 2;

What will be the result of the query? Why? What would be a better way to write it?

Although there are 4 customers not referred by Jane Smith (including Jane Smith herself), the query will only return one: Pat Richards. All the customers who were referred by nobody at all (and therefore have NULL in their ReferredBy column) don’t show up. But certainly those customers weren’t referred by Jane Smith, and certainly NULL is not equal to 2, so why didn’t they show up?

SQL Server uses three-valued logic, which can be troublesome for programmers accustomed to the more satisfying two-valued logic (TRUE or FALSE) most programming languages use. In most languages, if you were presented with two predicates: ReferredBy = 2 and ReferredBy <> 2, you would expect one of them to be true and one of them to be false, given the same value of ReferredBy. In SQL Server, however, if ReferredBy is NULL, neither of them are true and neither of them are false. Anything compared to NULL evaluates to the third value in three-valued logic: UNKNOWN.

The query should be written:

SELECT Name FROM Customers WHERE ReferredBy IS NULL OR ReferredBy <> 2

Watch out for the following, though!

SELECT Name FROM Customers WHERE ReferredBy = NULL OR ReferredBy <> 2

This will return the same faulty set as the original. Why? We already covered that: Anything compared to NULL evaluates to the third value in the three-valued logic: UNKNOWN. That “anything” includes NULL itself! That’s why SQL Server provides the IS NULL and IS NOT NULL operators to specifically check for NULL. Those particular operators will always evaluate to true or false.

Even if a candidate doesn’t have a great amount of experience with SQL Server, diving into the intricacies of three-valued logic in general can give a good indication of whether they have the ability learn it quickly or whether they will struggle with it.

Considering the database schema displayed in the SQLServer-style diagram below, write a SQL query to return a list of all the invoices. For each invoice, show the Invoice ID, the billing date, the customer’s name, and the name of the customer who referred that customer (if any). The list should be ordered by billing date.

SELECT i.Id, i.BillingDate, c.Name, r.Name AS ReferredByName
FROM Invoices i
 JOIN Customers c ON i.CustomerId = c.Id
 LEFT JOIN Customers r ON c.ReferredBy = r.Id
ORDER BY i.BillingDate;

This question simply tests the candidate’s ability take a plain-English requirement and write a corresponding SQL query. There is nothing tricky in this one, it just covers the basics:

  • Did the candidate remember to use a LEFT JOIN instead of an inner JOIN when joining the customer table for the referring customer name? If not, any invoices by customers not referred by somebody will be left out altogether.
  • Did the candidate alias the tables in the JOIN? Most experienced T-SQL programmers always do this, because repeating the full table name each time it needs to be referenced gets tedious quickly. In this case, the query would actually break if at least the Customer table wasn’t aliased, because it is referenced twice in different contexts (once as the table which contains the name of the invoiced customer, and once as the table which contains the name of the referring customer).
  • Did the candidate disambiguate the Id and Name columns in the SELECT? Again, this is something most experienced programmers do automatically, whether or not there would be a conflict. And again, in this case there would be a conflict, so the query would break if the candidate neglected to do so.

Note that this query will not return Invoices that do not have an associated Customer. This may be the correct behavior for most cases (e.g., it is guaranteed that every Invoice is associated with a Customer, or unmatched Invoices are not of interest). However, in order to guarantee that all Invoices are returned no matter what, the Invoices table should be joined with Customers using LEFT JOIN:

SELECT i.Id, i.BillingDate, c.Name, r.Name AS ReferredByName
FROM Invoices i
 LEFT JOIN Customers c ON i.CustomerId = c.Id
 LEFT JOIN Customers r ON c.ReferredBy = r.Id
ORDER BY i.BillingDate;

Assume a schema of Emp ( Id, Name, DeptId ) , Dept ( Id, Name).

If there are 10 records in the Emp table and 5 records in the Dept table, how many rows will be displayed in the result of the following SQL query:

Select * From Emp, Dept

Explain your answer.

The query will result in 50 rows as a “cartesian product” or “cross join”, which is the default whenever the ‘where’ clause is omitted.

Given a table SALARIES, such as the one below, that has m = male and f = femalevalues. Swap all f and m values (i.e., change all f values to m and vice versa) with a single update query and no intermediate temp table.

Id  Name  Sex  Salary
1   A     m    2500
2   B     f    1500
3   C     m    5500
4   D     f    500
UPDATE SALARIES SET sex = CASE sex WHEN 'm' THEN 'f' ELSE 'm' END

Given two tables created as follows

create table test_a(id numeric);

create table test_b(id numeric);

insert into test_a(id) values
  (10),
  (20),
  (30),
  (40),
  (50);

insert into test_b(id) values
  (10),
  (30),
  (50);

Write a query to fetch values in table test_a that are and not in test_bwithout using the NOT keyword.

 

In SQL Server, PostgreSQL, and SQLite, this can be done using the except keyword as follows:

select * from test_a
except
select * from test_b;

In Oracle, the minus keyword is used instead.

MySQL does not support the except function, so it is necessary to use not in.

Given a table TBL with a field Nmbr that has rows with the following values:

1, 0, 0, 1, 1, 1, 1, 0, 0, 1, 0, 1, 0, 1, 0, 1

Write a query to add 2 where Nmbr is 0 and add 3 where Nmbr is 1.

 

This can be done as follows:

update TBL set Nmbr = case when Nmbr > 0 then Nmbr+3 else Nmbr+2 end;

Write a SQL query to find the 10th highest employee salary from an Employee table. Explain your answer.

(Note: You may assume that there are at least 10 records in the Employee table.)

This can be done as follows:

SELECT TOP (1) Salary FROM
(
    SELECT DISTINCT TOP (10) Salary FROM Employee ORDER BY Salary DESC
) AS Emp ORDER BY Salary

This works as follows:

First, the SELECT DISTINCT TOP (10) Salary FROM Employee ORDER BY Salary DESC query will select the top 10 salaried employees in the table. However, those salaries will be listed in descending order. That was necessary for the first query to work, but now picking the top 1 from that list will give you the highest salary not the the 10th highest salary.

Therefore, the second query reorders the 10 records in ascending order (which the default sort order) and then selects the top record (which will now be the lowest of those 10 salaries).

Not all databases support the TOP keyword. For example, MySQL and PostreSQL use the LIMIT keyword, as follows:

SELECT Salary FROM
(
    SELECT DISTINCT Salary FROM Employee ORDER BY Salary DESC LIMIT 10
) AS Emp ORDER BY Salary LIMIT 1

Write a SQL query using UNION ALL (not UNION) that uses the WHERE clause to eliminate duplicates. Why might you want to do this?

You can avoid duplicates using UNION ALL and still run much faster than UNION DISTINCT (which is actually same as UNION) by running a query like this:

SELECT * FROM mytable WHERE a=X UNION ALL SELECT * FROM mytable WHERE b=Y AND a!=X

The key is the AND a!=X part. This gives you the benefits of the UNION (a.k.a., UNION DISTINCT) command, while avoiding much of its performance hit.

Given the following tables:

SELECT * FROM users;

user_id  username
1        John Doe                                                                                            
2        Jane Don                                                                                            
3        Alice Jones                                                                                         
4        Lisa Romero

SELECT * FROM training_details;

user_training_id  user_id  training_id  training_date
1                 1        1            "2015-08-02"
2                 2        1            "2015-08-03"
3                 3        2            "2015-08-02"
4                 4        2            "2015-08-04"
5                 2        2            "2015-08-03"
6                 1        1            "2015-08-02"
7                 3        2            "2015-08-04"
8                 4        3            "2015-08-03"
9                 1        4            "2015-08-03"
10                3        1            "2015-08-02"
11                4        2            "2015-08-04"
12                3        2            "2015-08-02"
13                1        1            "2015-08-02"
14                4        3            "2015-08-03"

Write a query to to get the list of users who took the a training lesson more than once in the same day, grouped by user and training lesson, each ordered from the most recent lesson date to oldest date.

SELECT
      u.user_id,
      username,
      training_id,
      training_date,
      count( user_training_id ) AS count
  FROM users u JOIN training_details t ON t.user_id = u.user_id
  GROUP BY user_id,
           training_id,
           training_date
  HAVING count( user_training_id ) > 1
  ORDER BY training_date DESC;
user_id  username      training_id  training_date             count
4        Lisa Romero   2            August, 04 2015 00:00:00  2
4        Lisa Romero   3            August, 03 2015 00:00:00  2
1        John Doe      1            August, 02 2015 00:00:00  3
3        Alice Jones   2            August, 02 2015 00:00:00  2

What is an execution plan? When would you use it? How would you view the execution plan?

Answer:-

An execution plan is basically a road map that graphically or textually shows the data retrieval methods chosen by the SQL server’s query optimizer for a stored procedure or ad hoc query. Execution plans are very useful for helping a developer understand and analyze the performance characteristics of a query or stored procedure, since the plan is used to execute the query or stored procedure.

In many SQL systems, a textual execution plan can be obtained using a keyword such as EXPLAIN, and visual representations can often be obtained as well. In Microsoft SQL Server, the Query Analyzer has an option called “Show Execution Plan” (located on the Query drop down menu). If this option is turned on, it will display query execution plans in a separate window when a query is run.

 

List and explain each of the ACID properties that collectively guarantee that database transactions are processed reliably.

ACID (Atomicity, Consistency, Isolation, Durability) is a set of properties that guarantee that database transactions are processed reliably. They are defined as follows:

  • Atomicity. Atomicity requires that each transaction be “all or nothing”: if one part of the transaction fails, the entire transaction fails, and the database state is left unchanged. An atomic system must guarantee atomicity in each and every situation, including power failures, errors, and crashes.
  • Consistency. The consistency property ensures that any transaction will bring the database from one valid state to another. Any data written to the database must be valid according to all defined rules, including constraints, cascades, triggers, and any combination thereof.
  • Isolation. The isolation property ensures that the concurrent execution of transactions results in a system state that would be obtained if transactions were executed serially, i.e., one after the other. Providing isolation is the main goal of concurrency control. Depending on concurrency control method (i.e. if it uses strict – as opposed to relaxed – serializability), the effects of an incomplete transaction might not even be visible to another transaction.
  • Durability. Durability means that once a transaction has been committed, it will remain so, even in the event of power loss, crashes, or errors. In a relational database, for instance, once a group of SQL statements execute, the results need to be stored permanently (even if the database crashes immediately thereafter). To defend against power loss, transactions (or their effects) must be recorded in a non-volatile memory.

What is a key difference between Truncate and Delete?

Truncate is used to delete table content and the action can not be rolled back, whereas Delete is used to delete one or more rows in the table and can be rolled back.

Given a table dbo.users where the column user_id is a unique identifier, how can you efficiently select the first 100 odd user_id values from the table?

(Assume the table contains well over 100 records with odd user_id values.)

SELECT TOP 100 user_id FROM dbo.users WHERE user_id % 2 = 1 ORDER BY user_id

How can you select all the even number records from a table? All the odd number records?

To select all the even number records from a table:

Select * from table where id % 2 = 0 

To select all the odd number records from a table:

Select * from table where id % 2 != 0

What are the NVL and the NVL2 functions in SQL? How do they differ?

Both the NVL(exp1, exp2) and NVL2(exp1, exp2, exp3) functions check the value exp1 to see if it is null.

With the NVL(exp1, exp2) function, if exp1 is not null, then the value of exp1 is returned; otherwise, the value of exp2 is returned, but case to the same data type as that of exp1.

With the NVL2(exp1, exp2, exp3) function, if exp1 is not null, then exp2 is returned; otherwise, the value of exp3 is returned.

What is the difference between the RANK() and DENSE_RANK() functions? Provide an example.

The only difference between the RANK() and DENSE_RANK() functions is in cases where there is a “tie”; i.e., in cases where multiple values in a set have the same ranking. In such cases, RANK() will assign non-consecutive “ranks” to the values in the set (resulting in gaps between the integer ranking values when there is a tie), whereas DENSE_RANK() will assign consecutive ranks to the values in the set (so there will be no gaps between the integer ranking values in the case of a tie).

For example, consider the set {25, 25, 50, 75, 75, 100}. For such a set, RANK() will return {1, 1, 3, 4, 4, 6} (note that the values 2 and 5 are skipped), whereas DENSE_RANK() will return {1,1,2,3,3,4}.

What is the difference between the WHERE and HAVING clauses?

When GROUP BY is not used, the WHERE and HAVING clauses are essentially equivalent.

However, when GROUP BYis used:

  • The WHERE clause is used to filter records from a result. The filtering occurs before any groupings are made.
  • The HAVING clause is used to filter values from a group (i.e., to check conditions after aggregation into groups has been performed).



**********************************8**********

1) What is data-base testing?

Data base testing is segmented into four different categories.

  • Testing of Data Integrity
  • Testing of Data Validity
  • Data base related performance
  • Testing of functions, procedure and triggers

2) In database testing, what do we need to check normally?

Normally, the things that we check in database testing are:

  • Constraint Check
  • Validation of a Field size
  • Stored procedure
  • Matching application field size to database
  • Indexes for performance based issues

3) Explain what is data driven test?

In a data-table, to test the multi numbers of data, data-driven test is used.  By using this it can easily replace the parameters at the same time from different locations.

4) What are joins and mention different types of joins?

Join is used to display two or more than two table and the types of joins are:

  • Natural Join
  • Inner Join
  • Outer Join
  • Cross Join

The outer join is divided again in two:

  • Left outer join
  • Right outer join

5) What are indexes and mention different types of indexes?

Indexes are database objects and they are created on columns. To fetch data quickly they are frequently accessed. Different types of indexes are:

  • B-Tree index
  • Bitmap index
  • Clustered index
  • Covering index
  • Non-unique index
  • Unique index

Database Testing

 

6) While testing stored procedures what are the steps does a tester takes?

The tester will check the standard format of the stored procedures and also it checks the fields are correct like updates, joins, indexes, deletions as mentioned in the stored procedure.

7) How would you know for database testing, whether trigger is fired or not?

On querying the common audit log you would know, whether, a trigger is fired or not. It is in audit log where you can see the triggers fired.

8) In data base testing, what are the steps to test data loading?

Following steps need to follow to test data loading

  • Source data should be known
  • Target data should be known
  • Compatibility of source and target should be checked
  • In SQL Enterprise manager, run the DTS package after opening the corresponding DTS package
  • You have to compare the columns  of target and data source
  • Number of rows of target and source should be checked
  • After updating data in the source, check whether the changes appears in the target or not.
  • Check NULLs and junk characters

9) Without using Database Checkpoints, how you test a SQL Query in QTP?

By writing scripting procedure in VBScript, we can connect to database and can test the queries and database.

10) Explain how to use SQL queries in QTP ?

In QTP using output database check point and database check, you have to select the SQL manual queries option. After selecting the manual queries option, enter the “select” queries to fetch the data in the database and then compare the expected and actual.

11) What is the way of writing testcases for database testing?

Writing a testcases is like functional testing. First you have to know the functional requirement of the application. Then you have to decide the parameters for writing testcases like

  • Objective: Write the objective that you would like to test
  • Input method: Write the method of action or input you want to execute
  • Expected: how it should appear in the database

12) To manage and manipulate the test table what are the SQL statements that you have used in Database testing?

The statements like SELECT, INSERT, UPDATE, DELETE are used to manipulate the table, while ALTER TABLE, CREATE TABLE and DELETE TABLE are used to manage table.

13) How to test database procedures and triggers?

 

To test database procedures and triggers, input and output parameters must be known. EXEC statement can be used to run the procedure and examine the behaviour of the tables.

  • Open the database project in solution explorer
  • Now in View menu, click the database schema
  • Open the project folder from schema View menu
  • Right click on the object that has to be tested, and then click on the dialog box that says Create Unit Tests
  • After that create a new language test project
  • Select either a) Insert the unit test or b) Create a new test and then click OK
  • Project that has to be configured will be done by clicking on the Project Configuration dialog box.
  • Once it configured click on OK

14) How you can write testcases from requirements and do the requirements represents exact functionality of AUT (Application Under Test)?

To write a testcases from requirements, you need to analyse the requirements thoroughly in terms of functionality. Thereafter you think about the appropriate testcases design techniques like Equivalence partitioning, Black box design, Cause effect graphing etc. for writing the testcases.
Yes, the requirements represent exact functionality of AUT.

15) What is DBMS?

DBMS stand for Database management system, there are different types of DBMS

  • Network Model
  • Hierarchical Model
  • Relational Model

16) What is DML?

DML stands for Data Manipulation Language, It is used to manage data with schema objects. It is a subset of SQL.

17) What are DCL commands? What are the two types of commands used by DCL?

DCL stands for Data Control Language, it is used to control data.

The two types of DCL Commands are:

Grant: By using this command user can access privilege to database

Revoke: By using this command user cannot access the database

18) What is white box testing and black box testing?

Black box testing means testing the software for the outputs on giving particular inputs.  This testing is usually performed to see if the software meets the user’s requirements.  There is no specific functional output expected for running this test.

The white box testing is done to check the accuracy of code and logic of the program.  This testing is done by the programmer who knows the logical flow of the system.

19) How does QTP evaluate test results?

Once the testing is done, QTP will generate a report.  This report will show the checkpoints, system message and error that were detected while testing.  The test results window will show any mismatches encountered at the checkpoints.

20) Explain the QTP testing process?

  • QTP testing process is based on following steps:
  • Creating GUI (Graphical User Interface) Map files : Identifies the GUI object which has to be tested
  • Creating test scripts:  Test scripts are recorded
  • Debug tests: Test should be debugged
  • Run tests: Testcases should be run.
  • View results: The results reflects the success or failure of the tests
  • Report detects: If the test is failed, the reasons will be recorded in the report detect file

21) What is load testing and give some examples of it?

To measure the system response, load testing is done.  If the load exceeds the users pattern it is known as stress testing.  Examples of load testing are downloading the set of large files, executing multiple applications on a single computer, subjecting a server to large number of e-mails and allotting many tasks to a printer one after another.

22) How to test database manually?

Testing the database manually involves checking the data at the back end and to see whether the addition of data in front end is affecting the back end or not, and same for delete, update, insert etc.

23) What RDBMS stands for and what are the important RDMBS that SQL use?

RDBMS stands for Relational Database Management Systems that use SQL, and the important RDBMS that SQL uses are Sybase, Oracle, Access ,Ingres, Microsoft SQL server etc.

24) What is performance testing and what are the bottlenecks of performance testing?

Performance testing determines the speed of the computer system performance. It includes the quantitative tests like response time measurement. The problem in performance testing is that you always need a well-trained and experienced man power also the tools you use are expensive.

25) What is DDL and what are their commands?

To define database structure, DDL is used.  DDL stands for Data Definition Language.  The various DDL commands include Create, Truncate, Drop, Alter, Comment and Rename.


Different Types of SQL JOINs
Here are the different types of the JOINs in SQL:

(INNER) JOIN: Returns records that have matching values in both tables
LEFT (OUTER) JOIN: Returns all records from the left table, and the matched records from the right table
RIGHT (OUTER) JOIN: Returns all records from the right table, and the matched records from the left table
FULL (OUTER) JOIN: Returns all records when there is a match in either left or right table



No comments:

Post a Comment