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

SQL (1) 2

SQL, developed by IBM in the 1970s, is the standard language for managing relational databases, allowing users to define, manipulate, and control data. It includes various components such as Data Definition Language (DDL), Data Manipulation Language (DML), and Transaction Control Language (TCL), each serving specific functions like creating tables, querying data, and managing transactions. The document also covers basic SQL commands, data types, constraints, and examples of how to perform operations like inserting, updating, and deleting records.

Uploaded by

bratyvlogs
Copyright
© © All Rights Reserved
We take content rights seriously. If you suspect this is your content, claim it here.
Available Formats
Download as PPTX, PDF, TXT or read online on Scribd
0% found this document useful (0 votes)
5 views

SQL (1) 2

SQL, developed by IBM in the 1970s, is the standard language for managing relational databases, allowing users to define, manipulate, and control data. It includes various components such as Data Definition Language (DDL), Data Manipulation Language (DML), and Transaction Control Language (TCL), each serving specific functions like creating tables, querying data, and managing transactions. The document also covers basic SQL commands, data types, constraints, and examples of how to perform operations like inserting, updating, and deleting records.

Uploaded by

bratyvlogs
Copyright
© © All Rights Reserved
We take content rights seriously. If you suspect this is your content, claim it here.
Available Formats
Download as PPTX, PDF, TXT or read online on Scribd
You are on page 1/ 152

Basic Introduction to

SQL
SQL
• Language developed by IBM (1970s) to manipulate
the data stored in database system
• Originally called “Structured English Query
Language” (SEQUEL), later it is called SQL
“Structured Query language”.

• It is the standard language for relational database


management systems.

• It is a nonprocedural language(means what rather


than how).
For Example: Select “customer name” from customer
database where rs. in account > 10,000
SQL has several parts:
o Data Definition Language (DDL)- Create or modify the database structure
o 1. Create
o 2. Drop
o 3. Alter
o Data Manipulation Language (DML) – ability to query information from the
database (like select) and to insert, update or delete database structure.
o Integrity – commands for specifying integrity constraints that the data stored
in the database must satisfy.
o View Definition – SQL DDL defines commands for defining views.
o Transaction Control – commands for specifying the beginning and ending of
transaction.
o Authorization – commands for specifying access rights to relations and views.
SQL Data Definition
• SQL DDL allows set of relations and
information about each relation including:
– Schema for each relation
– types of each value associated with each attribute
– integrity constraints
– security and authorization information for each
relation
– physical storage structure of each relation on disk
Basic Data Types
Data type Description

• Character strings value of fixed length.


CHAR(SIZE) • Max characters can hold is 255.
• The data held is right padded with spaces to
whatever length is specified.
For example: Name CHAR2(7)= NMIMS--
VARCHAR • Store variable length of alpha numeric type.
(SIZE)/VARCHAR2(SIZE) • Max characters can hold 255.
• Inserted values will not be padded with spaces.
• For example: Name VarCHAR2(7)= NMIMS
Number (size) • store numbers only
Data Type Description

• store fixed or floating numbers where p is


Numeric (P,S) precision and s is scale.
• Max precision is 38 digits. CGPA(3,1)= (12.3)
• for example- numeric(7,2) means 5 digits before
decimal and 2 digits after decimal.
DATE • represent date and time.
• standard format is MM-DD-YYYY
LONG • store variable length character string upto 2GB.
• LONG data can not be used in sub queries, or
functions
int or integer • machine dependent finite set of integers.
Float(n) • floating point number with precision of at least n
digits.
Data Languages in SQL
1. DDL (Data Definition Language)
– Create, Alter, Truncate, Drop, Rename

2. DML (Data Manipulation Language)


– Insert, Select, Update, Delete
3. TCL (Transaction Control Language)
– Commit , Rollback
Basic Commands of DDL
(1) Create Table

Syntax:
Create table <table name>
(<column name1> <datatype>(<size>),
<column name2> <datatype>(<size>)………
<column nameN> <datatype>(<size>));

Create table student(name varchar2(10), city varchar2(10), class


varchar2(10), marks number(5));

Output:
Table Created
(2) Alter Command

• Modify the structure of a table: add, delete or rename the


table name, also change the datatype of existing column

a) Adding a new column:


Syntax:
Alter table <table name> ADD ( < NewColumn1> <Datatype>
(size), ….. < NewColumnN> <Datatype> (size) );

For Example:
Alter table Student ADD ( Marks number(5))

Name City Class Marks


b) Dropping a column from a table

Syntax:
Alter Table <Table Name> DROP Column <Column Name>;

For Example: Drop the column name Marks from the student
table

Alter Table Student DROP COLUMN Marks;

Name City Class


John Mumbai B.Tech

Rahul Mumbai MCA


C ) Modifying Existing Columns
Syntax:
Alter Table <Table Name> MODIFY (<Column Name> <New
Datatype> (<NewSize>) );

For Example: Alter Student table to allow NAME field to store


alphanumeric datatype upto 30 characters.

Alter Table Student MODIFY (Name varchar2(30) );


(3) Rename Command
• Rename the table name
Syntax
RENAME <Tablename> TO < NewTableName>;

