SQL
• Install mysql
• -mysql server
• -mysql workbench
• -mysql shell
• Using cmd
• Cd path of mysql
• Command mysql –u root –p
• Enter password
• Show databases
• CREATE DATABASE temp;
• USE temp;
• CREATE TABLE student (
• id INT PRIMARY KEY,
• name VARCHAR(255)
• )
• insert into student values (1, 'Amit’);
• SELECT * FROM student
• CREATE DATABASE org;
• show databases;
• use org;
• create table Worker (
• WORKER_ID INT NOT NULL PRIMARY KEY auto_increment,
• FIRST_NAME CHAR(25),
• LAST_NAME CHAR(25),
• SALARY INT(15),
• JOINING_DATE datetime,
• DEPARTMENT CHAR(25)
• );
• INSERT INTO Worker
• (WORKER_ID, FIRST_NAME, LAST_NAME, SALARY, JOINING_DATE,
DEPARTMENT) VALUES
• (001, 'Monika', 'Arora', 10000, '14-02-20', 'HR’),
• (002, 'Aakash', 'Jindal', 15000, '14-06-11', 'Admin’),
• (003, 'Arun', 'Sharma', 40000, '14-03-16', 'Admin’),
• (004, 'Deepak', 'Dev', 30000, '14-07-15', 'Account’),
• (005, 'Farhan', 'Ali', 25000, '14-09-21', 'HR’),
• (006, 'Gurdeep', 'Singh', 12000, '14-01-19', 'Account’),
• (007, 'Yash', 'Pal', 35000, '15-02-14', 'Admin’),
• (008, 'Sam', 'Tripathi', 18000, '14-02-13', 'HR’);
• select * from Worker;
• CREATE TABLE Bonus
• (
• WORKER_REF_ID INT,
• BONUS_AMOUNT INT(10),
• BONUS_DATE DATETIME,
• foreign key (WORKER_REF_ID) references Worker (WORKER_ID) on delete cascade
• );
• INSERT INTO Bonus
• (WORKER_REF_ID, BONUS_AMOUNT, BONUS_DATE) values
• (001, 5000, '16-02-20’),
• (002, 3000, '16-06-11’),
• (003, 4000, '16-03-16’),
• (001, 3500, '16-07-15’),
• (002, 4500, '16-09-21’);
• select * from Bonus;
• CREATE TABLE Title (
• WORKER_REF_ID INT,
• WORKER_TITLE CHAR(25),
• AFFECTED_FROM DATETIME,
• FOREIGN KEY (WORKER_REF_ID) REFERENCES Worker (WORKER_ID) ON delete cascade
• );
• insert into Title
• (WORKER_REF_ID, WORKER_TITLE, AFFECTED_FROM) values
• (001, 'Manager', '20-02-16’),
• (002, 'Executive', '20-06-16’),
• (008, 'Executive', '20-02-16’),
• (005, 'Manager', '20-02-16’),
• (004, 'Asst. Manager', '20-02-16’),
• (007, 'Executive', '20-02-16’),
• (006, 'Lead', '20-02-16’),
• (003, 'Lead', '20-02-16’);
• select * from Title;
• select salary from worker;
• select FIRST_NAME, salary from worker;
• Can we run select without from
• Yes, using dual table (dummy table)
• select 44 + 11;
• select now();
• select lower('ASHISH’);
• select ucase('ashish');
Where clause
• select * from worker;
• select * from worker where salary > 18000;
• select * from worker where DEPARTMENT = 'HR';
Between clause
• select * from worker where SALARY between 20000 and 40000;
• Inclusive
IN
• select * from worker where DEPARTMENT = 'HR' or DEPARTMENT =
'Admin’;
• select * from worker where DEPARTMENT IN ('HR', 'Admin',
'Account’);
• select * from worker where DEPARTMENT not in ('HR', 'Admin');
IS NULL
• use temp;
• create table Customer (
• id integer primary key,
• cname varchar(255),
• address varchar(255),
• gender char(2),
• city varchar(255),
• pincode integer
• );
• insert into Customer values
• (1251, 'Ram Kumar', 'H Road', 'M', 'Delhi', 154876),
• (1300, 'Shreya Singh', 'B Road', 'F', 'Lucknow', 154287),
• (245, 'Neelesh Shukla', 'K Road', 'M', 'Hydrabad', 325485),
• (210, 'Barkha Singh', 'N Road', 'F', 'Mumbai', 754862),
• (500,'Rohan Arora', 'V Road', 'M', 'Chennai', 485627);
• select * from customer;
• insert into Customer values(1252, 'Ram Kumar2', 'H Road', 'M',
'Delhi', NULL);
• select * from customer;
• select * from customer where pincode is NULL;
Pattern searching/Wild card
• use org;
• select * from Worker;
• select * from Worker where first_name like '%i%’;
• select * from Worker where first_name like '_i%’;
• select * from Worker where first_name like '__r%';
Order by
• select * from worker order by salary;
• select * from worker order by salary desc;
Distinct
• select department from worker;
• select distinct department from worker;
Find no of employees working in different
department ( Group by) (Aggregation function)
• select department from worker group by department; (Works same
as distinct without aggregation function).
• select department, count(department) from worker group by
department;
• select count(department) from worker group by department;
• select count(department) from worker;
Find average salary per department
• select department, avg(salary) from worker group by department;
• select department, min(salary) from worker group by department;
• select department, max(salary) from worker group by department;
• select department, sum(salary) from worker group by department;