You are on page 1of 17

Categories

Data Definition
Language (DDL)

Data Manipulation
Language (DML)

Transaction
Control Language
(TCL)

Data Control
Language (DCL)

Function

Creating, modifying,
and dropping the
structure of database
objects

Storing, retrieving,
modifying, and
deleting data

Managing changes
affecting the data.

Providing security to
database objects

Commands

CREATE, ALTER,
DROP, RENAME,
and TRUNCATE

SELECT, INSERT,
UPDATE, and
DELETE

COMMIT,
ROLLBACK, and
SAVEPOINT

GRANT and
REVOKE

SQL Alias: To make selected columns more readable.


Aliases for Columns
SELECT

first_name

AS

Name

or
SELECT first_name Name FROM student_details;

Aliases for Tables:


SELECT s.first_name FROM student_details s;

WHEN to use Aliases?

There are more than one tables involved in a query,

Functions are used in the query,

The column names are big or not readable,

More than one columns are combined together.

FROM

student_details;

SQL WHERE Clause:


Used to restrict data

Can be used along with SELECT, DELETE, UPDATE statements

Comparison Operators and Logical Operators are used in WHERE Clause


NOTE: Aliases defined for the columns in the SELECT statement cannot be used in the
WHERE clause to set conditions.

SQL Operators:
Mainly used in the WHERE clause, HAVING clause to filter the data to be selected
2 types:
1. Comparison Operators
Used to compare the column data with specific values in a condition

Used along with the SELECT statement to filter data based on specific conditions
2. Logical Operators (AND, OR, NOT)

NOTE:
When logical operators are combined in a SELECT statement, then the order in which the
statement is processed is:
1) NOT
2) AND
3) OR

SQL Comparison Keywords: (All operate on Column Values)

IN

Similar to OR Operator.

SELECT ENAME, SAL from EMP where SAL IN(2000, 3000, 4000)

BETWEEN...AND

Used to compare data for a range of values.

SELECT ENAME, SAL from EMP where SAL BETWEEN 2000 AND 3000

IS NULL
o

Is used to display all the rows for columns that do not have a value.

SELECT ENAME, SAL from EMP where SAL IS NULL

LIKE
o

List all rows in a table whose column values match a specified pattern

select ENAME, SAL, COMM from EMP where SAL LIKE '2%' OR
SAL LIKE '_00%'

SQL ORDER BY:

Used in SELECT statement to sort results either in Ascending order or Descending


order.
Bi-default it is Ascending order
Ascending Order
o SELECT ENAME, SAL from EMP ORDER BY SAL

Descending Order
o SELECT ENAME, SAL from EMP ORDER BY SAL DESC

NOTE:
Column Numbers can also be used in place of Column Names
o SELECT EMPNO, ENAME from EMP ORDER BY 1, 2

Aliases defined in the SELECT Statement can be used in ORDER BY Clause (as shown in
the example below)
Using Expressions in ORDER BY clause
o SELECT ENAME, SAL, SAL*1.2 AS new_salary FROM EMP
WHERE SAL*1.2 > 3000
ORDER BY new_salary;

SQL GROUP Functions:

Built-in SQL functions that operate on groups of rows and return one value for the
entire group.

COUNT
o SELECT COUNT (*) from EMP where JOB = 'MANAGER'

MAX
o To get maximum value from a column (can be of any type)
SELECT MAX(JOB) from EMP

MIN
o To get minimum value from a column (can be of any type)
o SELECT MIN(SAL) from EMP

AVG
o To get average value of a numeric column
o SELECT AVG(SAL) from EMP

SUM
o To get average value of a numeric column
o SELECT SUM(SAL) from EMP

DISTINCT
o To get Number of distinct jobs
SELECT COUNT (DISTINCT JOB) from EMP

SQL GROUP BY Clause:


Used along with the group functions to retrieve data grouped according to one or
more columns
SELECT JOB, DEPTNO, SUM(SAL) from EMP Group BY DEPTNO, JOB

SQL HAVING Clause:

Used to filter data based on the group functions.


Similar to WHERE condition but is used with group functions.
Group functions cannot be used in WHERE Clause but can be used in HAVING clause
SELECT Job, SUM(Sal) from EMP GROUP BY Job HAVING SUM(Sal) > 5000

