MISCELLANEOUS FUNCTIONS
MISCELLANEOUS FUNCTIONS
Uid
User
Vsize
Rank
Dense_rank
1) UID: This will give the integer value corresponding to the user currently logged in.
Ex: SQL> select uid from dual;
CONVERSION FUNCTIONS
Bin_to_num
Chartorowid
Rowidtochar
To_number
To_char
To_date
1) BIN_TO_NUM: This will convert the binary value to its numerical equivalent.
Syntax: bin_to_num( binary_bits)
SQL> select bin_to_num(1,1,0) from dual;
2) AVG: This will give the average of the values of the specified column.
Syntax: avg (column)
SQL> select avg(sal) from emp;
3) MAX: This will give the maximum of the values of the specified column.
Syntax: max (column)
Ex: select max (salary) from A_SALARY;
4) MIN: This will give the minimum of the values of the specified column.
Syntax: min (column)
Ex: select min(salary) from A_SALARY;
5) COUNT: This will give the count of the values of the specified column.
Syntax: count (column)
Ex: select count (salary),count(*) from A_SALARY;
CONSTRAINTS
Constraints are categorized as follows.
Domain integrity constraints
Not null
Check
Entity integrity constraints
Unique
Primary key
Referential integrity constraints
Foreign key
Constraints are always attached to a column not a table.
We can add constraints in three ways.
Column level -- along with the column definition
Table level -- after the table definition
Alter level -- using alter command
While adding constraints you need not specify the name but the type only, oracle will internally name the
constraint. If you want to give a name to the constraint, you have to use the constraint clause.
NOT NULL
This is used to avoid null values. We can add this constraint in column level only.
SQL> create table student(no number(2) not null, name varchar(10), marks number(3));
CREATE TABLE A_CUSTOMERS( ID INT NOT NULL, NAME VARCHAR (20) NOT NULL, AGE INT
NOT NULL, ADDRESS CHAR (25) , SALARY DECIMAL (18, 2));
SQL> create table student (no number(2) constraint nn not null, name varchar(10), marks number(3));
CHECK
This is used to insert the values based on specified condition.
We can add this constraint in all three levels.
COLUMN LEVEL
SQL> create table student(no number(2) , name varchar(10), marks number(3) check (marks > 300));
SQL> create table student(no number(2) , name varchar(10), marks number(3) constraint ch check(marks > 300));
TABLE LEVEL
SQL> create table student(no number(2) , name varchar(10), marks number(3), check (marks > 300));
SQL> create table student(no number(2) , name varchar(10), marks number(3), constraint ch check(marks > 300));
ALTER LEVEL
UNIQUE
This is used to avoid duplicates but it allow nulls.
We can add this constraint in all three levels.
COLUMN LEVEL
SQL> create table student (no number(2) unique, name varchar(10), marks number(3));
SQL> create table student (no number(2) constraint un unique, name varchar(10), marks number(3));
TABLE LEVEL
SQL> create table student (no number (2) , name varchar(10), marks number(3), unique(no));
SQL> create table student (no number(2) , name varchar(10), marks number(3), constraint un unique(no));
ALTER LEVEL
PRIMARY KEY
This is used to avoid duplicates and nulls. This will work as combination of unique and not null.
Primary key always attached to the parent table.
We can add this constraint in all three levels.
COLUMN LEVEL
SQL> create table student(no number(2) primary key, name varchar(10), marks number(3));
SQL> create table student(no number(2) constraint pk primary key, name varchar(10), marks number(3));
TABLE LEVEL
SQL> create table student(no number(2) , name varchar(10), marks number(3), primary key(no));
SQL> create table student(no number(2) , name varchar(10), marks number(3), constraint pk primary key(no));
ALTER LEVEL
FOREIGN KEY
This is used to reference the parent table primary key column which allows duplicates.
Foreign key always attached to the child table.
We can add this constraint in table and alter levels only.
TABLE LEVEL
SQL> create table emp(empno number(2), ename varchar(10), deptno number(2), primary key(empno), foreign
SQL> alter table emp add constraint fk foreign key(deptno) references dept(deptno);
Once the primary key and foreign key relationship has been created then you cannot remove any parent record if
the dependent Childs exist.
SQL> create table emp(empno number(2), ename varchar(10), deptno number(2), primary key(empno), foreign
SQL> alter table emp add foreign key(deptno) references dept(deptno) on delete cascade;
SQL> alter table emp add constraint fk foreign key(deptno) references dept(deptno) on delete cascade;
COMPOSITE KEYS
A composite key can be defined on a combination of columns. We can define composite keys on entity integrity
and referential integrity constraints. Composite key can be defined in table and alter levels only.
UNIQUE (TABLE LEVEL)
SQL> create table student (no number(2) , name varchar(10), marks number(3), unique(no,name));
SQL> create table student (no number(2) , name varchar(10), marks number(3), constraint un unique(no,name));
SQL> create table student(no number(2) , name varchar(10), marks number(3), primary key(no,name));
SQL> create table student(no number(2) , name varchar(10), marks number(3), constraint pk primary
key(no,name));
PRIMARY KEY (ALTER LEVEL)
SQL> create table emp(empno number(2), ename varchar(10), deptno number(2), dname varchar(10), primary
key(empno), foreign key(deptno,dname) references dept(deptno,dname));
SQL> create table emp(empno number(2), ename varchar(10), deptno number(2), dname varchar(10),
constraint pk primary key(empno), constraint fk foreign key(deptno,dname) references dept(deptno,dname));
FOREIGN KEY (ALTER LEVEL)
SQL> alter table emp add constraint fk foreign key(deptno,dname) references dept(deptno,dname);
DEFERRABLE CONSTRAINTS
Each constraint has two additional attributes to support deferred checking of constraints.
Deferred initially immediate
Deferred initially deferred
Deferred initially immediate checks for constraint violation at the time of insert.
Deferred initially deferred checks for constraint violation at the time of commit.
SQL> create table student(no number(2), name varchar(10), marks number(3), constraint un unique(no) deferred
initially immediate);
SQL> create table student(no number(2), name varchar(10), marks number(3), constraint un unique(no) deferred
initially deferred);
SQL> alter table student add constraint un unique(no) deferrable initially deferred;
This will enable all the constraints violations at the time of commit.
OPERATIONS WITH CONSTRAINTS
This will enable the constraint. Before enable, the constraint will check the existing data.
SQL> alter table student enable constraint un;
DISABLE
ENFORCE
This will enforce the constraint rather than enable for future inserts or updates.
This will not check for existing data while enforcing data.
SQL> alter table student enforce constraint un;
DROP