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

SQL 3ri

The document contains SQL queries and operations performed on sample employee database tables. It demonstrates various SQL functions for selecting, filtering, aggregating and manipulating data. These include queries using SELECT, WHERE, ORDER BY, GROUP BY clauses and aggregate functions like COUNT, SUM, AVG, MAX, MIN. It also shows string, date functions and operators like TRIM, SUBSTR, ADD_MONTHS, DECODE and creation of new tables.

Uploaded by

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

SQL 3ri

The document contains SQL queries and operations performed on sample employee database tables. It demonstrates various SQL functions for selecting, filtering, aggregating and manipulating data. These include queries using SELECT, WHERE, ORDER BY, GROUP BY clauses and aggregate functions like COUNT, SUM, AVG, MAX, MIN. It also shows string, date functions and operators like TRIM, SUBSTR, ADD_MONTHS, DECODE and creation of new tables.

Uploaded by

Sushmita Mhamane
Copyright
© © All Rights Reserved
Available Formats
Download as DOCX, PDF, TXT or read online on Scribd
You are on page 1/ 32

---27/09/2022---

SELECT * from employees;

select first_name from employees;

Select first_name,last_name,email from employees;

SELECT first_name,last_name from employees where employee_id=100;

---Describe---
desc employees;

---Operations with column---


SELECT salary+10000 from employees;

select first_name,salary,salary+10000 from employees;

select first_name as name from employees;

---Concatenation---
select first_name||last_name from employees;

select first_name||last_name as full_name from employees;

select first_name||' '||last_name as full_name from employees;

select first_name||'***'||last_name as full_name from employees;

select first_name||last_name||'**' as full_name from employees;

---Distinct Keyword---
select DISTINCT job_id from employees;
select first_name,last_name from employees where salary>15000;

select first_name,last_name from employees where job_id='FI_ACCOUNT';

select first_name,last_name from employees where job_id='FI_ACCOUNT' or job_id='AD_PRES';

---Between Operator---
select first_name,last_name,salary from employees where salary BETWEEN 10000 and 15000;

---And Operator---
select first_name,last_name,salary from employees where salary>10000 and salary<15000;

select * from employees;

---in operator---
select first_name,job_id from employees where job_id in('AD_PRES','AD_VP','IT_PROG');

select first_name from employees where MANAGER_ID in(100,104,118);

---Like Operator---
select first_name from employees where first_name Like 'S%';

select first_name from employees where first_name Like '%e';

select first_name from employees where first_name Like '_o%';

select first_name from employees where first_name Like '_e_';

---28/09/2022---

select first_name from employees where first_name Like 'D%d';


select first_name,last_name from employees where first_name Like 'A%' or last_name LIKE 'A%';

select first_name from employees where job_id='IT_PROG' and manager_id=100;

---not operator---
select first_name,job_id from employees where job_id!='IT_PROG';

select first_name,job_id from employees where job_id not in('IT_PROG');

select first_name,job_id from employees where job_id!='IT_PROG';

---order by--
select first_name from employees order by first_name;

select first_name,job_id from employees order by job_id ;

select first_name,job_id,department_id from employees order by job_id,department_id;

---lower---
select lower(first_name) from employees;

---upper---
select upper(first_name) from employees;

select 'The job for '||upper(first_name)||' is '||lower(job_id) from employees;

---length---
select LENGTH(first_name) from employees;

---29/09/2022---
select * from employees;
select upper('sql') from dual;

select lower('JAVA') from dual;

select * from dual;

---initcap---
select upper(first_name),lower(last_name),initcap(email) from employees;

---Substring operator---
select substr('Welcome to java',5,3) As name from dual;

select substr(job_id,4) from employees where employee_id=100;

---instring operator---
select instr('vqvaq','q',3) from dual;

---left padding---
select lpad('java',10,'ABCD') from dual;

---right padding---
select rpad('java',10,'ABCD') from dual;

select lpad(job_id,12,'AC') from employees;

---Trim operator---

---leading---
select trim(leading '0' from '100000100000100') from dual;

---trailing---
select trim(trailing '0' from '0000010000000') from dual;

