Showing posts with label Structure Query Language (SQL). Show all posts
Showing posts with label Structure Query Language (SQL). Show all posts

Sql Concept using Oracle

CONTENTS DESCRIPTION
  • SELECT
DATA RETRIEVAL
  • INSERT
  • UPDATE
  • DELETE
DATA MANIPULATION LANGUAGE (DML)
  • CREATE
  • ALTER
  • DROP
  • RENAME
  • TRUNCATE
DATA DEFINATION LANGUAGE (DDL)
  • COMMIT
  • ROLLBACK
  • SAVEPOINT
TRANSACTION CONTROL LANGUAGE (TCL)
  • GRANT
  • REVOKE
DATA CONTROL LANGUAGE (DCL)

SQL DESCRIPTION
  • */{DISTINCT} COLUMN
For retrive data All/Not repeted
  • ARITHMETIC OPERATIONS(* , / ,+, -)
Mathematical Operations
  • COLUMN ALLIASES (BY USING AS / ””)
Define another name of column
  • CONCATENATION (||)
Concate more than one string or columns
  • DESC / DESCRIBE
Show the schema of any table or view
WHERE CLAUSE
  • COMPARISION OPERATORS
    (= , <, <=, >, >=, <>)
Use of comparision operators
  • BETWEEN ….. AND Condition
Use of between and condition
  • IN CONDITION
Use of IN Condition
  • LIKE CONDITION
Use of LIKE Condition
  • NULL CONDITION
Use of NULL Condition
  • LOGICAL CONDITION (AND, OR, NOT)
Use of logical Operators
  • ORDER BY CLAUSE (ASC / DESC)
Show data in ASC/DESC Order

Find highest salary for each job.

For solving the above question we need to create two tables (EMPLOYEE , DEPARTMENT)


create table employee
(
empid number(5) primary key,
empname varchar2(50),
salary number(10,2),
Grade number(1),
deptno number(3) references department(deptno),
location varchar2(50),
desig varchar(20)
);

create table department
(
deptno number(3) primary key,
deptname varchar(50)
);

Then Insert few records in Employee and Department table.

EMPLOYEE

EMPID EMPNAME SALARY GRADE DEPTNO LOCATION DESIG
1 AMIT SEN 11000 1 1 BHOPAL MANAGER
2 RAMESH THAKUR 11000 2 1 BHOPAL CLERK
3 RAKESH 12000 1 1 INDORE CLERK
4 SUMIT SAKET 9000 3 2 BHOPAL CLERK
5 AMIT SEN 11000 2 2 BHOPAL MANAGER
6 AMIT SEN 12000 2 5 INDORE CLERK
7 AMIT SEN 15000 1 6 INDORE MANAGER
8 ANKIT CHOUHAN 17000 1 6 INDORE CLERK
9 RAMAKANT RAJPOOT 12000 1 6 BHOPAL CLERK

DEPARTMENT

DEPTNO DEPTNAME
1 SALES
2 PRODUCTION
3 PURCHASE
4 MARKETING
5 ACCOUNTS
6 HR
7 ADMIN

SQL :

select deptno,MAX(salary) from employee GROUP BY deptno;


RESULT :

DEPTNO MAX(salary)
1 12000
2 11000
5 12000
6 17000

Find the employee having minimum salary in each department.

For solving the above question we need to create two tables (EMPLOYEE , DEPARTMENT)


create table employee
(
empid number(5) primary key,
empname varchar2(50),
salary number(10,2),
Grade number(1),
deptno number(3) references department(deptno),
location varchar2(50),
desig varchar(20)
);

create table department
(
deptno number(3) primary key,
deptname varchar(50)
);

Then Insert few records in Employee and Department table.

EMPLOYEE

EMPID EMPNAME SALARY GRADE DEPTNO LOCATION DESIG
1 AMIT SEN 11000 1 1 BHOPAL MANAGER
2 RAMESH THAKUR 11000 2 1 BHOPAL CLERK
3 RAKESH 12000 1 1 INDORE CLERK
4 SUMIT SAKET 9000 3 2 BHOPAL CLERK
5 AMIT SEN 11000 2 2 BHOPAL MANAGER
6 AMIT SEN 12000 2 5 INDORE CLERK
7 AMIT SEN 15000 1 6 INDORE MANAGER
8 ANKIT CHOUHAN 17000 1 6 INDORE CLERK
9 RAMAKANT RAJPOOT 12000 1 6 BHOPAL CLERK

DEPARTMENT

DEPTNO DEPTNAME
1 SALES
2 PRODUCTION
3 PURCHASE
4 MARKETING
5 ACCOUNTS
6 HR
7 ADMIN

SQL :

select deptno,MIN(salary) from employee GROUP BY deptno;


RESULT :

DEPTNO MIN(salary)
1 11000
2 9000
5 12000
6 12000

Find Employee name who earn minimum salary.

For solving the above question we need to create two tables (EMPLOYEE , DEPARTMENT)


create table employee
(
empid number(5) primary key,
empname varchar2(50),
salary number(10,2),
Grade number(1),
deptno number(3) references department(deptno),
location varchar2(50),
desig varchar(20)
);

create table department
(
deptno number(3) primary key,
deptname varchar(50)
);

Then Insert few records in Employee and Department table.

EMPLOYEE

EMPID EMPNAME SALARY GRADE DEPTNO LOCATION DESIG
1 AMIT SEN 11000 1 1 BHOPAL MANAGER
2 RAMESH THAKUR 11000 2 1 BHOPAL CLERK
3 RAKESH 12000 1 1 INDORE CLERK
4 SUMIT SAKET 9000 3 2 BHOPAL CLERK
5 AMIT SEN 11000 2 2 BHOPAL MANAGER
6 AMIT SEN 12000 2 5 INDORE CLERK
7 AMIT SEN 15000 1 6 INDORE MANAGER
8 ANKIT CHOUHAN 17000 1 6 INDORE CLERK
9 RAMAKANT RAJPOOT 12000 1 6 BHOPAL CLERK

DEPARTMENT

