You are on page 1of 8

insert into departments (department_id, department_name, manager_id, location_id)

values(279,'MAINTENANCE',204,2700);

select department_id from departments order by 1;

select * from departments


where department_id = 279;

insert into departments (department_id, department_name, manager_id, location_id)


values(280, 'PRODUCTION', 204, 2700);

select * from departments where department_id > 278;

insert into departments (department_id, department_name, manager_id, location)


values(290, NULL, 201, 2700); -- error

-- SQL Error: ORA-02291: integrity constraint (HR.DEPT_MGR_FK) violated - parent


key not found
insert into departments (department_id, department_name, manager_id, location_id)
values(291, 'NewDept', 2201, 1700);

select distinct(manager_id) from employees order by 1;

insert into departments (department_id, department_name, manager_id, location_id)


values(291, 'NewDept', 201, 1700);

-- SQL Error: ORA-00001: unique constraint (HR.DEPT_ID_PK) violated


insert into departments (department_id, department_name, manager_id, location_id)
values(230, 'Research', 2201, 1700);

-- SQL Error: ORA-01722: invalid number


insert into departments (department_id, department_name, manager_id, location_id)
values(310, 145, '310Dept', 1700);

--correction
insert into departments (department_id, department_name, manager_id, location_id)
values(310, '310Dept',145, 1700);

create table dept_new as select department_id, department_name, location_id


from departments;

select * from dept_new;

delete from dept_new;

insert into dept_new


select department_id, department_name, location_id
from departments;

drop table dept_new;


desc employees;

update employees
set last_name ='stuart'
where last_name = 'Greenberg';

select * from employees


where employee_id=108;
update employees
set phone_number = '515.127.0002',
hire_date ='22 MAY 11'
where employee_id = 108;

update employees
set email = LOWER(email);

select * from employees


where employee_id = 108;

commit;

select email from employees;

commit;

create table test as


select * from employees;

select count(*) from test;

delete from test;

rollback;

commit;

drop table test;

create table t_01(


id number(4),
data varchar(10));

create table t_02(


id number(4),
data varchar(10));

insert into t_01 (id, data)


values(001, 'Foo');
insert into t_01 (id, data)
values(002, 'Bar');

insert into t_02 (id, data)


values(001, 'Banana');
insert into t_02 (id, data)
values(002, 'Ananas');

commit;
rollback;

select * from t_01;


select * from t_02;

drop table t_01;

delete from t_02


where data = 'Banana';
select * from t_02
where data = 'Banana';

insert into t_02(id, data)


values(005, 'Befores01');

savepoint save01;

insert into t_02(id, data)


values(006, 'Befores02');

savepoint save02;

insert into t_02(id, data)


values(007, 'Befores03');

savepoint save03;

select * from t_02;

ROLLBACK TO save02;

commit;

truncate table t_01;


truncate table t_02;

select * from t_01;


select * from t_02;

drop table t_01;


drop table t_02;

create table emp(


emp_id number,
ename varchar2(35),
dept_id number,
salary number);

drop table emp;

create table emp(


emp_id number,
ename varchar2(35),
dept_id number default 10,
salary number default 2500);

insert into emp values (100, 'Brian', 30, 1000);


insert into emp values (101, 'Jim', 70, 1700);
insert into emp values (102, 'Brown', 90, 3700);

select * from emp;

-- SQL Error: ORA-00936: missing expression


insert into emp values (103, 'Robbins', ,);

insert into emp(emp_id,ename) values (103, 'Robbins');


insert into emp(emp_id,ename) values (104, 'Tracy');
insert into emp(emp_id,ename) values (105, 'Julia');
insert into emp(emp_id,ename) values (106, 'Murphy');

-- create table using subquery


create table emp_dept_10
as select *
from emp
where dept_id = 10;

select * from emp_dept_10;

drop table emp_dept_10;


drop table emp;
create table emp(
empid number,
ename varchar2(35) constraint emp_name_unk unique,
dept_id number default 10,
salary number default 2500);

insert into emp(empid,ename) values (101, 'Robbins');


insert into emp(empid,ename) values (102, 'Tracy');

-- SQL Error: ORA-00001: unique constraint (HR.EMP_NAME_UNK) violated


insert into emp(empid,ename) values (103, 'Tracy');

drop table emp;

create table emp(


empid number,
ename varchar2(35),
dept_id number default 10,
salary number default 2500,
constraint emp_id_name_uk unique (empid,ename));

insert into emp(empid,ename) values (101, 'Tracy');


insert into emp(empid,ename) values (102, 'Tracy');

-- SQL Error: ORA-00001: unique constraint (HR.EMP_ID_NAME_UK) violated


insert into emp(empid,ename) values (102, 'Tracy');

drop table emp;

create table emp(


empid number constraint emp_empid_pk primary key,
ename varchar2(35),
dept_id number default 10,
salary number default 2500);

create table emp(


empid number,
ename varchar2(35),
dept_id number default 10,
salary number default 2500,
constraint emp_empid_pk primary key(empid));

create table dept(


dept_id number constraint dept_pk primary key,
dname varchar2(35));

insert into dept values (10, 'HR');


-- SQL Error: ORA-00001: unique constraint (HR.DEPT_PK) violated
insert into dept values (10, 'Finance');

insert into dept values (20, 'Finance');


insert into dept values (30, 'Production');
insert into dept values (40, 'Systems');
insert into dept values (50, 'Quality');

select * from dept;


delete from dept;

drop table emp;


create table emp(
empid number constraint emp_pk primary key,
ename varchar2(35),
dept_id constraint emp_fk references dept(dept_id),
salary number default 2500);