Alter table <table name> Rename to <New Table name>


For Example: Rename student table name to student record

RENAME Student TO Student_Record;

Alter table student rename to student_record;

• Rename Column Name


Alter table table_name rename column old column_name to new_column
name

Alter table student rename column Marks to New_Marks


(4) Drop Command
• The DROP command removes a table from the database. All the
tables' rows, indexes and privileges will also be removed.

Syntax
Drop Table <Tablename>;

(5) Truncate Command


• TRUNCATE removes all rows from a table
permanently.
Syntax

Truncate Table <Tablename>;


Commands of DML

Insert Command
Syntax:

Insert into <table name> (<column name1>, <colum


name2>…….<column nameN> ) values (<expression 1>,
<expression2>……..<expressionN>); Char

Insert into student (Name, City, Class, marks) values (‘John’,


‘mumbai’, ‘B.Tech’, 3);
Number
Insert into student values (‘Rahul’, ‘Delhi’, ‘MCA 1’, 7);
Insert into student (name) values (‘rahul’);
VarChar

Output:
2 rows created
Insert Null Values

Syntax:

INSERT INTO <table_name> ( Column1, column2 )


VALUES ( Value1, null);

Insert Date Format


Syntax:
Insert into table_name (addmission_date) values
((To_date(’19-04-2017’, ‘DD-MM-YYYY’))
Not working on mysql
For example

insert all
into Student(name, marks) values(‘John', 1)
into student (name, marks) values(‘Roy', 3)
into student(name, marks) values(‘ram', 4);

For inserting Multiple values:

Insert into <table name>(Column1, column 2, ….column n) values(&Column1,


'&column2',… &column n);

For Example:

insert into emp (empno, ename, sal) values(&empno, '&ename', &sal);


Enter value for empno: 123
Enter value for ename: RADHI
Enter value for sal: 25000
Insert Date Values:
insert into table_name values(to_date('24/11/2017','DD/MM/YYYY'));

Example:

Insert into employee (id, Joining_date) values (1,


(to_date('24/11/2017','DD/MM/YYYY));

Mysql
insert into table_name values(“val1”, val, val,(date(‘yyyy-mm-dd’)));
Or
insert into table_name(att, attr,…) values(“val1”, val, val,(date(‘yyyy-mm-dd’)));

Example:-

insert into student values ("A8",92, "Pass", (date("2017-11-17" )));


My sql date format (using alter)
insert into employee(ID, name, age, qual, role) values
('S2','narun',20,null,'CTO');
Alter table employee add date DATE;

SET SQL_SAFE_UPDATES = 0;
update employee SET date = '2024-12-11' WHERE ID = 'S1';
update employee SET date = '2024-12-11' WHERE ID = 'S2';
update employee SET date = '2024-12-11' WHERE ID = 'S3';
update employee SET date = '2024-12-11' WHERE ID = 'S4';

SELECT * FROM employee


ORDER BY ID ASC;

Select ID,name from employee;


select * from employee where name = 'narun';
select ID,name,role from employee where name = 'narun';

delete from employee where role ='CEO';


Select Command

It is used for retrieving the records from the database


Syntax:
Select * from tab;
(This command is used to show the entire tables of the
database)
Select * from tablename;
(This command is used to show the entire record of the
particular table)
Example: Select * from student;
Select <column name>, <column name>……<n column
name> from tablename;
Example: select name, marks from student;
Table in SQL

Select * from student

Student

Name City Class

John Mumbai 2

Rahul Delhi MCA 1


Table in SQL
Student

Name

John Select name from student

Rahul
Filtering Table Data
 Selected columns and all rows

 Selected rows and all columns

 selected columns and selected rows


Selected columns and all rows:-
Retrieval of specific columns from a table

Syntax::
select <column1>, <column2> from <table name>;

Select name , city from student;

Name City

John Mumbai
Rahul Delhi
Selected rows and all columns:- using where
clause
Retrieval of specific rows from a table

Syntax::
select * from <table name> where<condition>;

Select * from student where name=‘john’;

Name City Class

john Mumbai 2
Selected rows and selected columns:-
Retrieval of specific rows and specific column from a table

Syntax::
select <column1>, <column2> from <table name>
where<condition>;

Select Name, city from student where name=‘john’;

Name City

John Mumbai
Updating a Table

• Change or modify the data values in a table in terms of :

a) All the rows


Syntax:
Update <Tablename> set <columnname1>= <Expression1>,
<columnname2> = <Expression2>……..n;

b) Update records with condition


Syntax:
Update <Tablename> set <columnname1> = <Expression1>
where <condition>;
a) Update Student SET Name = ‘John’;

Name City Class Name City Class


John Mumbai B.Tech John Mumbai B.Tech

Rahul Delhi MCA John Delhi MCA

Ram chennai MBA John chennai MBA

Old Table New Table

b) Update Student SET City = ‘Mumbai’ where City = ‘Delhi’;

Name City Class


John Mumbai B.Tech

Rahul Mumbai MCA


Update on date

SET SQL_SAFE_UPDATES = 0;
update employee SET date = '2024-12-11' WHERE ID = 'S1';
update employee SET date = '2024-12-11' WHERE ID = 'S2';
update employee SET date = '2024-12-11' WHERE ID = 'S3';
update employee SET date = '2024-12-11' WHERE ID = 'S4';
Delete Command
Delete is used to remove either:

• All the rows from table or A set of rows from a table

Syntax:
1) DELETE from <table name>;

For Example: Delete all the records of students

DELETE from Student;

Name City Class


2) DELETE from <table name> where <condition>;

For Example: Delete all the records of those students who live
in Mumbai city.

Delete from student where city =‘Mumbai’;

Name City Class


Name City Class
John Mumbai B.Tech
Rahul Delhi MCA
Rahul Delhi MCA
Updated Table
Old Table
Sorting Data in to Table

• Table to be viewed in a sorted order either in ascending or


descending order depending on the condition.
Syntax:
SELECT * From <Table Name> Order BY (< Column Name1>…
<Column Name N ) <[Sort Order] >;

Note: By default ascending order but for descending order use


DESC after the specified column
For Example: Show the details of the students according to their
marks

Select * from Student Order By Marks;

Name City Class Marks Name City Class Marks


John Mumbai B.Tech 10 Rahul Delhi MCA 9
Rahul Delhi MCA 9 John Mumba B.Tech 10
i
Herry Mumbai MCA 10
Herry Mumba MCA 10
Old Table i

Select name from Student Order By Marks DESC;


Select name from Student Order By Marks DESC ;

Name

Rahul
Herry
John
Distinct Command
• Eliminating duplicate rows from the table.

• To view only unique rows

Syntax:
Select DISTINCT * from <table name>;

Select DISTINCT <Column Name> from <Table Name>;


Data Constraints in SQL
• SQL constraints are used to specify rules for the data in a table
• Constraints can be specified during Create Table and Alter Table
In SQL, we have the following constraints:
NOT NULL - Indicates that a column cannot store NULL value
UNIQUE - Ensures that each row for a column must have a unique
value
PRIMARY KEY - A combination of a NOT NULL and UNIQUE.
Ensures that a column (or combination of two or more columns)
have an unique identity which helps to find a particular record in a
table more easily and quickly
FOREIGN KEY - Ensure the referential integrity of the
data in one table to match values in another table
CHECK - Ensures that the value in a column meets a
specific condition
DEFAULT - Specifies a default value when specified none
for this column
Syntax:
CREATE TABLE table_name ( column_name1
data_type(size) constraint_name, column_name2
data_type(size) constraint_name,…….);
Data Constraints: Not Null
• The NOT NULL constraint enforces a column to NOT accept NULL
values.
• The NOT NULL constraint enforces a field to always contain a
value. This means that you cannot insert a new record, or update a
record without adding a value to this field.
For Example:
Create table Bank( Bank_ID number Not Null, Branch_Name
varchar2(10), Loan_No Varchar2(10) not null);
• Insert into Bank Values (11, ‘Mumbai’, ‘L-201’);
• Insert into Bank (Bank_ID) values (‘’);
Error in both
• Insert into Bank values (12, ‘Chennai’, ‘’); commands
Adding Not Null Constraint
Alter table Bank Modify (Branch_Name Varchar2(10)
Not Null);

Drop the Not Null Constraint


Alter Table Bank Modify (Branch_Name Varchar2(10)
Null);

(The above syntax will remove Not Null constraint


from the column)
UNIQUE CONSTRAINT
• The UNIQUE constraint uniquely identifies each record in a
database table like primary key
• Only difference is that we can have many UNIQUE constraints per
table, but only one PRIMARY KEY constraint per table.

For Example:
CREATE TABLE Employee ( E_Id number(10),
LastName varchar2(10) NOT NULL, FirstName varchar2(10)
UNIQUE, Address varchar2(10) not null UNIQUE, City
varchar2(10) );

Alter table Employee Drop Unique;

Alter table Employee Drop Unique(Address);


Data Constraints: Primary Key
• Primary key is used to identify unique records
• It can not accept null values
• In primary key, the data held across the column must be unique
• Only one primary key is allowed per table
• One table can combine upto 16 columns in composite primary
key (or candidate key)

Syntax: <Column Name> <data type size> Primary key


Create table Loan ( loan_number varchar2(10) Primary key,
customer_name varchar2(10) );
OR
Create table customer (name varchar2(10), city varchar2(10),
primary key (name, city));
Composite Key
Add Primary Key Constraint:
Syntax:
Alter Table TableName ADD Primary Key (column
name);
Example:
Alter table Salesman ADD Primary Key (sales_no);

Drop Primary Key Constraint

Syntax: Alter Table TableName Drop Primary Key;

Example: Alter Table Salesman Drop Primary Key;


Foreign Key (Referential Integrity)
Constraint
• Foreign key represents relationships between two tables
• A foreign key is a column (or groups of columns) whose values
are derived from the primary key of other table (master table)
• Foreign key column can have null or duplicate records
• Records can not be inserted into foreign key table if
corresponding records in the master table does not exist
• Records of the master table can not be deleted if corresponding
records in foreign key table actually exist
Syntax:
<column name> <Data Type> References <Table Name>
<column name>

For Example:
Create table Customer_master (Cust_id number(5) primary key,
address char(10) default ‘India’, loan_no number(6));
Create table emp_database (emp_no number(5) primary key,
name varchar2(10), designation varchar2(10) , C_no number
(10) References customer_master (Cust_id), salary number(5));
OR
Create table emp_database (emp_no Number(5) primary key,
name varchar2(10), designation varchar2(10) , C_no number
(10), salary number(5), foreign key (C_No) References
customer_master (Cust_id));
Create table student (id number(10) , name varchar(20), class char(20),
primary key(id));

Create table course(Course_id number(10), c_name char(20), S_id


number(10) references student(id), date_of_conduct date))