When WHERE, GROUP BY and HAVING clauses are used together in a SELECT
statement, then:
i.

WHERE clause is processed first,

ii.

Then the rows that are returned after the WHERE clause are grouped based on the
GROUP BY clause.

iii.

Finally, any condition(s) on the group function(s) in the HAVING clause is applied to
the grouped rows before the final output is displayed.

SQL INSERT Statement:


If data is to be inserted in all the columns from another table:
INSERT INTO Emp
Select * from temp_Emp

INSERT INTO Emp (Emp_id, Emp_name)


SELECT id, name FROM temp_Emp

NOTE:
In the above scenario, when adding a new row, the data-type of the value and the column
must match in both the tables.

SQL UPDATE Statement:


Used to modify existing rows in a table
In the Update statement, WHERE clause identifies the rows that get affected.
If the WHERE clause is not included then column values for all the rows get affected.
Update Emp SET FULL_NAME = 'LALU' where ID = 3

DELETE, DROP & TRUNCATE:


DELETE
1.

TRUNCATE

DROP

Removes all the rows

Removes all the rows

Removes an object from

from a table

from a table & releases

the database i.e. deletes

the storage space

the rows and removes the


table structure

2.

Can be Rolled back

Cannot be Rolled back

Cannot be rolled back

(DML) until

(DDL) & hence is faster

(DDL)

transaction is

than DELETE

committed

3.

The table structure


remains the same
None of these

All the relationships


with other tables will
no longer be valid.
Integrity Constraints
will be dropped.

problems will exist.

Grant or Access
privileges &
relationships with
other tables should
be established again.

4.

DELETE from Emp

TRUNCATE table Emp

DROP table Emp

where E_UID = w
OR
DELETE from Emp

SQL CREATE TABLE Statement:


In Oracle database, the data-type for an integer column is represented as "number".
In Oracle, table can also be created this way:
CREATE table T_Emp
SELECT * from Emp
T_Emp table is created with the same number of columns and data-type as Emp
table.

SQL ALTER TABLE Statement:


Used to modify the definition (structure) of a table by modifying the definition of its
columns.
The ALTER command is used to perform the following functions.
o Add, drop, modify table columns
o Add and drop constraints

o Enable and Disable constraints

Add a Column:
ALTER TABLE Emp ADD Emp_Name varchar2(30)

Drop a Column:
ALTER TABLE Emp DROP Emp_Name varchar2(30)

Modify a Column:
ALTER TABLE Emp MODIFY Emp_ID integer

SQL RENAME Command:


To change name of table or database object
Supported from ORACLE 8i
RENAME Emp TO UHG_Emp
OR
ALTER table EMP RENAME TO UHG_Emp

SQL Integrity Constraints:


Used to apply business rules to database tables
Constraints in SQL are of 5 types:
o Primary Key
o Foreign Key
o Not Null
o Unique

o Check
Can be defined in 2 ways:
o Column-level definition

specified immediately after the column definition

o Table-level definition

specified after all the columns are defined

PRIMARY KEY

o At Column level
Emp_ID integer CONSTRAINT p_key PRIMARY KEY

o At Table level
CREATE table Emp
(
id integer,
name varchar2(20),
CONSTRAINT p_key1 PRIMARY KEY(id)
);

FOREIGN KEY or REFERENTIAL INTEGRITY


This constraint identifies any column referencing the PRIMARY KEY in another
table.
Establishes a relationship between two columns in the same table or between
different tables.

For a column to be defined as a Foreign Key, it should be a defined as a Primary


Key in the table which it is referring.
One or more columns can be defined as Foreign key.
The column which is referred must be the UNIQUE or PRIMARY key of that
table.
For Example:
CREATE TABLE product
(
prod_id number(5) CONSTRAINT pd_id_pk PRIMARY KEY,
prod_name char(20));

At Column level
CREATE TABLE order_items
(
order_id number(5) CONSTRAINT od_id_pk PRIMARY KEY,
prod_id number(5) CONSTRAINT pd_id_fk REFERENCES prod(prod_id)
prod_name char(20));