----both---
select trim(both '0' from '0000010000000') from dual;

select trim(trailing '0' from salary) from employees;

---Replace Operator---
select replace('java','j','c') from dual;

select replace(first_name,'a','Z')as modified_name,first_name from employees;

---Numeric Function---

---round operator---
select round(45.9866,3) from dual;

---trunc operator---
select trunc(45.9866,3) from dual;

---mod Operator---
select mod(47,3) from dual;

select salary,mod(salary,500) from employees;

---Ceio Operator---
select ceil(23.45) from dual;

---floor operator---
select floor(23.45)from dual;

---round Operator---
select round(first_name) from employees;

---30/09/2022---

---Date Function---
select sysdate from dual;

---Months Between Operator---


select floor(MONTHS_BETWEEN(SYSDATE,'01-01-2021')) from dual;

select floor(MONTHS_BETWEEN('25-05-1997','05-05-2019')) from dual;

select floor(MONTHS_BETWEEN(sysdate,'01-01-2021')) from dual;

---add months---
select add_months(sysdate,6) from dual;

select add_months(hire_date,2),hire_date,employee_id from employees where employee_id=110;

select add_months(hire_date,2),hire_date,employee_id from employees where employee_id


in(100,102,110,104);

select first_name,employee_id,hire_date, add_months(hire_date,2) from employees where


employee_id=110;

---Next Day---
select NEXT_DAY(SYSDATE, 'TUESDAY') from dual;

---Last Day---
select LAST_DAY('01-03-2022') from dual;

---Round Operator---
select round(sysdate,'dd') from dual;

select round('30-09-22','dd') from dual;

select sysdate from dual;

select HIRE_DATE,NEXT_DAY(HIRE_DATE,'MONDAY') from employees;

---nvl operator---
select nvl(null,7) from dual;

select nvl(null,5) from dual;

select nvl(10,5) from dual;

select first_name,COMMISSION_PCT, nvl(COMMISSION_PCT,10) from employees;

select first_name,manager_id, nvl(manager_id,200) from employees where first_name='Steven';

select employee_id,first_name,department_id, nvl(department_id,1) from employees where


job_id='SA_REP';

select nvl2(8,5,7) from dual;

---nvl2 Operator---
select first_name,COMMISSION_PCT, nvl2(COMMISSION_PCT,20,10) from employees;

---null if---
select nullif(5,5)from dual;

select first_name from employees where manager_id=department_id;

---Coalesce Operator---
select COALESCE(null,5,7,null) from dual;

select * from employees;

---Assignment Questions---

select first_name,hire_date,add_months(hire_date,9) from employees;

select floor(MONTHS_BETWEEN(Sysdate,'25-05-1997')) from dual;

select first_name,department_id,hire_date,add_months(hire_date,3) from employees where


department_id in(50,100);

select upper(first_name),lower(last_name),initcap(email),hire_date as joining_date,salary+10000


from employees;

select first_name,hire_date,next_day(hire_date,'MONDAY') from employees;

select first_name,job_id,commission_pct,nvl(commission_pct,7.5) from employees where


job_id='SH_CLERK';

select lower(first_name),department_id,trim(trailing '0' from department_id),salary,salary+9000 as


incremented,add_months(hire_date,7) from employees where department_id=110;

select salary,mod(salary,500) from employees;

select 'The updated information of '||first_name||' is '||'1) hire date is '||add_months(hire_date,6)||' 2)


Commission is '||nvl(COMMISSION_PCT,5.6)from employees;

---04/10/2022---

---max operation---
select max(salary) from employees;
---min Operation---
select min(salary) from employees;

---Count Operation---
select count(salary) from employees;

select count(*) from employees;

---sum operation---
select sum(salary) from employees;

---average Operation
select round(avg(salary)) from employees;

---Display min ans max salary from employee from IT_PROG

select min(salary), max(salary) from employees where job_id='IT_PROG';

select min(salary), max(salary),job_id


from employees
where job_id='IT_PROG'
group by job_id;

---Display min ans max salary from employee from Manager_id