DEPTNO DEPTNAME
1 SALES
2 PRODUCTION
3 PURCHASE
4 MARKETING
5 ACCOUNTS
6 HR
7 ADMIN

SQL :

select empname,salary from employee where salary=(select min(salary) from employee);


RESULT :

EMPNAME SALARY
SUMIT SAKET 9000

Find Average Salary of employee working in each department.

For solving the above question we need to create two tables (EMPLOYEE , DEPARTMENT)


create table employee
(
empid number(5) primary key,
empname varchar2(50),
salary number(10,2),
Grade number(1),
deptno number(3) references department(deptno),
location varchar2(50),
desig varchar(20)
);

create table department
(
deptno number(3) primary key,
deptname varchar(50)
);

Then Insert few records in Employee and Department table.

EMPLOYEE

EMPID EMPNAME SALARY GRADE DEPTNO LOCATION DESIG
1 AMIT SEN 11000 1 1 BHOPAL MANAGER
2 RAMESH THAKUR 11000 2 1 BHOPAL CLERK
3 RAKESH 12000 1 1 INDORE CLERK
4 SUMIT SAKET 9000 3 2 BHOPAL CLERK
5 AMIT SEN 11000 2 2 BHOPAL MANAGER
6 AMIT SEN 12000 2 5 INDORE CLERK
7 AMIT SEN 15000 1 6 INDORE MANAGER
8 ANKIT CHOUHAN 17000 1 6 INDORE CLERK
9 RAMAKANT RAJPOOT 12000 1 6 BHOPAL CLERK

DEPARTMENT

DEPTNO DEPTNAME
1 SALES
2 PRODUCTION
3 PURCHASE
4 MARKETING
5 ACCOUNTS
6 HR
7 ADMIN

SQL :

select Avg(salary),deptno from employee Group By deptno;


RESULT :

SALARY DEPTNO
11333.3333 1
10000 2
12000 5
14666.6667 6

Find the employee having maximum salary in each department.

For solving the above question we need to create two tables (EMPLOYEE , DEPARTMENT)


create table employee
(
empid number(5) primary key,
empname varchar2(50),
salary number(10,2),
Grade number(1),
deptno number(3) references department(deptno),
location varchar2(50),
desig varchar(20)
);

create table department
(
deptno number(3) primary key,
deptname varchar(50)
);

Then Insert few records in Employee and Department table.

EMPLOYEE

EMPID EMPNAME SALARY GRADE DEPTNO LOCATION DESIG
1 AMIT SEN 11000 1 1 BHOPAL MANAGER
2 RAMESH THAKUR 11000 2 1 BHOPAL CLERK
3 RAKESH 12000 1 1 INDORE CLERK
4 SUMIT SAKET 9000 3 2 BHOPAL CLERK
5 AMIT SEN 11000 2 2 BHOPAL MANAGER
6 AMIT SEN 12000 2 5 INDORE CLERK
7 AMIT SEN 15000 1 6 INDORE MANAGER
8 ANKIT CHOUHAN 17000 1 6 INDORE CLERK
9 RAMAKANT RAJPOOT 12000 1 6 BHOPAL CLERK

DEPARTMENT

DEPTNO DEPTNAME
1 SALES
2 PRODUCTION
3 PURCHASE
4 MARKETING
5 ACCOUNTS
6 HR
7 ADMIN

SQL :

select deptno,MAX(salary) from employee GROUP BY deptno;


RESULT :

DEPTNO MAX(salary)
1 12000
2 11000
5 12000
6 17000

Find all Departments that have more than two employee.

For solving the above question we need to create two tables (EMPLOYEE , DEPARTMENT)


create table employee
(
empid number(5) primary key,
empname varchar2(50),
salary number(10,2),
Grade number(1),
deptno number(3) references department(deptno),
location varchar2(50),
desig varchar(20)
);

create table department
(
deptno number(3) primary key,
deptname varchar(50)
);

Then Insert few records in Employee and Department table.

EMPLOYEE

EMPID EMPNAME SALARY GRADE DEPTNO LOCATION DESIG
1 AMIT SEN 11000 1 1 BHOPAL MANAGER
2 RAMESH THAKUR 11000 2 1 BHOPAL CLERK
3 RAKESH 12000 1 1 INDORE CLERK
4 SUMIT SAKET 9000 3 2 BHOPAL CLERK
5 AMIT SEN 11000 2 2 BHOPAL MANAGER
6 AMIT SEN 12000 2 5 INDORE CLERK
7 AMIT SEN 15000 1 6 INDORE MANAGER
8 ANKIT CHOUHAN 17000 1 6 INDORE CLERK
9 RAMAKANT RAJPOOT 12000 1 6 BHOPAL CLERK

DEPARTMENT

DEPTNO DEPTNAME
1 SALES
2 PRODUCTION
3 PURCHASE
4 MARKETING
5 ACCOUNTS
6 HR
7 ADMIN

Find Average Salary for each job or department.

For solving the above question we need to create two tables (EMPLOYEE , DEPARTMENT)


create table employee
(
empid number(5) primary key,
empname varchar2(50),
salary number(10,2),
Grade number(1),
deptno number(3) references department(deptno),
location varchar2(50),
desig varchar(20)
);

create table department
(
deptno number(3) primary key,
deptname varchar(50)
);

Then Insert few records in Employee and Department table.

EMPLOYEE

EMPID EMPNAME SALARY GRADE DEPTNO LOCATION DESIG
1 AMIT SEN 11000 1 1 BHOPAL MANAGER
2 RAMESH THAKUR 11000 2 1 BHOPAL CLERK
3 RAKESH 12000 1 1 INDORE CLERK
4 SUMIT SAKET 9000 3 2 BHOPAL CLERK
5 AMIT SEN 11000 2 2 BHOPAL MANAGER
6 AMIT SEN 12000 2 5 INDORE CLERK
7 AMIT SEN 15000 1 6 INDORE MANAGER
8 ANKIT CHOUHAN 17000 1 6 INDORE CLERK
9 RAMAKANT RAJPOOT 12000 1 6 BHOPAL CLERK