o At Table level
CREATE TABLE order_items
(
order_id number(5),
prod_id number(5),
prod_name char(20),
CONSTRAINT od_id_pk PRIMARY KEY (order_id),

CONSTRAINT pd_id_fk FOREIGN KEY (prod_id) REFERENCES prod(prod_id));

NOT NULL

Ensures all rows in the table contain a definite value for the column which is
specified as not null
Emp_ID integer CONSTRAINT nn_key NOT NULL

UNIQUE
Ensures that a column or a group of columns in each row have a distinct value.
Column can have a null value but the values cannot be duplicated.

o At Column level
Emp_ID integer CONSTRAINT u_key UNIQUE

o At Table level
CREATE table Emp
(
id integer,
name varchar2(20),
CONSTRAINT u_key1 UNIQUE(id)
);

CHECK

Defines business rule on a column

All rows must satisfy this rule

Constraints can be applied on a single column or group of columns

o At Column level
Emp_Gender char(1) CHECK (Emp_Gender IN(M, F))

o At Table level
CREATE table Emp
(
id integer,
Emp_Gender char(1),
CONSTRAINT gender_chk CHECK (Emp_Gender IN(M,F)));

NOTE:
The integrity constraints can be defined at column level or table level.
Precision is the number of digits in a number. Scale is the number of digits to the right of
the decimal point in a number. For example, the number 123.45 has a precision of 5 and a
scale of 2.
DESCRIBE Emp or DESC Emp

SQL Joins:
Used to relate information in different tables.

Part of the SQL query that retrieves rows from two or more tables.
SQL Join condition is used in the SQL WHERE Clause of select, update, delete
statements.
If a SQL join condition is omitted or if it is invalid the join operation will result in a
Cartesian product. [For e.g., if the first table has 10 rows and the second table has 20
rows, the result will be 10 * 20, or 200 rows i.e. this query will take a long time to
execute.]

2 TYPES:

Equi Joins
Uses equal sign as comparison operator
o SQL OUTER JOIN
o SQL INNER JOIN

Non Equi Joins

Equi Joins
I.

SQL INNER JOIN


All the rows returned by the SQL query which satisfy the SQL join
condition specified.
NOTE: rule must be true to avoid Cartesian product

SELECT e.*, d.Deptno


FROM Emp1 e, Dept1 d
WHERE e.Deptno = d.Deptno

II.

SQL OUTER JOIN


Returns all rows from both tables which satisfy the join condition along with
rows which do not satisfy the join condition from one of the tables.
In Oracle, Outer Join is ( + ) and is used on one side of the join condition only.

SELECT Emp1.Ename, Dept1.Deptno


FROM Emp1, Dept1
WHERE Dept1.Deptno (+) = Emp1.Deptno
NOTE: If the (+) operator is used in the left side of the join condition it is
equivalent to left outer join. If used on the right side of the join condition it is
equivalent to right outer join.

SQL Self Join:


Used to join a table to itself
Used when a table having FOREIGN KEY references its own PRIMARY
KEY
SELECT e1.EId, e1.Ename, e2.PersonId, e2.EAdd,
FROM Emp1 e1, Emp1 e2
WHERE e1.EId = e2.PersonId

Non Equi Joins


All comparison operators except the equal (=) operator are used (E.g. >=, <=, <, >)
SELECT e.EId, e.Ename
FROM Emp1 e
WHERE e.Ename != Ankit

SQL Views:
Selective amount of data can be seen from one or more tables
Used to restrict access to database (for security)
Hides complexity
CREATE VIEW ABC AS
Select Ename, Sal

FROM Emp

select SYSDATE from Dual

select SYSDATE, ADD_MONTHS(SYSDATE, 2) from DUAL

select SYSDATE, NEXT_DAY(SYSDATE, 'FRI') from DUAL

select SYSDATE, LAST_DAY(SYSDATE) from DUAL

select SYSDATE, ADD_MONTHS(SYSDATE, 2) from DUAL

select 100+ LTRIM('#####100', '#') from DUAL

select NEXT_DAY(To_DATE('11-October-1989 12:30:50', 'DD-monthYYYY HH:MI:SS'), 'WED') from DUAL

You might also like