Or
Create table course(Course_id number(10), c_name char(20), S_id
number(10), date_of_conduct date), foreign key (S_id) references
student(id))

id name class Cpurse C_nam S_id date


_id e
1 john 2
11 Physics 2 3 sep
2 Riya 5
12 Chemis 2 4 sep
3 Rahul 7 try

4 Bhavesh 4 13 maths 4 5 aug


Add a Foreign Key: (2 ways to add Foreign Key)

•ALTER TABLE Tablename ADD FOREIGN KEY


(column_name) REFERENCES Master_Tablename
(Column_name);
• ALTER TABLE Tablename ADD (column_name)
REFERENCES Master_Tablename (Column_name);

Drop Foreign Key : use disable keyword to drop fK

Alter table tablename Add (column_name)


REFERENCES Master_Tablename (Column_name)
disable
Add foreign key using constraint name

•Alter table customer_master ADD Constraint F_ID Foreign


Key (S_id) references student (id);

Drop Foreign Key:

• ALTER TABLE TableName DROP Constraint F_ID;


CHECK CONSTRAINT
• The CHECK constraint is used to limit the value range that can be
placed in a column.
Syntax:
<column name> <data type> CHECK (Condition)
For Example:
a) CREATE TABLE Persons ( P_Id number(10) NOT NULL CHECK
(P_Id>=10),
LastName varchar2(20) NOT NULL, FirstName varchar(25),
Address varchar2(20) );
b) CREATE TABLE Customer ( C_Id number(5) Primary Key ,
Name varchar2(20), address varchar2(20) ,
check (Name Like ‘C%’), Check(Name =UPPER(Name) );
To add check constraint

• Alter table cust_master ADD check (cust_no>1);

To drop check constraint

• Alter table cust_master modify (Cust_no number (5) check (cust_no>1)


disable);
Default CONSTRAINT
The DEFAULT constraint is used to provide a default value for a
column. The default value will be added to all new records if no
other value is specified.

For Example:
CREATE TABLE Employee ( E_Id number(10) Primary Key,
LastName varchar2(10) NOT NULL, FirstName varchar2(10), City
varchar2(10) default ‘London’);
Insert into Employee (E_Id, Lastname, FirstName) values (11,
‘John’, ‘Pareira’);

Select * from Employee;


Output
E_id FirstName LastName City
11 John Pareira London
Add Default constraint
Alter TABLE Employee modify(City default ‘London’);

Disable Default Constraint

Alter TABLE Employee add (City default ‘London’ disable);


Insert into Employee values (12, ‘Tommy’, ‘Pary’, ‘Paris);

Select * from Employee;

Output

E_id FirstName LastName City

11 John Pareira London

12 Tommy Pary Paris

Note: By default value will be London but we can also update the
value at the time of insert records.
Logical Operators
1. AND : It is used for creating SQL statement with two or more
conditions and all conditions must be satisfied.

2. OR : It is used for creating SQL statement with two or more


conditions and any one condition should be satisfied.

3. NOT : It is used for displaying those records which does not


satisfy the condition.
AND:
Find out the client no, name and salary of those clients who live
in mumbai city and due balance is greater than and equal to
1000

SQL> Select client_no, name, salary from client_master where


city=‘mumbai’ AND Bal_Due >=1000;

Client_no Name Salary


C001 Ivan 4000
C005 Lara 2000
OR:
Find out the client no, name and salary of those clients who live
in mumbai city or due balance is greater than and equal to 1000

SQL> Select client_no, name, salary from client_master where


city=‘mumbai’ OR Bal_Due >=1000;

Client_no Name Salary


C001 Ivan 4000
C004 William 6000
C005 Lara 2000
NOT:
Find out the client no, name and salary of those clients who are
not in the city ‘mumbai’ and balance is not greater than 1000

SQL> Select client_no, name, salary from client_master where


NOT ( city=‘mumbai’ AND Bal_Due >1000);

Client_no Name Salary


C002 Ivan 4000
C003 Harry 3000
C004 William 6000
C005 Lara 2000
Arithmetic Operators
• Addition (+)

• Subtraction (-)

• Division (/)

• Multiplication (*)

• Enclosed Operation ()
Range Searching (Between Operator)
• Retrieve data within range of values.

• BETWEEN operator allows the selection of rows that contains


values within specified limit.

• The range coded after the word BETWEEN in inclusive and two
values in between the range must be linked with a keyword AND.

Syntax: Select * from <table name> where condition BETWEEN


<expression> AND <expression>
Select description from product where sellprice BETWEEN 100
AND 300

Description
Books
Pens
Bags
Pencils

Select description from product where sellprice NOT BETWEEN


100 AND 300

Description
Folders
IN Operator

• To test for values in a list.

Syntax: Select * from <TableName> where condition IN


(expression);

Select name from client where salary IN (4000, 3000)


Rules of Precedence

Order Operator

1 Arithmetic Operators (**, * ,/, +, -)

2 Comparison Operators

3 IN

4 BETWEEN

5 Logical Operators (NOT, AND, OR)


Aggregate Functions

• Aggregate functions are functions that take a collection of


values as input and return a single value.

• The SQL Aggregate Functions are functions that provide


mathematical operations like add, count or avg.

 Behavior of Aggregate Functions:


Operates - on a single column
Return - a single value.
Types of SQL Aggregate Functions
1. SUM
Operates only on collection of numbers.
2. AVG

3. MIN
Operates on numbers and non numbers as well.
4. MAX

5. COUNT
SUM()
The sum of the values in a specified column.

Syntax:
Select SUM (column name) from <table name> where
<condition>; OR

For Example: Select SUM (salary) from client ;


OR
Select SUM (salary) AS Total_Salary from client ;

Sum(salary) OR Total_Salary
29000 29000
AVG()
The average of the values in a specified column.

Syntax:
Select AVG (column name) from <table name> where
<condition>;
For Example: Select AVG (salary) from client ;

AVG(salary)
9.666666
Min()
It returns the smallest values in a specified column.

Syntax:
Select MIN (column name) from <table name> where
<condition>;
For Example: Select MIN (sell_price) from product ;

Min(marks)
9
Max()
It returns the maximum value in a specified column.

Syntax:
Select MAX (column name) from <table name> where
<condition>;
For Example: Select MAX (salary), Avg(salary) from client ;

Max(marks)
10
COUNT()
• Returns the Number of records in a specified column where
expression is not null.

Syntax:
Select COUNT (Column Name) from <Table Name>;

For Example:
Select COUNT (name) from Emp;

COUNT(name)
3

How many different job titles are stored in the relation EMP?
- select count(distinct JOB) from EMP;
COUNT(*)
• Returns the total Number of records in a specified column.

Syntax: Empid Name Job_Title


Select COUNT (*) from <Table Name>; 1 John Project_L
eader
For Example: 2 Peter Project_L
Select COUNT (*) from Emp; eader

3 Herry Engineer
COUNT(*)
4 Null Null engineer
Set Operations
• SQL supports few SET Operations on data table.
• These functions are used to get meaningful results from
different conditions.

• There are 3 types of Set operations:


1. UNION, UNION ALL (U)
2. INTERSECT, INTERSECT ALL (∩)
3. EXCEPT (-)
Set Operation: UNION
• It is used to store result of two or more select statement.
• It will eliminate duplicate records from the result after
combining two or more select statement.
• In Union operation- number of columns and datatype should be
same in both tables.

Syntax:
select <column name> from table name1 UNION select
<column name> from table name2
OR
select <column name> from table name 1 where condition
UNION select <column name> from table name 2 (or 1) where
condition
Client_ID Name Cust_ID Name
c001 Ivan c002 John
c002 John c003 William
CLIENT C004 Lara

Employee

select clinet_id, name from CLIENT UNION select cust_id, name from
employee
Client_ID Name

c001 Ivan

c002 John

C003 Willaim

c004 Lara
select client_id, name From CLIENT UNION ALL select clust_id, name from
CUSTOMER

Client_ID Name

c001 Ivan

c002 John

C002 John

c003 William

c004 Lara
Set Operation: INTERSECT
• It is used to combine two select statement or tables and return
the common result.

• In intersect operation, number of columns and datatype should


be same in both tables or statements.

Syntax:
select <column name> from table name1 INTERSECT select
<column name> from table name2
OR
select <column name> from table name 1 where condition
INTERSECT select <column name> from table name 2 where
condition
Client_ID Name Cust_ID Name
c001 Ivan c002 John
c002 John c003 William
C004 Lara
CLIENT
Employee

select clinet_id, name from CLIENT INTERSECT select cust_id, name from
Employee

Client_ID Name
c002 John
Set Operation: EXCEPT OR MINUS
• Combine results of two select statement and return only those
results which is in first set.

Syntax:
select <column name> from table name1 minus select <column
name> from table name2
OR
select <column name> from table name 1 where condition minus
select <column name> from table name 2 where condition
Client_ID Name Cust_ID Name
c001 Ivan c002 John
c002 John c003 William
C004 Lara
CLIENT
CUSTOMER

select clinet_id, name from CLIENT Minus select cust_id, name from
CUSTOMER

Client_ID Name
c001 Ivan
GROUP BY CLAUSE
To displays avg salary of employees work for each
department?
SELECT Avg (salary) “Avg salary“, dpt_id
FROM employee
GROUP BY dpt_ID;

Dep_id Avg Salary


---------- ------------
1 100
3 3000
7 4000
Points to remember
1. If you have column name(s) AND Aggr. Function(s) in
the SELECT clause, then you MUST also have a GROUP
BY clause.
2. The column name(s) in the SELECT clause MUST match
column name(s) listed in the GROUP BY clause.

Example:

SELECT emp_dpt_number "Department",


emp_gender "G",
COUNT(*) “Employee Count"
FROM employee
GROUP BY emp_dpt_number, emp_gender;
Having clause
• The HAVING clause specifies conditions that filter which group
results appear in the final results.
• The WHERE clause places conditions on the selected columns,
whereas the HAVING clause places conditions on created groups.
• This is a further condition applied only to the aggregated
results to restrict the groups of returned rows. Only those groups
whose condition evaluates to TRUE will be included in the result
set.
• The HAVING clause must follow the GROUP BY clause in a query and
must also precede the ORDER BY clause if used.
• The HAVING clause is a conditional option that is
directly related to the GROUP BY clause option
because a HAVING clause eliminates rows from a
result table based on the result of a GROUP BY
clause.

• In Oracle, A HAVING clause will not work without


a GROUP BY clause

Syntax:
SELECT column1, column2 FROM table WHERE [ conditions ] GROUP BY column
HAVING [ conditions ] ORDER BY column
To display employee department no, total no. of departments,
max and min salary of each department having max salary
greater than 3
SELECT dpt_number "Department",
COUNT(*) "Department Count",
MAX(emp_salary) "Top Salary",
MIN(emp_salary) "Low Salary“
FROM employee
GROUP BY dpt_number
HAVING max (salary) >= 3;

Department Department Count Top Salary Low Salary


---------- ---------------- ---------- ----------
3 3 $43,000 $25,000
7 4 $43,000 $25,000
Find out the product description and total quantity of the
products having average sell price greater than 100.
Select description , count (quantity) from products GROUP BY
description HAVING avg(sell-price)> 100;

To return the name of the department and the total sales of the
associated department with product total sales greater than
25,000

SELECT department, SUM(sales) AS "Total sales" FROM product


GROUP BY department HAVING SUM(sales) > 25000;
Pattern Matching:
Use of LIKE Predicate

• The LIKE operator is used to search for a specified pattern in a


column.

• The SQL LIKE condition can be used in any valid SQL statement :
Select, Insert, Update and Delete

• The patterns that can be chosen from wild cards (%, _ )


% allows to match any string of any length (including zero length)
_ allows to match on a single character

Syntax: SELECT column_name(s) FROM table_name


WHERE column_name LIKE pattern;
Customer
Cust_ID Name
c002 John
c003 Jini
C004 Lara
C005 William

• Retrieve the customers records whose name starting with ‘J’


select Cust_ID, Name from customer where Name LIKE ‘J%’ ;

• Retrieve the customers records whose name begins with ‘La’


select Cust_ID, Name from customer where Name LIKE ‘La%’ ;

• Retrieve the customers records whose name ending with ‘I’


select Cust_ID, Name from customer where Name LIKE ‘%i’ ;
• Retrieve the customers records whose names have second
character as o or I
select Cust_ID, Name from customer where Name LIKE ‘_o%’ or
Name Like ‘_i%’ ;
• Retrieve the customers records whose names have second last
character as n
select Cust_ID, Name from customer where Name LIKE ‘%n_’;
• Retrieve the customers records whose names starts with ‘w’
and third last character is ‘a’
select Cust_ID, Name from customer where Name LIKE ‘W%a__’;

CREATE TABLE Customer ( C_Id number(5) Primary Key ,


Name varchar2(20), address varchar2(20) ,
check (Name Like ‘C%’), Check(Name =UPPER(Name) );
• Return the employee records whose employee name contains the letter ‘s’

Select * from employee where Name Like ‘%s%’;


EMP-ID NAME SALARY
1002 Jane Anderson 5750
1003 Brad Everest 71000
1004 steven 57890

• Return the employee records whose salary is of 4 digits and starting with 57
Select * from employee where salary LIKE ‘57__’;
EMP-ID NAME SALARY
1002 Jane Anderson 5750

• Return the employee records whose salary starts with 57


Select * from employee where salary LIKE ’57%’;

EMP-ID NAME SALARY


1002 Jane Anderson 5750
1004 Steven 57890
Not LIKE
• Using the NOT keyword allows you to select records that does
NOT match the pattern.

• Syntax: SELECT column_name(s) FROM table_name


WHERE column_name NOT LIKE pattern; ( or <> LIKE pattern)

• Retrieve the customers records whose names do not start with ‘J’
select Cust_ID, Name from customer where Name Not LIKE ‘J%’ ;

• Retrieve the customers records whose names do not have pattern


‘oh’
select Cust_ID, Name from customer where Name NOT LIKE ‘%oh
%’ ;
The Oracle Table- DUAL
•DUAL is a dummy table owned by system. System has its own
data dictionary and DUAL is a part of this dictionary.

•DUAL is a oracle table which contains a single row and single


column.

a) For viewing table structure


DESC DUAL ;

b) For retrieving records from DUAL table