DEPARTMENT

DEPTNO DEPTNAME
1 SALES
2 PRODUCTION
3 PURCHASE
4 MARKETING
5 ACCOUNTS
6 HR
7 ADMIN

SQL :

select Avg(salary),deptno from employee Group By deptno;


RESULT :

SALARY DEPTNO
11333.3333 1
10000 2
12000 5
14666.6667 6

Display the department who has no employee.

For solving the above question we need to create two tables (EMPLOYEE , DEPARTMENT)


create table employee
(
empid number(5) primary key,
empname varchar2(50),
salary number(10,2),
Grade number(1),
deptno number(3) references department(deptno),
location varchar2(50),
desig varchar(20)
);

create table department
(
deptno number(3) primary key,
deptname varchar(50)
);

Then Insert few records in Employee and Department table.

EMPLOYEE

EMPID EMPNAME SALARY GRADE DEPTNO LOCATION DESIG
1 AMIT SEN 11000 1 1 BHOPAL MANAGER
2 RAMESH THAKUR 11000 2 1 BHOPAL CLERK
3 RAKESH 12000 1 1 INDORE CLERK
4 SUMIT SAKET 9000 3 2 BHOPAL CLERK
5 AMIT SEN 11000 2 2 BHOPAL MANAGER
6 AMIT SEN 12000 2 5 INDORE CLERK
7 AMIT SEN 15000 1 6 INDORE MANAGER
8 ANKIT CHOUHAN 17000 1 6 INDORE CLERK
9 RAMAKANT RAJPOOT 12000 1 6 BHOPAL CLERK

DEPARTMENT

DEPTNO DEPTNAME
1 SALES
2 PRODUCTION
3 PURCHASE
4 MARKETING
5 ACCOUNTS
6 HR
7 ADMIN

SQL :
select deptno,deptname from department
MINUS
select d.deptno , d.deptname from department d , employee e where d.deptno=e.deptno;


RESULT :

DEPTNO DEPTNAME
3 PURCHASE
4 MARKETING
7 ADMIN

Find employee name , DepartNo and Department Name from.

For solving the above question we need to create two tables (EMPLOYEE , DEPARTMENT)


create table employee
(
empid number(5) primary key,
empname varchar2(50),
salary number(10,2),
Grade number(1),
deptno number(3) references department(deptno),
location varchar2(50),
desig varchar(20)
);

create table department
(
deptno number(3) primary key,
deptname varchar(50)
);

Then Insert few records in Employee and Department table.

EMPLOYEE

EMPID EMPNAME SALARY GRADE DEPTNO LOCATION DESIG
1 AMIT SEN 11000 1 1 BHOPAL MANAGER
2 RAMESH THAKUR 11000 2 1 BHOPAL CLERK
3 RAKESH 12000 1 1 INDORE CLERK
4 SUMIT SAKET 9000 3 2 BHOPAL CLERK
5 AMIT SEN 11000 2 2 BHOPAL MANAGER
6 AMIT SEN 12000 2 5 INDORE CLERK
7 AMIT SEN 15000 1 6 INDORE MANAGER
8 ANKIT CHOUHAN 17000 1 6 INDORE CLERK
9 RAMAKANT RAJPOOT 12000 1 6 BHOPAL CLERK

DEPARTMENT

DEPTNO DEPTNAME
1 SALES
2 PRODUCTION
3 PURCHASE
4 MARKETING
5 ACCOUNTS
6 HR
7 ADMIN

SQL :
select e.empname,d.deptno , d.deptname from department d , employee e where d.deptno=e.deptno;


RESULT :

EMPNAME DEPTNO DEPTNAME
AMIT SEN 1 SALES
RAMESH THAKUR 1 SALES
RAKESH 1 SALES
SUMIT SAKET 2 PRODUCTION
AMIT SEN 2 PRODUCTION
AMIT SEN 5 ACCOUNTS
AMIT SEN 6 HR
ANKIT CHOUHAN 6 HR
RAMAKANT RAJPOOT 6 HR

Show Employee Details whose salary >15000 and who are clerk.

For solving the above question we need to create two tables (EMPLOYEE , DEPARTMENT)


create table employee
(
empid number(5) primary key,
empname varchar2(50),
salary number(10,2),
Grade number(1),
deptno number(3) references department(deptno),
location varchar2(50),
desig varchar(20)
);

create table department
(
deptno number(3) primary key,
deptname varchar(50)
);

Then Insert few records in Employee and Department table.

EMPLOYEE

EMPID EMPNAME SALARY GRADE DEPTNO LOCATION DESIG
1 AMIT SEN 10000 1 1 BHOPAL MANAGER
2 RAMESH THAKUR 11000 2 1 BHOPAL CLERK
3 RAKESH 12000 1 1 INDORE CLERK
4 SUMIT SAKET 9000 3 2 BHOPAL CLERK
5 AMIT SEN 11000 2 2 BHOPAL MANAGER
6 AMIT SEN 12000 2 5 INDORE CLERK
7 AMIT SEN 15000 1 6 INDORE MANAGER

DEPARTMENT

DEPTNO DEPTNAME
1 SALES
2 PRODUCTION
3 PURCHASE
4 MARKETING
5 ACCOUNTS
6 HR
7 ADMIN

SQL :

select * from employee where salary>15000 and desig='CLERK';


RESULT :

EMPID EMPNAME SALARY GRADE DEPTNO LOCATION DESIG
8 ANKIT CHOUHAN 17000 1 6 INDORE CLERK

Show Employee Details of Grade 1.

For solving the above question we need to create two tables (EMPLOYEE , DEPARTMENT)


create table employee
(
empid number(5) primary key,
empname varchar2(50),
salary number(10,2),
Grade number(1),
deptno number(3) references department(deptno),
location varchar2(50),
desig varchar(20)
);

create table department
(
deptno number(3) primary key,
deptname varchar(50)
);

Then Insert few records in Employee and Department table.

EMPLOYEE