select min(salary), max(salary),manager_id
from employees
group by manager_id;

---Display min ans max salary from employee from Manager_id=100


select min(salary), max(salary),manager_id
from employees
where manager_id=100
group by manager_id;

---Display min ans max salary from employee from Manager_id in ascending order
select min(salary), max(salary),manager_id
from employees
group by manager_id
order by manager_id;

---display avg commision of employee department wise


select avg(COMMISSION_PCT),department_id
from employees
group by department_id
order by department_id;

select * from employees;

---sum of salary from every job id of employee

select sum(salary),job_id
from employees
group by job_id
order by job_id;

---display max salary of every department


select max(salary),department_id
from employees
group by department_id
order by department_id;

---display the number of employee with the same job


select count(employee_id),job_id
from employees
group by job_id
order by job_id;

---display the number of employee with the same manager_id


select count(employee_id),manager_id
from employees
group by manager_id
order by manager_id;

---Display highest,lowest,sum and average of salary of all employees and label columns as
Maximum,minimum,Sum and Average and round your result to nearest whole number

select max(salary) as Maximum,min(salary) as Minimum,Sum(salary) as Sum,round(avg(salary)) as


Average
from employees;

---Creating new table---

create TABLE Student(student_id NUMBER(10),student_name varchar(10));


desc Student;

create TABLE Student1(student_id NUMBER(10),student_name varchar(10));


desc Student1;

---Deleting table----
drop table Student;

desc Student1;

---Assignment 4---
select max(salary),min(salary)
from employees
where job_id='IT_PROG';
select floor(avg(salary)),count(employee_id)
from employees
where department_id=90;

select max(salary)-min(salary) as differnce,department_id


from employees
group by department_id;

select sum(salary)as total_sal,department_id


from employees
group by department_id;

select count(employee_id),hire_date
from employees
group by hire_date
order by hire_date;

select sum(salary) as total_dept_salary,department_id


from employees
group by department_id;

select sum(employee_id),department_id
from employees
group by department_id
order by department_id;

create TABLE Customer(student_id NUMBER(10),Customer_name varchar(20),City varchar(10));


desc Customer;

---06/10/2022---
---Decode----
SELECT first_name, job_id, salary,
DECODE(job_id, 'AD_PRES',salary+10000,'AD_VP', salary+20000,salary)
as Updated_salary
FROM employees;

select first_name,department_id,
decode(department_id,90,salary+(salary*2/100),100,salary-(salary-3/100),salary)
as Updated_salary
from employees;

---DML Operations---

Create table Student (id number(10),name VARCHAR2(20));

desc Student;

---alter add---
alter table Student add (birth_date date);

desc Student;

---alter modify---
alter table Student modify(name varchar2(30));

desc Student;

---alter drop---
alter table Student drop(birth_date);

---alter table Student drop column birth_date;


desc Student;
---Rename to---
rename Student to Stud;
desc Stud;

---Insert into values---


insert into stud values(1,'Akshay');
desc Stud;

---Insert data into particular colomn---


insert into stud(id) values(2);
select * from Stud;

insert into stud(name,id) values('Sanjay',3);


select * from Stud;

---Insert data from one table to another table---


insert into Stud(id,name) select Employee_id,first_name
from employees
where first_name='Steven';

insert into Stud(id,name)


select Employee_id,first_name
from employees;

---Update data---
update Stud set name='Akshay Kumar' where id=1;
select * from Stud;

---Delete data---
delete from Stud where id=1;
select * from Stud;
delete from Stud;

---Rollback---
ROLLBACK;

---Create table and add values from other table---


create table New_Employee (id,name)
as
select employee_id,first_name from employees;

select * from new_employee;

---truncate table---
truncate table new_employee;

---drop table---
drop table new_employee;

select * from new_employee;

---07/10/2022---

---Transaction Control---

Create table Student (id number(10),name VARCHAR2(20));

desc Student;

---RollBack----
insert into Student values(1,'abc');
insert into Student values(2,'asd');

insert into Student values(3,'aff');

insert into Student values(4,'avc');

insert into Student values(5,'and');