Select * from DUAL;
c) Apply Arithmetic Operation
Select 2*2 from DUAL;

Select ¾ from DUAL;

d) SYSDATE

Select SYSDATE from DUAL;


Numeric Functions
1. ABS : Returns absolute value on ‘n’ from either DUAL or
created Table.
Syntax: ABS(n)
Select ABS(-20) “Absolute” from DUAL;
Output: Absolute
-----------------------------------

20

2. POWER : Returns m raised to the nth power. N must be an


integer.
Syntax: POWER( m, n)
Select POWER(3, 2) “Power” from DUAL;
Output: power
-------------------------------

9
3. ROUND: Returns rounded value
Syntax: ROUND(n[m])
Select ROUND(23.66, 1) “ROUND” from DUAL;
Round
---------------------------

23.7

4. SQRT: Return square root on n.


Syntax: SQRT(n)
Select SQRT(16) “Square Root” from DUAL;
Square Root
---------------------------------------------

5. GREATEST : Returns greatest value


Syntax: GREATEST(expr1, expr2, …exprn)
Select GREATEST(16, 20, 25) “GREATEST” from DUAL;
6. LEAST: Returns smallest value
Syntax: LEAST(expr1, expr2, …exprn)
Select LEAST(16, 20, 25) “LEAST” from dual;