EMPID EMPNAME SALARY GRADE DEPTNO LOCATION DESIG
1 AMIT SEN 10000 1 1 BHOPAL MANAGER
2 RAMESH THAKUR 11000 2 1 BHOPAL CLERK
3 RAKESH 12000 1 1 INDORE CLERK
4 SUMIT SAKET 9000 3 2 BHOPAL CLERK
5 AMIT SEN 11000 2 2 BHOPAL MANAGER
6 AMIT SEN 12000 2 5 INDORE CLERK
7 AMIT SEN 15000 1 6 INDORE MANAGER

DEPARTMENT

DEPTNO DEPTNAME
1 SALES
2 PRODUCTION
3 PURCHASE
4 MARKETING
5 ACCOUNTS
6 HR
7 ADMIN

SQL :

select * from employee where grade=1;


RESULT :

EMPID EMPNAME SALARY GRADE DEPTNO LOCATION DESIG
1 AMIT SEN 10000 1 1 BHOPAL MANAGER
3 RAKESH 12000 1 1 INDORE CLERK
7 AMIT SEN 15000 1 6 INDORE MANAGER

Show the List showing employees with their Annual Salary , Grade , DepartNo and DepartName.

For solving the above question we need to create two tables (EMPLOYEE , DEPARTMENT)


create table employee
(
empid number(5) primary key,
empname varchar2(50),
salary number(10,2),
Grade number(1),
deptno number(3) references department(deptno),
location varchar2(50),
desig varchar(20)
);

create table department
(
deptno number(3) primary key,
deptname varchar(50)
);

Then Insert few records in Employee and Department table.

EMPLOYEE

EMPID EMPNAME SALARY GRADE DEPTNO LOCATION DESIG
1 AMIT SEN 10000 1 1 BHOPAL MANAGER
2 RAMESH THAKUR 11000 2 1 BHOPAL CLERK
3 RAKESH 12000 1 1 INDORE CLERK
4 SUMIT SAKET 9000 3 2 BHOPAL CLERK
5 AMIT SEN 11000 2 2 BHOPAL MANAGER
6 AMIT SEN 12000 2 5 INDORE CLERK
7 AMIT SEN 15000 1 6 INDORE MANAGER

DEPARTMENT

DEPTNO DEPTNAME
1 SALES
2 PRODUCTION
3 PURCHASE
4 MARKETING
5 ACCOUNTS
6 HR
7 ADMIN

SQL :

select e.empname , (e.salary*12) AS "Annual Salary" , e.grade , d.deptno , d.deptname from department d where d.deptno=e.deptno;


RESULT :

EMPNAME ANNUAL SALARY DEPTNO GRADE DEPTNAME
AMIT SEN 120000 1 1 SALES
RAMESH THAKUR 132000 2 1 SALES
RAKESH 144000 1 1 SALES
SUMIT SAKET 108000 3 2 PRODUCTION
AMIT SEN 132000 2 2 PRODUCTION
AMIT SEN 144000 2 5 ACCOUNTS
AMIT SEN 180000 1 6 HR

Select all employee in detail.

For solving the above question we need to create two tables (EMPLOYEE , DEPARTMENT)


create table employee
(
empid number(5) primary key,
empname varchar2(50),
salary number(10,2),
Grade number(1),
deptno number(3) references department(deptno),
location varchar2(50),
desig varchar(20)
);

create table department
(
deptno number(3) primary key,
deptname varchar(50)
);

Then Insert few records in Employee and Department table.

EMPLOYEE

EMPID EMPNAME SALARY GRADE DEPTNO LOCATION DESIG
1 AMIT SEN 10000 1 1 BHOPAL MANAGER
2 RAMESH THAKUR 11000 2 1 BHOPAL CLERK
3 RAKESH 12000 1 1 INDORE CLERK
4 SUMIT SAKET 9000 3 2 BHOPAL CLERK
5 AMIT SEN 11000 2 2 BHOPAL MANAGER
6 AMIT SEN 12000 2 5 INDORE CLERK
7 AMIT SEN 15000 1 6 INDORE MANAGER

DEPARTMENT

DEPTNO DEPTNAME
1 SALES
2 PRODUCTION
3 PURCHASE
4 MARKETING
5 ACCOUNTS
6 HR
7 ADMIN

SQL :
Select * from employee;


RESULT :

EMPID EMPNAME SALARY GRADE DEPTNO LOCATION DESIG
1 AMIT SEN 10000 1 1 BHOPAL MANAGER
2 RAMESH THAKUR 11000 2 1 BHOPAL CLERK
3 RAKESH 12000 1 1 INDORE CLERK
4 SUMIT SAKET 9000 3 2 BHOPAL CLERK
5 AMIT SEN 11000 2 2 BHOPAL MANAGER
6 AMIT SEN 12000 2 5 INDORE CLERK
7 AMIT SEN 15000 1 6 INDORE MANAGER

Display the Name , Location , Department , of Employees whose salary > 1500.

For solving the above question we need to create two tables (EMPLOYEE , DEPARTMENT)


create table employee
(
empid number(5) primary key,
empname varchar2(50),
salary number(10,2),
Grade number(1),
deptno number(3) references department(deptno),
location varchar2(50),
desig varchar(20)
);

create table department
(
deptno number(3) primary key,
deptname varchar(50)
);

Then Insert few records in Employee and Department table.

EMPLOYEE

EMPID EMPNAME SALARY GRADE DEPTNO LOCATION DESIG
1 AMIT SEN 10000 1 1 BHOPAL MANAGER
2 RAMESH THAKUR 11000 1 2 BHOPAL CLERK
3 RAKESH 12000 1 1 INDORE CLERK
4 SUMIT SAKET 9000 2 3 BHOPAL CLERK
5 AMIT SEN 11000 2 2 BHOPAL MANAGER
6 AMIT SEN 12000 5 2 INDORE CLERK
7 AMIT SEN 15000 6 1 INDORE MANAGER

DEPARTMENT