insert into Student values(6,'dsf');

select * from Student;

rollback;

----Commit-----
insert into Student values(1,'abc');

insert into Student values(2,'asd');

insert into Student values(3,'aff');

commit;

insert into Student values(4,'avc');

insert into Student values(5,'and');

insert into Student values(6,'dsf');

rollback;
delete from Student;

---Savepoint Creation---
insert into Student values(1,'abc');

insert into Student values(2,'asd');

SAVEPOINT A;

insert into Student values(3,'aff');

insert into Student values(4,'avc');

SAVEPOINT B;

insert into Student values(5,'and');

insert into Student values(6,'dsf');

select * from Student;

ROLLBACK TO B;

---Comment Table-------
comment on table Student is 'To maintain record of students';

---view all tables and comments present in user---


select * from user_tab_comments;

---applying filter---
select * from user_tab_comments where table_name='STUDENT';
---view all tables and comments present in system---
select * from all_tab_comments;

---applying filter---
select * from all_tab_comments where table_name='STUDENT';

---Comment on column----
comment on column Student.name is 'To maintain names of the Students';

---view all columns and comments from the user---


select * from user_col_comments;

---applying filter---
select * from user_col_comments where column_name='NAME';

---view all column and comments present in system---


select * from all_col_comments;

---applying filter---
select * from all_col_comments where table_name='STUDENT' and column_name='NAME';

------------Constraints-----------
---Primary key---
create table clas(id number(10),name varchar(20),constraint c_pk PRIMARY KEY(id));

desc clas;

insert into clas values(1,'Jay');

insert into clas values(2,'vijay');

insert into clas values(3,'vijay');


delete from clas where id=2;

select * from clas;

----Foreign Key----
create table sqlbatch(sid number(10),name varchar(20),

constraint s_fk FOREIGN KEY(sid) references clas(id));

desc sqlbatch;

select * from sqlbatch;

insert into sqlbatch values(2,'abc');

insert into sqlbatch values(null,'abc');

---11-10-2022---
---Not Null Constraint---
create table employee(id number(10),name varchar(20),email varchar2(20),salary number(10)not
null);

insert into employee values(1,'abc','abc@gmail.com',null);

insert into employee values(1,'abc','abc@gmail.com',15000);

create table employee4


(
id number(10) not null,
name varchar(20)
);
insert into employee4 values(10,'priya');
insert into employee4 values(20,null);
insert into employee4 values(20,null);

---Check Constraint---
create table emp5
(
id number(10),
name varchar(20) not null,
marks number constraint c check(marks>70)
);

insert into emp5 values(10,'raj',80);

---create table student having column id primark key, name not null, marks having greater that 70 and
email unique
---create table class ifo and make foreign key cust_id having referenec to id column of student table---

---Set Operations---
/*Rules:
1)You have to mention same numbers of columns in both statements.
2)You have to mention columns in both statements which are having same data types.
*/
---Creating First Table---
create table survey_1
(name varchar(10),
City Varchar(20),
occupation varchar(10),
salary number(10)
);

---drop table survey_2;


select * from survey_1;
---inserting data---
insert into survey_1 values('john','pune','QA',2000);
insert into survey_1 values('raj-d','pune','SE',2000);
insert into survey_1 values('parth','pune','SE',20000);
insert into survey_1 values('soname-d','pune','SE',20000);
insert into survey_1 values('neha','pune','SE',20000);

----Creating Second Table---


create table survey_2
(cust_name varchar(10),
City_name Varchar(20),
occupation varchar(10),
salary number(10)
);

---insert data----
insert into survey_2 values('raj-d','pune','SE',2000);
insert into survey_2 values('soname-d','pune','SE',20000);
insert into survey_2 values('deep','pune','SE',20000);
insert into survey_2 values('kriya','pune','SE',20000);

select * from survey_2;

---Union Operation---
---Prints all values and avoides duplication
select name,city from survey_1
union
select cust_name,city_name from survey_2;

---Union All---
---Prints all values alon with duplication
select name,city from survey_1
union all
select cust_name,city_name from survey_2;