LEAST
----------------------

16

7. MOD: Returns the remainder of a first number divided by second number


Syntax: MOD(m, n)
Select MOD(15, 7) “MOD” from DUAL;
MOD
---------------------

8. TRUNC: Returns a number truncated to a certain number of decimal places


Syntax: TRUNC(number, [decimal place] )
Select TRUNC(125.342, 1) “TRUNC” from DUAL;
TRUN
------------------------

125.3
9. FLOOR: Returns the integer value that is equal to or less than number
Syntax: FLOOR(n)
Select FLOOR(24.8) “FLOOR” from DUAL;
FLOOR
-------------------------

24

10. CEIL: Returns the integer value that is equal to or greater than number
Syntax: CEIL(n)
Select CEIL(24.8) “ceil” from DUAL;

ceil
-----------------

25
Syntax:

Select LOWER (‘SQL course’) from dual;

Select UPPER (‘Sql Course’) from dual;

Select INITCAP (‘SQL COURSE’) from dual;


Note: trim is used for trimming first or last character or unwanted spaces
• Select CONCAT (‘hello’, ‘world’) from dual;
• Select SUBSTR (‘DATABASE’, 3, 4) from dual;
• Select ASCII (‘a’), ASCII (‘B’) from dual;
• Select Length (‘SQL’) from dual;
• Select LTRIM (‘DBMS’, ‘D’) from dual;
• Select RTRIM (‘DBMS’, ‘S’) from dual;
• Select LPAD (‘SQL’, 6, ‘*’) from dual;
• Select RPAD (‘SQL’, 6, ‘*’) from dual;
• Select INSTR (‘HelloWorld’, ‘W’) from dual;
Working with Dates
Create Table: Date is a datatype and bydefault format is “DD-MON-
YY’’