DEPTNO DEPTNAME
1 SALES
2 PRODUCTION
3 PURCHASE
4 MARKETING
5 ACCOUNTS
6 HR
7 ADMIN

SQL :
select e.empname, e.salary,d.deptno, d.deptname from department d, employee e where d.deptno = e.deptno and e.salary >1500;


RESULT :

EMPNAME SALARY DEPTNO DEPTNAME
AMIT SEN 10000 1 SALES
RAMESH THAKUR 11000 1 SALES
RAKESH 12000 1 SALES
SUMIT SAKET 9000 2 PRODUCTION
AMIT SEN 11000 2 PRODUCTION
AMIT SEN 12000 5 ACCOUNTS
AMIT SEN 15000 6 HR

Find the DepartNo and Department name for each employee.

For solving the above question we need to create two tables (EMPLOYEE , DEPARTMENT)


create table employee
(
empid number(5) primary key,
empname varchar2(50),
salary number(10,2),
Grade number(1),
deptno number(3) references department(deptno),
location varchar2(50),
desig varchar(20)
);

create table department
(
deptno number(3) primary key,
deptname varchar(50)
);

Then Insert few records in Employee and Department table.

EMPLOYEE

EMPID EMPNAME SALARY GRADE DEPTNO LOCATION DESIG
1 AMIT SEN 10000 1 1 BHOPAL MANAGER
2 RAMESH THAKUR 11000 2 1 BHOPAL CLERK
3 RAKESH 12000 1 1 INDORE CLERK
4 SUMIT SAKET 9000 3 2 BHOPAL CLERK
5 AMIT SEN 11000 2 2 BHOPAL MANAGER
6 AMIT SEN 12000 2 5 INDORE CLERK
7 AMIT SEN 15000 1 6 INDORE MANAGER

DEPARTMENT

DEPTNO DEPTNAME
1 SALES
2 PRODUCTION
3 PURCHASE
4 MARKETING
5 ACCOUNTS
6 HR
7 ADMIN

SQL :
select e.empname, d.deptno, d.deptname from department d , employee e where d.deptno=e.deptno;


RESULT :

EMPNAME DEPTNO DEPTNAME
AMIT SEN 1 SALES
RAMESH THAKUR 1 SALES
RAKESH 1 SALES
SUMIT SAKET 2 PRODUCTION
AMIT SEN 2 PRODUCTION
AMIT SEN 5 ACCOUNTS
AMIT SEN 6 HR

On the Employee Table use the many faces of SELECT command.

 SELECT Statement

For solving the above question we need to create two tables (EMPLOYEE , DEPARTMENT)


create table employee
(
empid number(5) primary key,
empname varchar2(50),
salary number(10,2),
Grade number(1),
deptno number(3) references department(deptno),
location varchar2(50),
desig varchar(20)
);

create table department
(
deptno number(3) primary key,
deptname varchar(50)
);

Then Insert few records in Employee and Department table.

EMPLOYEE

EMPID EMPNAME SALARY GRADE DEPTNO LOCATION DESIG
1 AMIT SEN 10000 1 1 BHOPAL MANAGER
2 RAMESH THAKUR 11000 2 1 BHOPAL CLERK
3 RAKESH 12000 1 1 INDORE CLERK
4 SUMIT SAKET 9000 3 2 BHOPAL CLERK
5 AMIT SEN 11000 2 2 BHOPAL MANAGER
6 AMIT SEN 12000 2 5 INDORE CLERK
7 AMIT SEN 15000 1 6 INDORE MANAGER

DEPARTMENT

DEPTNO DEPTNAME
1 SALES
2 PRODUCTION
3 PURCHASE
4 MARKETING
5 ACCOUNTS
6 HR
7 ADMIN

SQL Type1:

select * from employee;

RESULT :
EMPID EMPNAME SALARY GRADE DEPTNO LOCATION DESIG
1 AMIT SEN 10000 1 1 BHOPAL MANAGER
2 RAMESH THAKUR 11000 2 1 BHOPAL CLERK
3 RAKESH 12000 1 1 INDORE CLERK
4 SUMIT SAKET 9000 3 2 BHOPAL CLERK
5 AMIT SEN 11000 2 2 BHOPAL MANAGER
6 AMIT SEN 12000 2 5 INDORE CLERK
7 AMIT SEN 15000 1 6 INDORE MANAGER

SQL Type2:

select EMPNAME from employee;

EMPNAME
AMIT SEN
RAMESH THAKUR
RAKESH
SUMIT SAKET
AMIT SEN
AMIT SEN
AMIT SEN

SQL Type3:

select DISTINCT EMPNAME from employee;

EMPNAME
AMIT SEN
RAMESH THAKUR
RAKESH
SUMIT SAKET

Create tables named Employee. Department, Salary, Implement all DDL commands on it.

 DDL (Data Defination Language):

For solving the above question we need to create two tables (EMPLOYEE , DEPARTMENT)


create table employee
(
empid number(5) primary key,
empname varchar2(50),
salary number(10,2),
Grade number(1),
deptno number(3) references department(deptno),
location varchar2(50),
desig varchar(20)
);

create table department
(
deptno number(3) primary key,
deptname varchar(50)
);

Then Insert few records in Employee and Department table.

EMPLOYEE

EMPID EMPNAME SALARY GRADE DEPTNO LOCATION DESIG
1 AMIT SEN 10000 1 1 BHOPAL MANAGER
2 RAMESH THAKUR 11000 2 1 BHOPAL CLERK
3 RAKESH 12000 1 1 INDORE CLERK
4 SUMIT SAKET 9000 3 2 BHOPAL CLERK
5 AMIT SEN 11000 2 2 BHOPAL MANAGER
6 AMIT SEN 12000 2 5 INDORE CLERK
7 AMIT SEN 15000 1 6 INDORE MANAGER

DEPARTMENT

DEPTNO DEPTNAME
1 SALES
2 PRODUCTION
3 PURCHASE
4 MARKETING
5 ACCOUNTS
6 HR
7 ADMIN

DO YOU KNOW ABOUT LOGICAL CONDITIONS IN SQL STATEMENT IN HINDI