---Intersect---
---Prints only common values from two tables
select name,city from survey_1
intersect
select cust_name,city_name from survey_2;

---Practice---
---table1---
create table students
(id number(10),
s_name varchar(20),
s_city varchar(15)
);

insert into students values(1,'raj','Pune');


insert into students values(2,'rahul','Nashik');

select * from students;

---table2---
create table class123
(c_id number(10),
c_name varchar(20)
);

insert into class123 values(1,'raj');


insert into class123 values(4,'Piyush');
select * from class123;

---union----
select id,s_name from students
union
select c_id,c_name from class123;

---union all----
select id,s_name from students
union all
select c_id,c_name from class123;

---intersect----
select id,s_name from students
intersect
select c_id,c_name from class123;

---printing common job id from employees and jobs table---


select job_id from employees
intersect
select job_id from jobs;

---printing all job id from employees and jobs table along with duplicate values---
select job_id from employees
union all
select job_id from jobs;

---12-10-2022---
---View---
select * from employees;
select * from departments;
---Creating View---
create view v2 as
select employee_id from employees
union
select DEPARTMENT_ID from departments;

select * from v2 order by employee_id;

update employees set first_name='sql' where employee_id=100;

create or replace view v1 as


select EMAIL,FIRST_NAME from employees;

select * from v1;

drop view v1;

create view v1;

select * from employees;

---Cascade----
create table customers(
cust_id number(10) primary key,
cust_name varchar(100)

);

insert into customers values(1,'Rahul');


insert into customers values(2,'Parth');
insert into customers values(3,'Drishti');
insert into customers values(4,'Dhruv');
insert into customers values(5,'Sandesh');

---on delete in child table---


create table orders
(
order_id number(10),
cust_id int,
item varchar(20),
foreign key(cust_id) references customers(cust_id)
ON DELETE set null
);

--drop table orders;


--drop table customers;

insert into orders values(100,1,'pen');


insert into orders values(101,2,'keyboard');
insert into orders values(102,2,'mouse');
insert into orders values(103,3,'cpu');
insert into orders values(104,4,'ram');

select * from Customers;


select * from orders;

delete from Customers where CUST_ID=1;

--subquieries
--display the name of employee whose salary is greater than Neena's salary;

select first_name from employees where salary>


(select salary from employees where first_name='Neena');
--display the name, department of employee who are from Neena' department

select first_name,department_id from employees where


department_id=
(select department_id from employees where first_name='Neena');

-- display the name , job_id, department_id of emloyee whose salry is minimum


select first_name,job_id,department_id,salary from employees where salary=
(select min(salary) from employees);

-- display the name , job_id, department_id of emloyee whose salry is maximum


select first_name,job_id,department_id,salary from employees where salary=
(select max(salary) from employees);

---display the count of employees from every dept


select count(employee_id),department_id
from employees
group by department_id;

---Dispaly first_name and job_id from emplyees who are not managers
select first_name,job_id from employees
where job_id!=(select job_id from employees where job_id='FI_MGR' );

---Display fisrt name,job_id and hire_date of employees who are hired before 2016
SELECT first_name, hire_date
FROM employees
WHERE hire_date

----Assignment----
---1)Display the name and hire date of every employee who was hired in 2005.---
SELECT first_name, hire_date
FROM employees
WHERE hire_date LIKE '%05';

---2)Write a query to display number of people with same job.---


select count(employee_id),Job_id
from employees
group by Job_id;

---3)Display count of employee from every manager id.---


select count(employee_id),manager_id
from employees
group by manager_id;

---Display name of employee whose salary is between 10000 and 150000.---


select first_name,salary
from employees
where salary between 10000 and 150000;

---13-10-2022---
---Display first name, commission and department id whose department id is 80---
select first_name,commission_pct,department_id from employees where commission_pct in(
select commission_pct from employees where department_id=80);

---Display name of the employee having same salary as Steven or neena


select first_name from employees where salary in(
select salary from employees where first_name ='Steven' or first_name ='Neena' );

---Any Operator---
---Display name of employees whose salary is greater then steven or neena or lex---
select first_name,salary from employees where salary >any (
select salary from employees where first_name in('Steven','Neena','Lex' ));