Insert Values: Enter value according to the data format.

Example: Create table Employee (DOB date);


Column Name Datatype

Insert into Employee values (‘21-JUL-92’);


To_CHAR ()
• Retrieval date into different format from the default format.
• It converts date value into character values

Syntax: To_Char (<date value> [<fmt>]

where date value = date and fmt = format of output date

Example:

Select To_Char(SYSDATE, ‘DD-MM-YY’) from Dual;

Output: 21-09-13
To_Date ()
• It converts character values into date value

Syntax: To_date(<char value> [<fmt>]

where char value = date and fmt = format of output date


(bydefault system date)

Example:

Select To_date(’21/09/13’, ‘DD/MM/YY’) from Dual;

Output: 21-SEP-13
Creating Table from a Table
Syntax:

Create Table < Table Name> (<Column Name>, <Column


name>) AS SELECT <column name>, <column name> from
<Table Name>;

Create table course (name, class) As Select name, class from


student; Table Name
Changed
Create table course1 (name, class, score) As Select name, class,
marks from student;
Inserting Data into a table from another table
Syntax:
Insert into <Tablename> Select <ColumnName1>, < ColumnName
N> from <Table Name>;

Insert into <Tablename> Select <ColumnName1>, < ColumnName


N> from <Table Name> Where <Condition>;

For Example: insert into Course select name, city, marks from student
where marks=10;
VIEWS in SQL
• A view is a virtual table contains rows and columns, just like a real
table. The fields in a view are fields from one or more real tables in
the database.
Syntax:
CREATE VIEW view_name AS SELECT column_name(s) FROM
table_name WHERE condition
For Example:
Create View product_vw AS select description from product
where city = ‘Mumbai’ Order by city

Create View product_vw AS select description, QTY from product


where city = ‘Mumbai’ Group BY description;
Retrieving Records from View

Syntax:
Select column(s) from VIEW;
For Example:
Select description from product_vw;

To Delete VIEW:
Drop View <View Name>

NOTE– Update and Delete commands in view work same as work


on table only difference is that use view name rather than table
name
JOINS
• SQL joins are used to combine rows from two or more tables
based on a common field between them
• In SQL, there are various types of joins:

1) Natural Join
• Inner Join
• Equi Join
2) Outer Join
• Left Outer Join
• Right Outer Join
• Full Outer Join
• Tables are joined on columns that have same datatype and size
Inner Join
• It is a natural join used for retrieving records from more than two
tables having common data
• Inner join can be Equi join if it is having equal condition only
Syntax:

