You are on page 1of 10

SQL Queries

insert into dbo.tbl_Dept values


('ISO','Kareem','M')

declare @dn as varchar(50)


declare @hn as varchar(50)
declare @g as varchar(50)
set @dn='Stationary'
set @hn='Taqi'
set @g='Male'
insert into dbo.tbl_Dept values
(@dn,@hn,@g)

delete from dbo.tbl_Dept


where Did=119

delete from dbo.tbl_Dept


where Did=119

update dbo.tbl_Dept
set HOD='Mark',DName='EandD'
where Did=113

select * from dbo.tbl_Dept

select Did,DName from dbo.tbl_Dept

select Did as 'Department Id', DName as 'Department Name' from dbo.tbl_Dept

select top(2) * from dbo.tbl_Dept

select * from dbo.tbl_Dept order by Did

select * from dbo.tbl_Dept order by Did desc

select top(1) * from dbo.tbl_Dept order by Did desc

select * from dbo.tbl_Dept order by HOD desc

select * from dbo.tbl_Dept order by Gender,Did

select * from dbo.tbl_Dept where Did<=110

select * from dbo.tbl_Dept where Did=110 or Did=105

select * from dbo.tbl_Dept where Did in (110,108,105)

select * from dbo.tbl_Dept where Did<>110 and Did<>105

select * from dbo.tbl_Dept where Did not in (110,108,105)

select * from dbo.tbl_Dept where Did>=108 and Did<=113

select * from dbo.tbl_Dept where Did between 108 and 113

select * from dbo.tbl_Dept where Did<108 or Did>113

select * from dbo.tbl_Dept where Did not between 108 and 113

select * from dbo.tbl_Dept where Gender is null

select * from dbo.tbl_Dept where Gender is not null


select distinct Gender from dbo.tbl_Dept where gender is not null

select count(Did) from dbo.tbl_Dept where gender='Male'

select * from dbo.tbl_Emp

select sum(Esalary)as SumOfTheSalaries from dbo.tbl_Emp

select Avg(Esalary)as AvgOfTheSalaries from dbo.tbl_Emp

select Max(Esalary)as MaxOfTheSalaries from dbo.tbl_Emp

select Min(Esalary)as MaxOfTheSalaries from dbo.tbl_Emp

select Eid,Ename,ESalary from dbo.tbl_Emp

select Eid,Ename,ESalary,(ESalary*0.38) as HRA from dbo.tbl_Emp

select Eid,Ename,ESalary,(ESalary*0.38) as HRA,


(Esalary+(ESalary*0.38))as GS from dbo.tbl_Emp

select * from dbo.tbl_Emp

select * from dbo.tbl_Emp where


Ename like 'rah%'

select * from dbo.tbl_Emp where


Ename like '%d'

select * from dbo.tbl_Emp where


ESalary like '5%'

select count(*) from dbo.tbl_Emp where Gender='f'

select Gender,count(*)as 'NOfEmp' from dbo.tbl_Emp


group by Gender

select DId,count(*)as 'NOfEmp' from dbo.tbl_Emp


group by Did

select DId,Sum(Esalary) as Sal from dbo.tbl_Emp


group by Did

select Gender,Sum(Esalary) as Sal from dbo.tbl_Emp


group by Gender

select Gender,Did,count(*)as 'NOfEmp' from dbo.tbl_Emp


group by Gender,Did

select DId,Sum(Esalary) as Sal from dbo.tbl_Emp


group by Did
having(Sum(Esalary)>18000)
order by Sal desc

select Esalary, count(*)as 'NOfEmp' from dbo.tbl_Emp


group by Esalary

select count(EmpId) from tbl_emp where DeptId is null

select distinct * from tbl_Emp


select Gender, count(EmpId) from tbl_emp
group by Gender

select Gender, count(EmpId), sum(ESalary) from tbl_emp


group by Gender

select DeptId,count(EmpId) from tbl_emp group by DeptId

select top(1) DeptId,count(EmpId),Avg(Esalary) as avsal from tbl_emp


group by DeptId
order by avsal desc

select DeptId,Gender,count(EmpId),sum(Esalary) from tbl_emp


group by DeptId,Gender
order by deptid

select Gender,DeptId,count(EmpId) from tbl_emp