LOGICAL CONDITIONS

दोस्तों आज हम जानेगें की SQL SELECT स्टेटमेंट में कौन - कौन सी LOGICAL CONDITIONS का प्रयोग करते है ? , कहाँ प्रयोग करते है ?, कैसे प्रयोग करते है ? इन सभी प्रश्नों के उत्तर जानेगें |

सबसे पहले जानते है की कौन - कौन सी LOGICAL CONDITIONS होती है |

प्रायः तीन तरह की LOGICAL CONDITIONS  होती है जैसे :

✔ AND

✔ OR

✔ NOT

हम जानते है की AND एक बाइनरी ऑपरेटर है जिसमे दो कॉम्पोनेन्ट (COMPONENT) प्रयोग किये जाते है जैसे : (A =B) AND (C >20) इसमें रिजल्ट एक ही आएगा (TRUE या FALSE) इसमें अगर दोनों  CONDITION सही हुई तो रिजल्ट TRUE आएगा और अगर दोनों या एक भी FALSE हुई तो रिजल्ट FALSE आएगा |

हम जानते है की OR एक बाइनरी ऑपरेटर है जिसमे दो कॉम्पोनेन्ट (COMPONENT) प्रयोग किये जाते है जैसे : (A =B) OR (C >20) इसमें रिजल्ट एक ही आएगा (TRUE या FALSE) इसमें अगर दोनों में से एक भी  CONDITION सही हुई तो रिजल्ट TRUE आएगा और अगर दोनों  FALSE हुई तो रिजल्ट FALSE आएगा |

NOT TRUE RETURN करेगा अगर दी हुई CONDITION FALSE होगी | NOT का प्रयोग अन्य SQL OPERATORS के साथ भी किया जाता है , जैसे BETWEEN , IN ,LIKE ,NULL आदि |

यहाँ TRUE का मतलब डाटा का मिल जाना , FALSE का मतलब कोई भी MATCHING DATA का न होना | इन LOGICAL OPERATORS को हम एक ही WHERE CLAUSE में प्रयोग कर सकते है |

इन सभी OPERATORS को हम अब PRACTICAL तरीके से समझते है :

इसके लिए हम एक EMPLOYEE नाम की टेबल लेते है 


इस EMPLOYEE टेबल में 10 RECORDS है जिसमे एक NULL VALUE का रिकॉर्ड भी है |

अब हम देखते है की किस तरीके से इन LOGICAL OPERATORS को अपनी जरूरत के हिसाब से प्रयोग कर सकते है |

उदाहरण 1 :

मान लीजिये आप को ऐसे EMPLOYEE के RECORD देखने है जिनकी SALARY 10000 से ऊपर हो या उसके बराबर हो , जिनका नाम 'A ' अक्षर से चालू हो , जिनकी AGE 20 वर्ष से ऊपर हो | इसके लिए SQL स्टेटमेंट होगा :

SELECT * FROM EMPLOYEE WHERE SALARY>=10000 AND EMPNAME LIKE'A%' AND AGE>20;


उदाहरण 2 :


मान लीजिये आप को ऐसे EMPLOYEE के RECORD देखने है जिनकी SALARY 30000 से ऊपर हो या उसके बराबर हो या  जिनकी AGE 40 वर्ष से ऊपर हो या उसके बराबर हो | इसके लिए SQL स्टेटमेंट होगा :

SELECT * FROM EMPLOYEE WHERE SALARY>=30000 OR AGE>=40;



उदाहरण 3 :


मान लीजिये आप को ऐसे EMPLOYEE के RECORD देखने है जिनकी SALARY 30000 से ऊपर हो या उसके बराबर हो , जिनकी AGE 30 वर्ष से ऊपर हो या उसके बराबर हो और जिसका INCENTIVE NULL न  हो | इसके लिए SQL स्टेटमेंट होगा :


SELECT * FROM EMPLOYEE WHERE SALARY>=30000 AND AGE>=30 AND INCENTIVE IS NOT NULL;

और अन्य है :

SELECT * FROM EMPLOYEE WHERE SALARY >=10000 AND EMPNAME NOT LIKE 'A%' AND AGE >20;

SELECT * FROM EMPLOYEE WHERE SALARY NOT BETWEEN 20000 AND 30000;



NOT का प्रयोग ऊपर दिए गये उदाहरण में बताया गया है जिसमे हमने कई CASES लिए है |
उम्मीद है आप समझ गये होंगे कि SQL स्टेटमेंट में LOGICAL CONDITIONS को किस प्रकार प्रयोग करना है | इस पोस्ट में इतना ही ,अगले पोस्ट में मिलते है एक नए पोस्ट के साथ 
👀👀

COMPARISON CONDITIONS IN SQL SELECT STATEMENT

 


👀👇👍

दोस्तों आज हम SQL स्टेटमेंट में COMPARISON CONDITIONS को प्रयोग करना सीखेंगे | इन CONDITIONS को WHERE CLAUSE में प्रयोग किया जाता है | विभिन्न प्रकार के रिकॉर्ड को फ़िल्टर करने में यह बहुत सहायक होता है |

आइए देखते है COMPARISON CONDITIONS के लिए कितने प्रकार के OPERATORS प्रयोग में लाये जाते है :

✔    =      EQUAL TO

    >      GREATER THAN 

✔    >=    GREATER THAN OR EQUAL TO

    <      LESS THEN 

     <=    LESS THAN OR EQUAL TO

    < >    NOT EQUAL TO 

✔    BETWEEN ..... AND ....

    IN (SET) 

    LIKE 

✔    IS NULL

 अब हम इन OPERATORS के बारे में विस्तार से समझतें है की -

 क्या होते है ? 

 कंहा प्रयोग करते है ? 

 कैसे प्रयोग करते है ?

इन सभी को समझने के लिए सबसे पहले हम एक टेबल लेते है , जिसमे 10 रिकॉर्ड है |


 

1. = ( EQUAL TO ) OPERATOR :