Select column 1, column 2…., column N from Table 1 Inner Join


Table 2 ON Table1.Column1= Table2.Column2 Where condition
Order BY Column
Emp_No Name Dept_No Dept_Name Dept_No
11 Smith B001 CS B001
23 William B007 EC B007
34 Simi C006 CS C009
CS F007

Employee
Dept

List out the employee number, name and department names


in which they belong?
Select e.emp_no, e.name, d.dept_name from Employee e
INNER JOIN Dept d ON d. dept_no= e. dept_no ;

Select e.emp_no, e.name, d.dept_name from Employee e,


Dept d where d. dept_no= e. dept_ no ;
List out those employee details along with their department
name whose name starts with S

Select e.emp_no, e.name, d.dept_name from Employee e


INNER JOIN Dept d ON d. dept_no= e. dept_no where e.name
LIKE ‘S%’ ORDER BY e. name ;

Select e.emp_no, e.name, d.dept_name from Employee e,


Dept d where d. dept_no = e. dept_no and e.name LIKE ‘S%’
ORDER BY e. name ;
Employee
Emp_No Name Branch_No List out the employee details along
11 Smith B001 with their accounts and branch no of
23 William B007 Mumbai branch
34 Simi C006 Select e.emp_no, e.name, a. acct_no,
22 terry F007 b.branch_no from Account a INNER
JOIN Branch b ON a. branch_name =
b. branch_name INNER JOIN
Acct_no Branch_n employee e ON e.branch_no = b.
ame
branch_no where
1008 Mumbai Account b.branch_name=‘Mumbai’
1007 PUNE
1021 Calcutta Select e.emp_no, e.ename,
a . acct_no, b. branch_no from
account a, branch b, employee e
Branch_Name Branch_
No where
Branch a. branch_name = b.branch_name
Mumbai B001
Mumbai B007 and
Pune C006 b.branch_no = e. branch_no and
b.branch_name=‘Mumbai’
Left Outer Join
• The LEFT JOIN keyword returns all rows from the left table
(table1), with the matching rows in the right table (table2).
• The result is NULL in the right side when there is no match.