group by Gender,DeptId
order by DeptId

select DeptId,count(EmpId) from tbl_emp


where DeptId=15
group by DeptId

select DeptId,count(EmpId) as noe from tbl_emp


group by DeptId
having count(EmpId)>=3

select DeptId,count(EmpId),Avg(Esalary) as avsal from tbl_emp


group by DeptId
having count(EmpId)>=3
order by avsal desc

select DeptId,Gender,count(EmpId) as noe,sum(ESalary) from tbl_emp


where Gender='M'
group by Gender,DeptId
having sum(ESalary)>=50000
order by DeptId

select getdate()

select getdate()

select cast(getdate() as varchar(12))

select year(getdate())

select year('3/13/1980')

select Ename,year(DOJ) from dbo.tbl_Emp

select year(DOJ),count(*) from dbo.tbl_Emp


group by year(DOJ)

select month(getdate())

select Day(getdate())

select DateAdd(dd,20,getdate())

select DateAdd(m,20,getdate())
select DateAdd(yy,20,getdate())

select Datediff(yy,'11/2/1988',getdate())

select Datediff(m,'11/2/1988',getdate())

select Datediff(dd,'11/2/1988',getdate())

select Datediff(hh,'11/2/1988',getdate())

select Datediff(yy,'11/2/1988',getdate())

select Ename,cast(DOJ as varchar(11)) as DOfJoin,


datediff(yy,DOJ,getdate()) as Expr
from dbo.tbl_Emp

select Datepart(m,getdate())

select DateName(m,getdate())

select Datepart(w,getdate())

select DateName(w,getdate())

select DateName(d,getdate())+'/'+
DateName(m,getdate())+'/'+
DateName(yy,getdate()) as ToDay

declare @t as datetime
set @t=getdate()
select DateAdd(dd,20,@t)

select dbo.tbl_Emp.Eid,dbo.tbl_Emp.Ename,
dbo.tbl_Emp.ESalary,dbo.tbl_Emp.EContact,
dbo.tbl_Emp.Gender,dbo.tbl_Emp.DOJ,
dbo.tbl_Dept.DName,dbo.tbl_Dept.HOD
from dbo.tbl_Emp inner Join dbo.tbl_Dept
on dbo.tbl_Emp.Did=dbo.tbl_Dept.Did

select dbo.tbl_Emp.Eid,dbo.tbl_Emp.Ename,
dbo.tbl_Emp.ESalary,dbo.tbl_Emp.EContact,
dbo.tbl_Emp.Gender,dbo.tbl_Emp.DOJ,
dbo.tbl_Dept.DName,dbo.tbl_Dept.HOD
from dbo.tbl_Emp Left Outer Join dbo.tbl_Dept
on dbo.tbl_Emp.Did=dbo.tbl_Dept.Did

select dbo.tbl_Emp.Eid,dbo.tbl_Emp.Ename,
dbo.tbl_Emp.ESalary,dbo.tbl_Emp.EContact,
dbo.tbl_Emp.Gender,dbo.tbl_Emp.DOJ,
dbo.tbl_Dept.DName,dbo.tbl_Dept.HOD
from dbo.tbl_Emp Right Outer Join dbo.tbl_Dept
on dbo.tbl_Emp.Did=dbo.tbl_Dept.Did

select dbo.tbl_Emp.Eid,dbo.tbl_Emp.Ename,
dbo.tbl_Emp.ESalary,dbo.tbl_Emp.EContact,
dbo.tbl_Emp.Gender,dbo.tbl_Emp.DOJ,
dbo.tbl_Dept.DName,dbo.tbl_Dept.HOD
from dbo.tbl_Emp full outer Join dbo.tbl_Dept
on dbo.tbl_Emp.Did=dbo.tbl_Dept.Did
select E.Eid,E.Ename,E.ESalary,E.EContact,E.Gender,
E.DOJ,D.DName,D.HOD
from dbo.tbl_Emp as E inner Join dbo.tbl_Dept as D
on E.Did=D.Did

select D.DName,Sum(E.ESalary) as SofEsal


from dbo.tbl_Emp as E full Outer Join dbo.tbl_Dept as D
on E.Did=D.Did
group by D.DName