select * from employees;


---ALL Operator---
---Display name of employees whose salary is greater then steven and neena and lex---
select first_name,salary from employees where salary >all (
select salary from employees where first_name in('Steven','Neena','Lex' ));

---Join---
---inner join: Used to print common data from two tables
---Create table one with primary key
create table customers(
cust_id number(10) primary key,
cust_name varchar(100)

);

insert into customers values(1,'Rahul');


insert into customers values(2,'Parth');
insert into customers values(3,'Drishti');
insert into customers values(4,'Dhruv');
insert into customers values(5,'Sandesh');

---Create table two with reference of primary key in table one


create table orders
(
order_id number(10),
cust_id int,
item varchar(20),
foreign key(cust_id) references customers(cust_id)
ON DELETE set null
);

--drop table orders;


--drop table customers;

insert into orders values(100,1,'pen');


insert into orders values(101,2,'keyboard');
insert into orders values(102,2,'mouse');
insert into orders values(103,3,'cpu');
insert into orders values(104,4,'ram');

select * from Customers;


select * from orders;

---Inner Join---
select c.cust_id,o.cust_id,o.order_id,o.item
from Customers c ---alias c is used for customers table
inner join orders o ---alias o is used for orders table
on c.cust_id=o.cust_id;

---Right Join---
select c.cust_id,o.cust_id,o.order_id,o.item
from Customers c ---alias c is used for customers table
right join orders o ---alias o is used for orders table
on c.cust_id=o.cust_id;

---14-10-2022---
---Joins---
drop table employee;
select * from employee;
---Craeting First Table---
create table employee
(emp_id number(10) primary key,
name varchar(50) );
---Inserting Values---
insert into employee values (1,'Anil');
insert into employee values (2,'Shripal');
insert into employee values (3,'Kriya');
insert into employee values (4,'Raj');
insert into employee values (5,'Rahul');

---Craeting Second Table---


create table empDetails
(
emp_id number(10) not null,
age number(10) not null,
address varchar(200),
salary number(20)
);

---Inserting Values---
insert into empDetails values(1,33,'Pune',40000);
insert into empDetails values(2,40,'Nasik',40000);
insert into empDetails values(3,56,'Pune',40000);
insert into empDetails values(4,28,'Mumbai',40000);
insert into empDetails values(8,37,'Delhi',40000);
insert into empDetails values(10,43,'Jaipur',40000);

select * from empDetails;

select * from employee;

--Inner join---
select e.emp_id,e.name,d.age,d.address,d.salary
from employee e
Inner join empDetails d
on(e.emp_id=d.emp_id);

--left join---
select e.emp_id,e.name,d.age,d.address,d.salary
from employee e
left join empDetails d
on(e.emp_id=d.emp_id);

--right join---
select e.emp_id,e.name,d.age,d.address,d.salary
from employee e
right join empDetails d
on(e.emp_id=d.emp_id);

--cross join
select e.emp_id,d.emp_id,e.name,d.age,d.address,d.salary
from employee e
cross join empDetails d;

--left outer join


select e.emp_id,e.name,d.age,d.address,d.salary
from employee e
left join empDetails d
on(e.emp_id=d.emp_id)
where d.emp_id is null;

--self full join


select e.emp_id,e.name,d.age,d.address,d.salary
from employee e
full join empDetails d
on(e.emp_id=d.emp_id);
--Self join

create table company


(
emp_id number(10),
name varchar(20),
manager_id number(10),
city varchar(20)
);

insert into company values(1,'Sunil',6,'Pune');


insert into company values(2,'Anil',2,'Pune');
insert into company values(3,'Mahesh',4,'Pune');
insert into company values(4,'Sursh',3,'Pune');
insert into company values(5,'Amit',1,'Pune');
insert into company values(6,'kumar',2,'Pune');

select * from company;

select a.emp_id,a.name as "Employee name",


b.emp_id as "manager id" ,b.name as "Manager name"
from company a,company b
where a.manager_id=b.emp_id
order by emp_id;

You might also like