इस OPERATOR का प्रयोग सामान्य रूप से बराबरी के संबंध को चेक करने के लिए करते है कि बांयी तरफ का मान दांयी तरफ के मान के बराबर है या नहीं |

जैसे : X=Y यंहा पर X कोई कॉलम होगा और Y कोई मान (VALUE )

अब हम देखते है कि इसे SQL स्टेटमेंट में किस प्रकार प्रयोग करते है :

मान लीजिए हमें उस EMPLOYEE का नाम देखना है जिसका INCENTIVE ' 0 ' हो | उसके लिए SQL  स्टेटमेंट होगा :

SELECT EMPNAME FROM EMPLOYEE WHERE INCENTIVE = 0;


2. >)  GREATER THAN :

इस OPERATOR का प्रयोग सामान्य रूप से GREATER THAN के संबंध को चेक करने के लिए करते है कि बांयी तरफ का मान दांयी तरफ के मान से अधिक है या नहीं |

जैसे : X >Y यंहा पर X कोई कॉलम होगा और Y कोई मान (VALUE )

अब हम देखते है कि इसे SQL स्टेटमेंट में किस प्रकार प्रयोग करते है :

मान लीजिए हमें उस EMPLOYEE का नाम और INCENTIVE देखना है जिसका INCENTIVE ' 0 ' से अधिक  हो | उसके लिए SQL  स्टेटमेंट होगा :

SELECT EMPNAME , INCENTIVE FROM EMPLOYEE WHERE INCENTIVE > 0;


3. >=)  GREATER THAN EQUAL TO :

इस OPERATOR का प्रयोग सामान्य रूप से GREATER THAN या  EQUAL के संबंध को चेक करने के लिए करते है कि बांयी तरफ का मान दांयी तरफ के मान से अधिक या  बराबर है या नहीं |

जैसे : X >=Y यंहा पर X कोई कॉलम होगा और Y कोई मान (VALUE )

अब हम देखते है कि इसे SQL स्टेटमेंट में किस प्रकार प्रयोग करते है :

मान लीजिए हमें उस EMPLOYEE का नाम और INCENTIVE देखना है जिसका INCENTIVE ' 30 ' से अधिक या बराबर  हो | उसके लिए SQL  स्टेटमेंट होगा :

SELECT EMPNAME , INCENTIVE  FROM EMPLOYEE WHERE INCENTIVE >= 30;


4. ( < )  LESS THEN :

इस OPERATOR का प्रयोग सामान्य रूप से LESS THEN के संबंध को चेक करने के लिए करते है कि बांयी तरफ का मान दांयी तरफ के मान से कम है या नहीं |

जैसे : X < Y यंहा पर X कोई कॉलम होगा और Y कोई मान (VALUE )

अब हम देखते है कि इसे SQL स्टेटमेंट में किस प्रकार प्रयोग करते है :

मान लीजिए हमें उस EMPLOYEE का नाम और INCENTIVE देखना है जिसका INCENTIVE ' 100 ' से कम  हो | उसके लिए SQL  स्टेटमेंट होगा :

SELECT EMPNAME , INCENTIVE FROM EMPLOYEE WHERE INCENTIVE < 100;



4. ( < = )  LESS THEN EQUAL TO :

इस OPERATOR का प्रयोग सामान्य रूप से LESS THEN या  EQUAL के संबंध को चेक करने के लिए करते है कि बांयी तरफ का मान दांयी तरफ के मान से कम है या नहीं |

जैसे : X <= Y यंहा पर X कोई कॉलम होगा और Y कोई मान (VALUE )

अब हम देखते है कि इसे SQL स्टेटमेंट में किस प्रकार प्रयोग करते है :

मान लीजिए हमें उस EMPLOYEE का नाम और INCENTIVE देखना है जिसका INCENTIVE ' 100 ' से कम या बराबर है  हो | उसके लिए SQL  स्टेटमेंट होगा :

SELECT EMPNAME , INCENTIVE FROM EMPLOYEE WHERE INCENTIVE <= 100;


5. ( <> )  NOT EQUAL TO :

इस OPERATOR का प्रयोग सामान्य रूप से बराबर न होने  ( NOT EQUAL ) के संबंध को चेक करने के लिए करते है कि बांयी तरफ का मान दांयी तरफ के मान के बराबर न हो ||

जैसे : X <> Y यंहा पर X कोई कॉलम होगा और Y कोई मान (VALUE )

अब हम देखते है कि इसे SQL स्टेटमेंट में किस प्रकार प्रयोग करते है :

मान लीजिए हमें उस EMPLOYEE का नाम और INCENTIVE देखना है जिसका INCENTIVE ' 100 ' न  हो | उसके लिए SQL  स्टेटमेंट होगा :

SELECT EMPNAME , INCENTIVE FROM EMPLOYEE WHERE INCENTIVE <> 100;


6.  BETWEEN ..... AND ....

BETWEEN ..... AND .... का प्रयोग करके हम एक रेंज दे सकते है जिस रेंज के मान के अनुसार हम रिकॉर्ड या डाटा को देख सकते है | इसको हम WHERE CLAUSE में प्रयोग करते है | जैसे 

मान लीजिए आप उन EMPLOYEE का रिकॉर्ड देखना चाहते है जिनकी SALARY 10000 से 20000 की रेंज में हो | अब आप देखेंगे की यहाँ पर 10000 MINIMUM रेंज है और  20000 MAXIMUM रेंज है | इसके लिए SQL STATEMENT होगा :

SELECT * FROM EMPLOYEE WHERE SALARY BETWEEN 10000 AND 20000;

इसमें यह ध्यान में रखना है की BETWEEN के साथ MINIMUM रेंज को ही देना है | जैसे यंहा पर 10000 है |


7.  IN (SET) 

IN में हम एक से ज्यादा मान दे सकते है ये मान एक ही प्रकार के डाटा टाइप के होने चाहिए , या तो नंबर हो , या CHARACTER हो , या DATE हो | CHARACTER और DATE को लिखने के लिए सिंगल कोट ( ' ' ) लगाना अनिवार्य है पर नंबर को बिना  सिंगल कोट ( ' ' ) के ही लिख सकते है , 