select E.Eid,E.Ename,E.ESalary,E.EContact,E.Gender,
E.DOJ,D.DName,D.HOD
from dbo.tbl_Emp as E inner Join dbo.tbl_Dept as D
on E.Did=D.Did

select D.DName,Avg(E.ESalary) as AvgSal


from dbo.tbl_Emp as E inner Join dbo.tbl_Dept as D
on E.Did=D.Did
group by D.DName

select D.DName,D.HOD,E.Gender,count(*) as NOE,


Avg(E.ESalary) as AvgSal,Sum(E.ESalary) as SumSal
from dbo.tbl_Emp as E inner Join dbo.tbl_Dept as D
on E.Did=D.Did
group by D.DName,D.HOD,E.Gender

Advance Sql Queries


create proc sp_GetSalByEid
(@eid as int,@sal as float output)
as
select @sal=ESalary from dbo.tbl_Emp
where Eid=@eid

declare @mysal as float


exec sp_GetSalByEid 5,@sal=@mysal output

select @mysal

-----------------------------------------------------
Alter proc sp_GetEmpIdByUserName
(@un as varchar(50),
@eid as int output,@did as int output)
as
select @eid=Eid,@did=Did from dbo.tbl_Emp
where Ename=@un

declare @myeid as int


declare @mydid as int
exec sp_GetEmpIdByUserName 'shaz',
@eid=@myeid output,@did=@mydid output

select @myeid as Eid,@mydid as Did

-----------------------------------------------------------
Alter proc sp_GetEmployeesByDid(@did as int)
as

if (@did=0)
begin
select E.Eid,E.Ename,E.ESalary,E.EContact,E.Gender,
E.DOJ,D.DName,D.HOD
from dbo.tbl_Emp as E inner Join dbo.tbl_Dept as D
on E.Did=D.Did
end

else
begin
select E.Eid,E.Ename,E.ESalary,E.EContact,E.Gender,
E.DOJ,D.DName,D.HOD
from dbo.tbl_Emp as E inner Join dbo.tbl_Dept as D
on E.Did=D.Did
where D.Did=@did
end

exec sp_GetEmployeesByDid 0

-------------------------------------------------------------------------------------
select Eid,Lower(Ename) as Ename,Gender from dbo.tbl_Emp

select Eid,Ename,Gender,
Title= case Gender
when 'M' then 'Mr.'
when 'F' then 'Ms.'
end
from dbo.tbl_Emp

-----------------------------------------
select Eid,(case Gender
when 'M' then 'Mr.'+Ename
when 'F' then 'Ms.'+Ename
end) as Name,Esalary
from dbo.tbl_Emp
----------------------------------------
select Eid,Ename,Esalary,Remarks=
case
when Esalary<6000 then 'BAD'
when Esalary>6000 then 'GOOD'
else 'OK'
end
from dbo.tbl_Emp
----------------------------------------------------
declare @test as varchar(50)
declare @count as int
set @count=0
WHILE @count <10
BEGIN
select @count=@count+1;
select @test='Hello Manzoor. Date:'+cast(getdate() as varchar(11))
print @test
END
----------------------------------------------------------
select stud_id,sname,gender,m1,m2,m3,
(m1+m2+m3) as Total,
(m1+m2+m3)/3 as Average,
Div=case
when ((m1+m2+m3)/3)<35 then 'Fail'
when ((m1+m2+m3)/3)>35 and ((m1+m2+m3)/3)<55 then 'Pass'
when ((m1+m2+m3)/3)>=55 and ((m1+m2+m3)/3)<70 then 'First'
when ((m1+m2+m3)/3) between 70 and 100 then 'Dist'
end
from dbo.tbl_Student
where gender='F' and ((m1+m2+m3)/3) between 55 and 70
------------------------------------------------------------------------------------------
create function getResult(@m1 as float,@m2 as float,@m3 as float)
returns varchar(20)
as
begin
declare @result as varchar(20)
set @result=case
when ((@m1+@m2+@m3)/3)<35 then 'Fail'
when ((@m1+@m2+@m3)/3) between 35 and 55 then 'Pass'
when ((@m1+@m2+@m3)/3)between 55 and 70 then 'First'
when ((@m1+@m2+@m3)/3) between 70 and 100 then 'Dist'
end
return @result
end
------------------------------------------------------------------------------------------
create function getEmpbyDId(@did as int)
returns Table
as
return
select E.Eid,E.Ename,E.ESalary,E.EContact,E.Gender,
E.DOJ,D.DName,D.HOD
from dbo.tbl_Emp as E inner Join dbo.tbl_Dept as D
on E.Did=D.Did
where E.Did=@did
-----------------------------------------------------------------------------------------------
select Ename,ESalary from dbo.getEmpbyDId(105)
-----------------------------------------------------------------------------------------------

