DBMS Unit-5

38
Date Conversion functions • TO_DATE – Converts a character field into date field • Syntax – TO_DATE(char,fmt) • Example • INSERT INTO EMP VALUES (‘Salesman’,1010,’Ajay’,32,2400 0,30, TO_DATE(‘25-JUN- 2010’,’DD-MON-YY’)

Transcript of DBMS Unit-5

Page 1: DBMS Unit-5

Date Conversion functions

• TO_DATE – Converts a character field into date field

• Syntax – TO_DATE(char,fmt)• Example • INSERT INTO EMP VALUES

(‘Salesman’,1010,’Ajay’,32,24000,30, TO_DATE(‘25-JUN-2010’,’DD-MON-YY’)

Page 2: DBMS Unit-5

Date Functions• ADD_MONTHS – Returns date after adding the

number of months specified in the function• Syntax – ADD_MONTHS(date ,no of months)• Example - SELECT ADD_MONTHS(SYSDATE,4)

“Add Months “ FROM DUAL• LAST_DAY – Returns the last date of the month

specified with the function• Syntax – LAST_DAY(date)• Example – SELECT SYSDATE,

LAST_DAY(SYSDATE) “Last Day” FROM DUAL

Page 3: DBMS Unit-5

Date Functions Contd.• MONTHS_BETWEEN – Returns number of months

between d1 and d2 • Syntax – MONTHS_BETWEEN(date1 ,date2)• Example – SELECT MONTHS_BETWEEN (SYSDATE,’01-

JAN-92’) “Months“ FROM DUAL• NEXT_DAY – Returns the date of the first weekday

named by char that is after the date named by date. Char must be a day of the week

• Syntax – NEXT_DAY(date , char)• Example – SELECT NEXT_DAY(SYSDATE, ‘Saturday’)

“Next Day” FROM DUAL

Page 4: DBMS Unit-5

Date Functions Contd.• ROUND – Returns a date rounded to a specific

unit of measure. If the second parameter is omitted ROUND function will round the date to the nearest day.

• Syntax – ROUND(date, format)• Example – SELECT ROUND(SYSDATE, ‘YYYY’)

“Year” FROM DUAL

Page 5: DBMS Unit-5

Group By Clause• Another optional clause of SELECT statement

that tells Oracle to group rows based on distinct values that exist for specified columns. The GROUP BY clause creates a data set containing several sets of records grouped together based on a condition.

• Syntax – SELECT AGGREGATE_FUNCTION (Expression) FROM TableName WHERE Condition GROUP BY Column1, Column2 … ColumnN

Page 6: DBMS Unit-5

Group By Clause Contd.• Example – Select Deptno “Department

Number”, SUM(EmpSal) “Total Salary Of Each Department” FROM EMP GROUP BY Deptno

• Example - Select Deptno “Department Number”, SUM(EmpSal) “Total Salary Of Each Department And Employee Job” FROM EMP GROUP BY Deptno, EmpJob

Page 7: DBMS Unit-5

Having Clause Contd.• Can be used in conjunction with GROUP BY clause.

HAVING imposes a condition on GROUP BY clause which further filters the groups created by the GROUP BY clause.

• Each column specified in the HAVING clause must occur within the function or must occur in the list of columns named in the GROUP BY clause

• Example – SELECT Deptno “Department Number”, COUNT(Empno) “No Of Employees” FROM Emp GROUP BY Deptno HAVING Deptno > 10

Page 8: DBMS Unit-5

SUB QUERIES• It is a form of SQL statement that appears inside another

SQL statement.• It is also termed as nested query.• The statement containing a subquery is called a parent

statement which uses the rows returned by the subquery

• It can be used for the following– Insert or Update records in target table– Create table and insert records in it– Create Views– Provide values for conditions in where, having, in and so on

used with DML statements

Page 9: DBMS Unit-5

SUB QUERIES Contd• Sub Query Example – Select * from Emp

where Deptno IN (Select Deptno from Dept whete Dname = ‘Sales’)

• Nested Sub Query Example – Select * from Emp where EmpSal < (Select Max(Empsal) from Emp where EmpSal < (Select Max(EmpSal) from Emp))

Page 10: DBMS Unit-5

JOINS And Its Types• Joins are used to work with multiple tables as if they

were like a single entity• Tables are joined on columns that have the same

data type and data width in the tables• The purpose of join is to bind together across tables

without repeating all of the data in every table• The various types of joins are– INNER JOIN– OUTER JOIN

• LEFT, RIGHT, FULL– CROSS

Page 11: DBMS Unit-5

TYPES OF JOINS• INNER JOIN – Inner Joins are also known as Equi Joins. In

this type of join the where statement compares two columns from two tables with equivalence operator =. This type of join is used to return all rows from the tables where there is a match

• OUTER JOIN – They are similar to inner joins but allow to select rows from the tables (left or right or both) regardless whether the other table has values in common and enters NULL where the data is missing

• CROSS JOIN – It returns Cartesian Product that is combines every row from left table with every row from right table. This type of join is used to select all possible combinations of rows and columns from both the tables

Page 12: DBMS Unit-5

Syntax Of Joins

• Syntax (ANSI Style) – SELECT Column1, Column2, ColumnN FROM Table1 INNER JOIN Table2 ON Table1.Column1= Table2.Column2 WHERE <Condition> ORDER BY Column1, Column2

• Syntax (Theta Style) – SELECT Column1, Column2, ColumnN FROM Table1, Table2 WHERE Table1.Column1=Table2.Column2 ORDER BY Column1, Column2

Page 13: DBMS Unit-5

Examples Of JOINS• INNER JOIN – SELECT E.EmpNo, E.EmpName “Name”, D.Deptno

“Department Number” FROM Emp E INNER JOIN Dept D ON E.Deptno=D.Deptno

• INNER JOIN - SELECT E.EmpNo, E.EmpName “Name” ,D.Deptno “Department Number” FROM Emp E, Dept D WHERE E.Deptno=D.Deptno

• CROSS JOIN – SELECT E.EmpName, D.Dname FROM Emp E, Dept D

• LEFT OUTER JOIN – SELECT E.EmpNo, E.EmpName, D.DeptNo, D.Dname FROM Emp E LEFT JOIN Dept D ON E.Deptno = D.Deptno

• LEFT OUTER JOIN – SELECT E.EmpNo, E.EmpName, D.DeptNo, D.Dname FROM Emp E, Dept D WHERE E.Deptno = D.Deptno(+)

Page 14: DBMS Unit-5

Examples Of JOINS Contd.

• RIGHTT OUTER JOIN – SELECT E.EmpNo, E.EmpName, D.DeptNo, D.Dname FROM Emp E RIGHT JOIN Dept D ON E.Deptno = D.Deptno

• RIGHT OUTER JOIN – SELECT E.EmpNo, E.EmpName, D.DeptNo, D.Dname FROM Emp E, Dept D WHERE E.Deptno(+) = D.Deptno

• FULLOUTER JOIN – SELECT E.EmpNo, E.EmpName, D.DeptNo, D.Dname FROM Emp E FULL JOIN Dept D ON E.Deptno = D.Deptno

• FULL OUTER JOIN – SELECT E.EmpNo, E.EmpName, D.DeptNo, D.Dname FROM Emp E, Dept D WHERE E.Deptno(+) = D.Deptno(+)

Page 15: DBMS Unit-5

Constraints and Its Types

• Business rules which are enforced on the data being stored in the table are called Constraints

• Constraints super control the data being entered into the table for permanent storage

• Oracle permits constraints to be attached to the columns via CREATE TABLE or ALTER TABLE statement.

• Once a constraint is attached with the data column and if the data value is entered the database engine checks if the is valid or not if the data is valid it is stored in the table else rejected

• Even if single column fails to pass the constraint the entire record is rejected

Page 16: DBMS Unit-5

Types Of Constraints

• PRIMARY KEY Constraint – A primary key is one or more columns in a table used to uniquely identify each row in a table.

• A table can have only one primary key and it is unique and not null

• A single column primary key is called as Simple Key and a multiple column primary key is called as Composite Key

• Features Of Primary Key– Record Uniqueness– Not Allow Null and duplicate values– Not compulsory but recommended– Relates tables with one another– Only one primary key per table– Unique Index automatically created– Composite primary key can contain up to 16 columns

Page 17: DBMS Unit-5

Primary Key Created At Column And Table Level

• CREATE TABLE EMP (EMPNO NUMBER(2) PRIMARY KEY, EMPNAME

VARCHAR2(20),EMMPSAL NUMBER(5))• CREATE TABLE EMP(EMPNO NUMBER(2), EMPNAME VARCHAR2(20),

EMPSAL NUMBER(5), PRIMARY KEY(EMPNO))

Page 18: DBMS Unit-5

Foreign Key (Self Reference) Constraint• Represents relationship among tables• Column or group of columns whose values are derived from primary

key or unique key of some other table• Foreign Key defined table is called Foreign table or Detail table• Primary Key defined table is called Primary table or Master table • Master table is referenced by REFERENCES TableName.ColumnName • Features of Foreign Key

– References a column(s) in same or other table– Parent being referenced must be unique or Primary key– Child may have duplicate vales– If no child record exist parent record can be deleted– If child record exist master table cannot be updated– Record cannot be inserted in detail table if no record exist in master table

Page 19: DBMS Unit-5

Foreign Key Created At Column And Table Level

• CREATE TABLE EMP (EmpNo NUMBER(2), EmpName Varchar2(20), Deptno Number(2) REFERENCES Dept(Deptno) )

• CREATE TABLE EMP (EmpNo NUMBER(2), EmpName Varchar2(20), Deptno Number(2), FOREIGN KEY(DeptNo) REFERENCES Dept(Deptno) )

Page 20: DBMS Unit-5

Unique Key Constraint• The UNIQUE column constraint permits

multiple entries of NULL into column• Features Of Unique Constraint– Will not allow duplicate values– Unique index created automatically– Table can contain multiple unique keys– Can combine up to 16 columns

Page 21: DBMS Unit-5

Unique Key Created At Column And Table Level

• CREATE TABLE EMP (EmpNo Number(2), EmpName Varchar(20), EmpSal Number(5) UNIQUE) )

• CREATE TABLE EMP (EmpNo Number(2), EmpName Varchar(20), EmpSal Number(5), UNIQUE(Empsal) )

Page 22: DBMS Unit-5

Business Rule Constraint• Business rules are applied to table columns• Applied to data prior the data being inserted into the table

columns• Ensures that the records or data in the table have integrity• Implemented by using CHECK constraints and can be bound

to the column using CREATE TABLE or ALTER TABLE command• Business rule validation checks are performed when any

INSERT or UPDATE statement is executed.• These constraints are defined at Column Level and Table

Level

Page 23: DBMS Unit-5

Business Rule Constraints Contd.

• NULL VALUE – A NULL value is different from space or zero and can be inserted into columns of any data type.

• Setting a NULL value is appropriate when the actual value is unknown or not meaningful

• Will evaluate to NULL in any expression for example NULL multiplied by 10 is NULL

• If a column has NULL value Oracle ignores any UNIQUE, FOREIGN KEY, CHECK constraints that are applied to that column

Page 24: DBMS Unit-5

NOT NULL Constraint

• Oracle has NOT NULL column constraint that ensures that a column cannot be left empty.

• It implies that a value has to be entered in that column if a record has to be accepted

• SYNTAX – ColumnName DataType(Size) NOT NULL

• Example – CREATE TABLE Dept (DeptNo Number(2) Primary Key, Dname Varchar(20) NOT NULL)

Page 25: DBMS Unit-5

CHECK Constraint• Business rule applied to a table column using CHECK constraint• Must be specified as a logical expression that evaluates to

TRUE or FALSE• COLUMN LEVEL – ColumnName DataType Size CHECK Logical

Expression• CREATE TABLE Emp (EmpNo Number(2), EmpName Varchar(20)

CHECK (EmpName=UPPER(EmpName), EmpSal Number(5) CHECK EmpSal > 0)

• TABLE LEVEL – CHECK (Logical Expression)• CREATE TABLE Emp (EmpNo Number(2), EmpName

Varchar(20), EmpSal Number(5) , CHECK (EmpName=UPPER(EmpName), CHECK EmpSal > 0)

Page 26: DBMS Unit-5

Defining Integrity Constraints Via ALTER Table Command

• Integrity constraints can be defined using the constraint clause in ALTER TABLE command

• Oracle will not allow constraints to be defined if data previously placed in the table violates such constraints

• ALTER TABLE Emp ADD PRIMARY KEY(EmpNo)• ALTER TABLE Emp ADD CONSTRAINT F_Deptno

FOREIGN KEY(Deptno) REFERENCES Dept(Deptno)• ALTER TABLE Emp DROP PRIMARY KEY(EmpNo)• ALTER TABLE Emp DROP CONSTRAINT F_Deptno

Page 27: DBMS Unit-5

DEFAULT VALUE• At the time of table creation a default value can be

assigned to a column.• The DEFAULT clause can be used to specify a default

value for an empty column so that when a record is added to the table and the column is left empty Oracle engine will load this default value in that column

• SYNTAX – ColumnName DataType Size DEFAULT value• EXAMPLE – CREATE TABLE Emp (EmpNo Number(2),

EmpName Varchar(20), EmpSal Number(5), HireDate Date Default SYSDATE)

• Page 158, 159, 160, 191, 243

Page 28: DBMS Unit-5

Views• To reduce redundant data to minimum possible Oracle allows the

creation of an object called as View. A view is mapped to a select statement

• The table on which the view is based is described in the from clause of the select statement. The select clause consists of a subset of columns of the table. Thus a view which is mapped to the table will in effect have a subset of the actual columns of the tables from which it is built.

• This technique offers an effective way of hiding the columns• When a reference is made to a view its definition is scanned the

base table is opened and the view created on top of the base table • Hence a view holds no data at all until a specific call to a view is

made• Oracle engine treats a view as it was base table.

Page 29: DBMS Unit-5

Views Contd• Views that used only for looking at table data are called as

Read-Only views.• Views that are used to look at the table data as well as

Insert, Update and Delete table data is called an Updateable View.

• SYNTAX – CREATE VIEW ViewName AS SELECT Statement• EXAMPLE – CREATE VIEW V_EMP AS SELECT * FROM EMP• VIEW CALL – SELECT * FROM ViewName• The DROP VIEW command is used to remove a view from

the database• SYNTAX – DROP VIEW ViewName• EXAMPLE – DROP VIEW V_EMP

Page 30: DBMS Unit-5

Types Of Views• Horizontal View – A horizontal view slices the table

horizontally to create a view. All columns of the source table are in this view but only some rows are visible

• EXAMPLE – CREATE VIEW V_HORIZ AS Select * FROM Emp WHERE Deptno=10

• Vertical View – A vertical view slices the table vertically to create a view. All rows of the source table are in this view but only some columns are visible

• EXAMPLE – CREATE VIEW V_VERT AS Select EmpNo,EmpName FROM Emp

Page 31: DBMS Unit-5

Types Of Views• Row/Column Subset View – A row/column subset view slices

the table horizontally as well as vertically to create a view. Only some columns and some rows of the source table are in this view

• EXAMPLE – CREATE VIEW RowColView AS Select EmpNo, EmpName FROM Emp WHERE DeptNo=10

• Grouped View – A query specified in a view with a group by clause is called as grouped view

• EXAMPLE – CREATE VIEW GrpView AS Select COUNT(*), SUM(EmpSal) FROM EMP GROUP BY DeptNo

• Joined View – Joined views are created by specifying multi table query that draws data from multiple tables

• EXAMPLE – CREATE VIEW JoinView AS Select D.Dname, E.EmpName From Dept D, Emp E WHERE D.DeptNo=E.EmpNo

Page 32: DBMS Unit-5

Updates on Views• Views can also be used for data manipulation.• Views on which data manipulation can be done are called

Updateable Views.• When an updateable view is given in an Insert, Update or

Delete SQL statement modifications to data in the view will be immediately passed to the underlying table

• For a view to be updateable it should meet the following criteria– Views defined from single table– It should not contain GROUP BY, ORDER BY, FUNCTIONS,

DISTINCT keyword, Columns with Arithmetic expressions– If view uses WITH READ OPTION or WITH CHECK OPTION

Page 33: DBMS Unit-5

Comparison Of Views and Tables

• Table– Comprises of rows

and columns (records and fields)

– Stores data in database occupy some space in database

• View– Comprises of query in view

definition– Contains rows and columns but it

is virtual table based on result set of an SQL statement

– Fields in a view are fields from one or two real tables

– A glimpse of a table can be shown in a view

– Does not contain data when it is called goes to memory and fetches data from base tables

Page 34: DBMS Unit-5

Advantages Of Views• Restrict the user from accessing all the data• Can be a result of complex query and hence no

need of writing the query again and again• Definition remains unaffected although there is

any change in structure of a table.• Does not allow direct access to the tables of data

dictionary• If data is accessed through view the DBMS

automatically checks the data for specified integrity constraints

Page 35: DBMS Unit-5

Disadvantages Of Views• If a view is defined by complex multi table query it may

take longer time to run• As the complexity is hidden by the view users are not

aware of how much complicated task the query is actually performing

• View should be created as per standard so that it simplifies the job of DBA

• When a user tries to update a view the DBMS must translate this query into an update on rows of underlying base tables

• Complex views cannot be uploaded as they are read only type

Page 36: DBMS Unit-5

Triggers• It is a procedure that is automatically invoked by the DBMS in response to specific

alteration to the database or table in the database• Stored in database as database objects• A database that has a set of associated triggers is called as active database• Enables DBA to create additional relationships between separate databases• SYNTAX –

CREATE OR REPLACE TRIGGER TriggerNameENABLE | DISABLE BEFORE | AFTERINSERT | UPDATE | DELETE OF ColumnName ON TableNameFOR EACH ROW WHEN TriggerConditionDECLAREVariable DeclarationBEGINTrigger CodeEXCEPTIONException ClausesEND TriggerName

Page 37: DBMS Unit-5

Trigger Types• Row Level Triggers – Fired each time the table is

affected by the triggering statement• Statement Level Triggers – Fired once on behalf of

the triggering statement regardless of the number of rows affected

• EXAMPLE – CREATE TRIGGER UpperNameAFTER INSERT ON EmpINSERT INTO Emp VALUES (UPPER(Ename)) FOR EACH ROW

Page 38: DBMS Unit-5

• Trigger Advantages – Useful for enforcing referential integrity which

preserves the defined relationships between tables when rows are added, updated or deleted

– If the new information is inconsistent in the database error will be raised that will cause the entire transaction to rollback

• Trigger Disadvantages– Hampers the performance as the database operation

becomes slower due to triggers– Cannot modify the table on which triggering action is

written or connected by primary key foreign key relation