insert into emp values(100, 'Brian', 50, 1000);


-- SQL Error: ORA-00001: unique constraint (HR.EMP_PK) violated
insert into emp values(100, 'Jim', 30, 1700);

insert into emp values(101, 'Jim', 30, 1700);


insert into emp values(102, 'Brown', 20, 3700);
-- SQL Error: ORA-02291: integrity constraint (HR.EMP_FK) violated - parent key not
found
insert into emp values(103, 'Julia', 90, 3700);

-- SQL Error: ORA-02292: integrity constraint (HR.EMP_FK) violated - child record


found
delete from dept
where dept_id = 50;

select * from emp;


delete from emp
where dept_id =50;

delete from dept


where dept_id = 50;

select * from dept;


select * from emp;

Drop table emp;


create table emp(
empid number constraint emp_pk primary key,
ename varchar2(35),
dept_id constraint emp_fk references dept(dept_id) on delete cascade,
salary number default 2500);

insert into emp values(100, 'Brian', 50, 1000);


insert into emp values(101, 'Jim', 30, 1700);
insert into emp values(102, 'Bro<n', 20, 3700);

select * from emp;


select * from dept;

delete from dept


where dept_id = 30;
drop table emp;

create table emp(


empid number constraint emp_pk primary key,
ename varchar2(35) constraint emp_chk_name check(length(ename) < 6),
dept_id constraint emp_fk references dept(dept_id) on delete cascade,
salary number default 2500 constraint emp_chk_sal check(salary > 500));

-- SQL Error: ORA-02290: check constraint (HR.EMP_CHK_SAL) violated


-- SQL Error: ORA-02291: integrity constraint (HR.EMP_FK) violated - parent key not
found
insert into emp values(100, 'Brian', 50, 500);

insert into emp values(100, 'Brian', 40, 600);

-- SQL Error: ORA-02290: check constraint (HR.EMP_CHK_NAME) violated


insert into emp values(101, 'Jim Bohn', 30, 1700);

select * from dept;


select * from emp;

insert into emp values(101, 'Jim', 20, 1700);


insert into emp values(102, 'Tony', 10, 2300);

desc emp_new;
-- ALTER TABLE statement
alter table emp rename to emp_new;
alter table emp_new add(testcol varchar2(100));
alter table emp_new rename column testcol to testnew;
alter table emp_new drop column testnew;
alter table emp_new add primary key (emp_id,ename);
alter table emp_new drop primary key;
alter table emp_new rename column empid to emp_id;

--Read
create table oratest(id number);
insert into oratest values(1);
alter table oratest read only;
insert into oratest values(3); -- SQL Error: ORA-12081: update operation not
allowed on table "HR"."ORATEST"
update oratest set id = 2; -- SQL Error: ORA-12081: update operation not allowed on
table "HR"."ORATEST"
delete from oratest; -- SQL Error: ORA-12081: update operation not allowed on table
"HR"."ORATEST"
truncate oratest; -- SQL Error: ORA-03290: Invalid truncate command - missing
CLUSTER or TABLE keyword
alter table oratest add (descrpt varchar2(50));
descr oratest;
alter table oratest read write;
delete from oratest;
drop table oratest;
drop table oratest purge;
rollback;

select department_id, employee_id, first_name, last_name, hire_date


from employees
order by department_id;
create or replace view empd50
as select department_id, employee_id, first_name, last_name, hire_date
from employees
where department_id = 50;

select * from empd50;

desc empd50;

select object_name, created from user_objects


where lower(object_type) = 'view';

select text from user_views


where lower(view_name) = 'empd50';

create or replace view empd50


as select department_id, employee_id, first_name, last_name, hire_date
from employees
where department_id = 50
with check option;

update empd50
set last_name = 'Warner'
where last_name = 'Vollman';

update empd50
set department_id = 40
where last_name = 'Warner'; -- SQL Error: ORA-01402: view WITH CHECK OPTION where-
clause violation

select * from empd50;

create or replace view emp_vu


as select department_name, round(avg(salary), 2) avg_sal, count(first_name) count
from employees e, departments d
where e.department_id = d.department_id
group by department_name;

desc emp_vu;

select * from emp_vu;

drop view emp_vu;

-- Sequence
create sequence SEQ_INT_BY100
increment by 100
start with 1000
maxvalue 100000
minvalue 1000
cache 20;

drop sequence seq_int_by1;

create sequence SEQ_INT_BY1


increment by 1
start with 1
minvalue 1;
rename seq_int_by100 to seq_junkme;

drop sequence seq_junkme;

create table t6(


id number(3) not null primary key,
col1 varchar2(20) not null,
col2 number(3),
constraint col2_chk check(col2 between 1 and 100));

create table t7(


id number(3) not null primary key,
colum01 varchar2(20) not null);

insert into t6 values(seq_int_by1.nextval, 'Foo', 20);


insert into t6 values(seq_int_by1.nextval, 'Bar', 90);
insert into t6 values(seq_int_by1.nextval, 'FooBar', 50);

select * from T6;

insert into t7 values(seq_int_by1.nextval, 'spam');

select * from t7;

create sequence seqbyone


start with 1
nocache;

create sequence seqbyhundred


increment by 100
start with 100
nocache;

select seqbyhundred.nextval from dual;


select seqbyhundred.currval from dual;
select seqbyhundred.nextval from dual;

create table t_test(


id integer primary key,
colname varchar2(20));

insert into t_test(id, colname) values(seqbyhundred.nextval, 'First');


insert into t_test(id, colname) values(seqbyhundred.nextval, 'Second');

select * from t_test;

drop sequence seqbyone;


drop sequence seqbyhundred;

You might also like