जैसे :

IN (100 ,200, 300,.....)  नंबर के लिए 

IN ( 'AMIT ', ' RAJ ', ' SHAILU ', ....)  CHARACTER के लिए 

IN ( ' 04/09/2020 ', ' 05/09/2020 ', ' 06/09/2020 ', .......)  DATE के लिए 

अब हम इसे उदाहरण से समझते है , मान लीजिये हम उन EMPLOYEE का रिकॉर्ड देखना चाहते है जिनकी SALARY (10000 ,15000, 20000) हो | उसके लिए SQL STATEMENT होगा :

SELECT * FROM EMPLOYEE WHERE SALARY IN (10000 ,15000, 20000);


8.  LIKE 

LIKE का प्रयोग किसी करैक्टर को सर्च ( खोजना ) करने के लिए  किया जाता है | इसमें हम अलग - अलग  पैटर्न को दे कर किसी CHARACTER , LITERAL ( शाब्दिक ) या नंबर को सर्च कर सकते है | इसे हम वाइल्ड कार्ड सर्च भी कहते है |

इसमें विभिन्न पैटर्न को देने के लिए ( % ) और ( _ ) का प्रयोग करते है |

( % ) : इसमें हम एक से ज्यादा CHARACTER का प्रयोग कर सकते है या फिर जीरो CHARACTER का |

( _ )  : इसमें हम एक CHARACTER का प्रयोग करते  है |

इसका प्रयोग देखते है :

( % ) -  LIKE 'A %' इसका मतलब है सर्च CHARACTER का पहला WORD 'A' होना चाहिए और ( % ) का मतलब कोई भी CHARACTER  हो सकता है |

जैसे : ऐसे EMPLOYEE का रिकॉर्ड देखना है जिनका नाम  'A ' से शुरू हुआ हो |

SELECT * FROM EMPLOYEE WHERE EMPNAME LIKE 'A%';

इसको समझने के लिए कुछ और CASES लेतें है :



ऊपर दिए गये सारे CASES से हम आसानी से समझ सकते है की ( %) और ( _ ) को हम किन - किन पैटर्न से प्रयोग कर सकते है |
CASE 1 : LIKE ' % M % H ' इनसे हमें उन EMPLOYEE के नाम मिलेंगे जिनके नाम में 'M' LETTER कहीं भी हो और 'H' LETTER अंत (LAST ) में होना चाहिए |

CASE 2 : LIKE ' % M % A ' इनसे हमें उन EMPLOYEE के नाम मिलेंगे जिनके नाम में 'M' LETTER कहीं भी हो और 'A' LETTER अंत (LAST ) में होना चाहिए |

CASE 3 : LIKE ' % M % A _ ' इनसे हमें उन EMPLOYEE के नाम मिलेंगे जिनके नाम में 'M' LETTER कहीं भी हो और  अंतिम दूसरा अक्षर 'A'  (LAST SECOND LETTER  ) होना चाहिए |

CASE 4 : LIKE ' _ % M % A _ ' इनसे हमें उन EMPLOYEE के नाम मिलेंगे जिनके नाम में 'M' LETTER कहीं भी हो और  अंतिम दूसरा अक्षर 'A'  (LAST SECOND LETTER  ) होना चाहिए | CASE 3 और CASE 4 SAME है |

CASE 5 : LIKE ' _  M % A _ ' इनसे हमें उन EMPLOYEE के नाम मिलेंगे जिनके नाम में दूसरा अक्षर  'M' होगा  और  अंतिम दूसरा अक्षर 'A'  (LAST SECOND LETTER  ) होना चाहिए |

CASE 6 : LIKE ' _  M % A _ _ ' इनसे हमें उन EMPLOYEE के नाम मिलेंगे जिनके नाम में दूसरा अक्षर  'M' होगा  और  अंतिम तीसरा अक्षर 'A'  (LAST THIRD LETTER  ) होना चाहिए |

CASE 7 : LIKE ' _  M % A _ %  ' इनसे हमें उन EMPLOYEE के नाम मिलेंगे जिनके नाम में दूसरा अक्षर  'M' होगा  पर 'A' का स्थान निश्चित नहीं है कि अंतिम से दूसरा होगा या तीसरा होगा या चौथा होगा या और भी क्योकि अंत में '%' लगा है |


9.  IS NULL
यह NULL CONDITION को चेक करने के लिए प्रयोग की जाती है की कोई मान NULL है या नहीं , इसको हम IS NULL या IS NOT NULL से चेक करते है |

हम ऊपर देख सकते है की जो हमारे पास टेबल है उसमे कोई भी मान NULL टाइप का  नहीं है | तो हम एक के मान को NULL बनाएगें | इसके लिए हमें UPDATE COMMAND चलाना पड़ेगा | UPDATE COMMAND के बारे में हम आगे पढेंगे |

हमारी पूरानी  टेबल है :


आप देख सकते है कि INCENTIVE कॉलम में कुछ न कुछ मान है (10,100,0,50,10,0,0,30,100,100) पर कहीं भी NULL नहीं है तो हम NULL INSERT करेंगे |

UPDATE EMPLOYEE SET INCENTIVE=NULL WHERE EMPNO=106;

UPDATE COMMAND से EMPNO 106 के INCENTIVE को NULL कर दिया है |
 
अब नई टेबल होगी :


NOTE : NULL न ही ZERO होता है न ही कोई खली जगह होती है बल्कि कोई VALUE होती है जिसको हम NULL VALUE कहते है |
अगर हमें उस EMPLOYEE का रिकॉर्ड देखना है जिसका INCENTIVE NULL हो 

SELECT * FROM EMPLOYEE WHERE INCENTIVE IS NULL;


दोस्तों उम्मीद है यह पोस्ट आप सब को समझ में आया होगा , जिसमे हम ने SQL स्टेटमेंट में COMPARISON CONDITIONS को प्रयोग करना सीखा | अगले पोस्ट में फिर मिलते है |