Table 1 Table 2

Table 1 Left Join Table 2

Resultant
Table
Emp_No Name Branch_No
11 Smith B001
List out the employee details
23 William B007
along with their branch name
34 Simi B007
using Left Outer Join
Employee
Branch_Name Branch_ Select e.emp_no, e.name,
No
b.branch_name from Employee e LEFT
Mumbai B001 OUTER JOIN Branch b ON e. branch_no
Mumbai B007 = b. branch no
Pune C006
Banglore F007

Branch
Right Outer Join
• The Right JOIN keyword returns all rows from the right table
(table2), with the matching rows in the left table (table1).
• The result is NULL in the right side when there is no match.

Table 1 Table 2

Table 1 Right Join Table 2

Resultant
Table
Emp_No Name Branch_No
11 Smith B001
List out the employee details
23 William B007
along with their branch name
34 Simi C006
using Right Outer Join
Employee
Select e.emp_no, e.name,
Branch_Name Branch_ b.branch_name from Employee e
No RIGHT OUTER JOIN Branch b ON e.
Mumbai B001 branch_no = b. branch no
Mumbai B007
Pune C009
Banglore F007

Branch
Full Outer Join
• It does both of those operations, padding tuples from the left
relation that did not match any from the right relation
• As well as tuples from the right relation that did not match any
from the left relation and adding them to the result of the join.
Table 2
Table 1

Table 1 Full Outer Join Table 2

Resultant
Table
Emp_No Name Branch_No
11 Smith B001
List out the employee details
23 William B007
along with their branch name
34 Simi C006
using Full Join
Employee

Branch_Name Branch_
Select e.emp_no, e.name,
No b.branch_name from Employee e
Mumbai B001 FULL OUTER JOIN Branch b ON e.
Mumbai B007
branch_no = b. branch no
Pune C009
Banglore F007

Branch
SUBQUERIES
• A subquery is a form of SQL statement that appears inside
another SQL statement
• Subquery also termed as Nested Queries
• First table is called Parent statement which uses rows returned by
subqueries

• Subqueries can be used for


Inserting records
Creating table
Update records
Retrieve last name of employees having salary greater than Abel’s salary
Retrieve the last name, job id and salary of the employees who are having
same job id as employee id 141 and salary is greater than employee id 143
Retrieve the last name, job id and salary of the employee who has
minimum salary in the department
Retrieve the department id and minimum salary of employees of each
department having average salary greater than minimum salary of those
employees who work in department no 50
Retrieve the records of employee whose salary is less than any IT_Prog
employee
Retrieve the records of non IT_Prog employee whose salary is less than
all IT_Prog employees
THANK YOU

You might also like