select stud_id,sname,gender,m1,m2,m3,
(m1+m2+m3) as Total,
(m1+m2+m3)/3 as Average,
dbo.getResult(m1,m2,m3) as Result
from dbo.tbl_Student
-------------------------------------------------------------------------------------------
select Stud_Id,SName,dbo.getResult(m1,m2,m3) as Result
from dbo.tbl_Student
where dbo.getResult(m1,m2,m3)='Pass'
---------------------------------------------------------------------------------------
Alter function getStates()
returns @state table
(
StateId int primary key not null,
ShortName varchar(2) not null,
FullName varchar(50) not null
)
as
begin
insert into @state values (1,'IN','INDIA');
insert into @state values(2,'SK','Sri Lanka');
insert into @state values(3,'Au','Austrlia');
insert into @state values(4,'UK','England');
insert into @state values(5,'US','USA');

return
end
-----------------------------------------------------------------------------------------------
----
alter proc myTrans(@flag as int output)
as
begin try

begin tran test


declare @did as int
insert into dbo.tbl_Dept values ('PPP','xyz','Male');
select @did=max(Did) from dbo.tbl_Dept
insert into dbo.tbl_Emp values
('MMMMM',67000,'990990099','Male','2/4/2005',@did);
PRINT 'Commiting transaction...'
COMMIT TRANSACTION test
set @flag=1

End try

begin catch

PRINT Error_Number()+ ERROR_MESSAGE() +' Exception thrown, rolling back


transaction.'
set @flag=0
ROLLBACK TRANSACTION test

end catch

declare @f as int
exec myTrans @flag=@f output

select @f
-----------------------------------------------------------------------------------------------
Alter proc sp_CreateDeptAndEmp(@flag as varchar(100) output)
as
begin

begin try
begin tran myTran
insert into dbo.tbl_Dept values
('MechIt2','Frank','Male')

declare @did as int


select @did=max(Did) from dbo.tbl_Dept

insert into dbo.tbl_Emp values

('Manzoor2',7000,'98765654342','Male','2/13/2000',@did)
commit Tran myTran

print 'Transaction Commited here .............'


set @flag=null
end try

begin catch
rollback Tran myTran
set @flag=Error_message()
print Error_message()+' |Transaction RollBacked here .............'

end catch
end

select * from dbo.tbl_Emp order by Eid desc

declare @f as varchar(100)
exec sp_CreateDeptAndEmp @flag=@f output

if(@f is null)
begin
print 'Success'
end
else
begin
select @f as Result
end

delete from dbo.tbl_Emp where Eid =14

alter trigger mytrg


on dbo.tbl_Emp instead of delete
as
select * from deleted

create trigger mytrgA


on dbo.tbl_Emp After delete
as
print 'You have deleted the record....'
-------------------------------------------------------------------------------
update dbo.tbl_Emp
set ESalary=100000
where Eid=5

create trigger myupdateTrigger


on dbo.tbl_Emp instead of update
as
select * from deleted
union all
select * from inserted
--------------------------------------------------------------------------------------

Alter trigger mytrgDel


on dbo.tbl_Emp instead of Delete
as

declare @id as int


select @id=Deleted.Eid from Deleted
insert into dbo.tbl_History
values ('dbo.tbl_Emp','Delete Not Performed',getdate(),Suser_Sname(),@id)

delete from dbo.tbl_Emp where Eid=6


-----------------------------------------------------------------------------------------------
create trigger myTrgAfterUp
on dbo.tbl_Dept after update
as
declare @id as int
select @id=Deleted.Did from Deleted
insert into dbo.tbl_History
values ('dbo.tbl_Dept','Update Performed',getdate(),Suser_Sname(),@id)

update dbo.tbl_Dept
set HOD='King'
where Did=112
-----------------------------------------------------------------------------------------------

You might also like