Professional Documents
Culture Documents
The normal rules of arithmetic operator precedence apply in SQL: multiplication and division are performed first. followed by addition and subtraction. If operators of the same precedence are used, they are performed from left to right. SQL> SELECT 10 * 12 / 3 - 1 FROM dual; 10*12/3-1 ---------39 SQL>
10 ) 11 / Table created.
SQL> SQL> -- prepare data SQL> insert into Employee(ID, First_Name, Last_Name, Start_Date, End_Date, Salary, City, Description) 2 values ('01','Jason', 'Martin', to_date('19960725','YYYYMMDD'), to_date('20060725','YYYYMMDD'), 1234.56, 'Toronto', 'Programmer') 3 / 1 row created. SQL> insert into Employee(ID, First_Name, Last_Name, Start_Date, End_Date, Salary, City, Description) 2 values('02','Alison', 'Mathews', to_date('19760321','YYYYMMDD'), to_date('19860221','YYYYMMDD'), 6661.78, 'Vancouver','Tester') 3 / 1 row created. SQL> insert into Employee(ID, First_Name, Last_Name, Start_Date, End_Date, Salary, City, Description) 2 values('03','James', 'Smith', to_date('19781212','YYYYMMDD'), to_date('19900315','YYYYMMDD'), 6544.78, 'Vancouver','Tester') 3 / 1 row created. SQL> insert into Employee(ID, First_Name, Last_Name, Start_Date, End_Date, Salary, City, Description) 2 values('04','Celia', 'Rice', to_date('19821024','YYYYMMDD'), to_date('19990421','YYYYMMDD'), 2344.78, 'Vancouver','Manager') 3 / 1 row created. SQL> insert into Employee(ID, First_Name, Last_Name, Start_Date, End_Date, Salary, City, Description) 2 values('05','Robert', 'Black', to_date('19840115','YYYYMMDD'), to_date('19980808','YYYYMMDD'), 2334.78, 'Vancouver','Tester') 3 / 1 row created.
SQL> insert into Employee(ID, First_Name, Last_Name, Start_Date, End_Date, Salary, City, Description) 2 values('06','Linda', 'Green', to_date('19870730','YYYYMMDD'), to_date('19960104','YYYYMMDD'), 4322.78,'New York', 'Tester') 3 / 1 row created. SQL> insert into Employee(ID, First_Name, Last_Name, Start_Date, End_Date, Salary, City, Description) 2 values('07','David', 'Larry', to_date('19901231','YYYYMMDD'), to_date('19980212','YYYYMMDD'), 7897.78,'New York', 'Manager') 3 / 1 row created. SQL> insert into Employee(ID, First_Name, Last_Name, Start_Date, End_Date, Salary, City, Description) 2 values('08','James', 'Cat', to_date('19960917','YYYYMMDD'), to_date('20020415','YYYYMMDD'), 1232.78,'Vancouver', 'Tester') 3 / 1 row created. SQL> SQL> SQL> SQL> -- display data in the table SQL> select * from Employee 2 /
ID FIRST_NAME LAST_NAME START_DAT END_DATE DESCRIPTION ---- ---------- ---------- --------- --------- ---------- ---------- --------------01 Jason 02 Alison 03 James 04 Celia 05 Robert 06 Linda 07 David 08 James Martin Mathews Smith Rice Black Green Larry Cat 25-JUL-96 25-JUL-06 12-DEC-78 15-MAR-90 24-OCT-82 21-APR-99 15-JAN-84 08-AUG-98 30-JUL-87 04-JAN-96 31-DEC-90 12-FEB-98 17-SEP-96 15-APR-02 1234.56 Toronto
SALARY CITY
Programmer
21-MAR-76 21-FEB-86
2344.78 Vancouver Manager 4322.78 New York Tester 7897.78 New York Manager 1232.78 Vancouver Tester
8 rows selected. SQL> SQL> SQL> SELECT * FROM employee WHERE id <> 2; ID FIRST_NAME LAST_NAME START_DAT END_DATE DESCRIPTION ---- ---------- ---------- --------- --------- ---------- ---------- --------------01 Jason 03 James 04 Celia 05 Robert 06 Linda 07 David 08 James Martin Smith Rice Black Green Larry Cat 25-JUL-96 25-JUL-06 12-DEC-78 15-MAR-90 24-OCT-82 21-APR-99 15-JAN-84 08-AUG-98 30-JUL-87 04-JAN-96 31-DEC-90 12-FEB-98 17-SEP-96 15-APR-02 1234.56 Toronto Programmer 6544.78 Vancouver Tester 2334.78 Vancouver Tester 4322.78 New York Tester 7897.78 New York Manager 1232.78 Vancouver Tester SALARY CITY
SQL> SQL> -- clean the table SQL> drop table Employee 2 / Table dropped.
10 ) 11 / Table created. SQL> SQL> -- prepare data SQL> insert into Employee(ID, First_Name, Last_Name, Start_Date, End_Date, Salary, City, Description) 2 values ('01','Jason', 'Martin', to_date('19960725','YYYYMMDD'), to_date('20060725','YYYYMMDD'), 1234.56, 'Toronto', 'Programmer') 3 / 1 row created.
SQL> insert into Employee(ID, First_Name, Last_Name, Start_Date, End_Date, Salary, City, Description) 2 values('02','Alison', 'Mathews', to_date('19760321','YYYYMMDD'), to_date('19860221','YYYYMMDD'), 6661.78, 'Vancouver','Tester') 3 / 1 row created. SQL> insert into Employee(ID, First_Name, Last_Name, Start_Date, End_Date, Salary, City, Description) 2 values('03','James', 'Smith', to_date('19781212','YYYYMMDD'), to_date('19900315','YYYYMMDD'), 6544.78, 'Vancouver','Tester') 3 / 1 row created. SQL> insert into Employee(ID, First_Name, Last_Name, Start_Date, End_Date, Salary, City, Description) 2 values('04','Celia', 'Rice', to_date('19821024','YYYYMMDD'), to_date('19990421','YYYYMMDD'), 2344.78, 'Vancouver','Manager') 3 / 1 row created. SQL> insert into Employee(ID, First_Name, Last_Name, Start_Date, End_Date, Salary, City, Description) 2 values('05','Robert', 'Black', to_date('19840115','YYYYMMDD'), to_date('19980808','YYYYMMDD'), 2334.78, 'Vancouver','Tester') 3 / 1 row created. SQL> insert into Employee(ID, First_Name, Last_Name, Start_Date, End_Date, Salary, City, Description)
2 values('06','Linda', 'Green', to_date('19870730','YYYYMMDD'), to_date('19960104','YYYYMMDD'), 4322.78,'New York', 'Tester') 3 / 1 row created. SQL> insert into Employee(ID, First_Name, Last_Name, Start_Date, End_Date, Salary, City, Description) 2 values('07','David', 'Larry', to_date('19901231','YYYYMMDD'), to_date('19980212','YYYYMMDD'), 7897.78,'New York', 'Manager') 3 / 1 row created. SQL> insert into Employee(ID, First_Name, Last_Name, Start_Date, End_Date, Salary, City, Description) 2 values('08','James', 'Cat', to_date('19960917','YYYYMMDD'), to_date('20020415','YYYYMMDD'), 1232.78,'Vancouver', 'Tester') 3 / 1 row created. SQL> SQL> SQL> SQL> -- display data in the table SQL> select * from Employee 2 / ID FIRST_NAME LAST_NAME START_DAT END_DATE DESCRIPTION ---- ---------- ---------- --------- --------- ---------- ---------- --------------01 Jason 02 Alison Martin Mathews 25-JUL-96 25-JUL-06 1234.56 Toronto Programmer 21-MAR-76 21-FEB-86 6661.78 Vancouver Tester SALARY CITY
12-DEC-78 15-MAR-90 24-OCT-82 21-APR-99 15-JAN-84 08-AUG-98 30-JUL-87 04-JAN-96 31-DEC-90 12-FEB-98 17-SEP-96 15-APR-02
6544.78 Vancouver Tester 2334.78 Vancouver Tester 4322.78 New York Tester 7897.78 New York Manager
8 rows selected. SQL> SQL> SQL> SELECT id, first_name FROM employee WHERE id > 3; ID FIRST_NAME ---- ---------04 Celia 05 Robert 06 Linda 07 David 08 James SQL> SQL> SQL> -- clean the table SQL> drop table Employee 2 / Table dropped.
10 ) 11 / Table created. SQL> SQL> -- prepare data SQL> insert into Employee(ID, First_Name, Last_Name, Start_Date, End_Date, Salary, City, Description) 2 values ('01','Jason', 'Martin', to_date('19960725','YYYYMMDD'), to_date('20060725','YYYYMMDD'), 1234.56, 'Toronto', 'Programmer') 3 / 1 row created. SQL> insert into Employee(ID, First_Name, Last_Name, Start_Date, End_Date, Salary, City, Description) 2 values('02','Alison', 'Mathews', to_date('19760321','YYYYMMDD'), to_date('19860221','YYYYMMDD'), 6661.78, 'Vancouver','Tester') 3 /
1 row created. SQL> insert into Employee(ID, First_Name, Last_Name, Start_Date, End_Date, Salary, City, Description) 2 values('03','James', 'Smith', to_date('19781212','YYYYMMDD'), to_date('19900315','YYYYMMDD'), 6544.78, 'Vancouver','Tester') 3 / 1 row created. SQL> insert into Employee(ID, First_Name, Last_Name, Start_Date, End_Date, Salary, City, Description) 2 values('04','Celia', 'Rice', to_date('19821024','YYYYMMDD'), to_date('19990421','YYYYMMDD'), 2344.78, 'Vancouver','Manager') 3 / 1 row created. SQL> insert into Employee(ID, First_Name, Last_Name, Start_Date, End_Date, Salary, City, Description) 2 values('05','Robert', 'Black', to_date('19840115','YYYYMMDD'), to_date('19980808','YYYYMMDD'), 2334.78, 'Vancouver','Tester') 3 / 1 row created. SQL> insert into Employee(ID, First_Name, Last_Name, Start_Date, End_Date, Salary, City, Description) 2 values('06','Linda', 'Green', to_date('19870730','YYYYMMDD'), to_date('19960104','YYYYMMDD'), 4322.78,'New York', 'Tester') 3 / 1 row created. SQL> insert into Employee(ID, First_Name, Last_Name, Start_Date, End_Date, Salary, City, Description) 2 values('07','David', 'Larry', to_date('19901231','YYYYMMDD'), to_date('19980212','YYYYMMDD'), 7897.78,'New York', 'Manager') 3 / 1 row created.
SQL> insert into Employee(ID, First_Name, Last_Name, Start_Date, End_Date, Salary, City, Description) 2 values('08','James', 'Cat', to_date('19960917','YYYYMMDD'), to_date('20020415','YYYYMMDD'), 1232.78,'Vancouver', 'Tester') 3 / 1 row created. SQL> SQL> SQL> SQL> -- display data in the table SQL> select * from Employee 2 / ID FIRST_NAME LAST_NAME START_DAT END_DATE DESCRIPTION ---- ---------- ---------- --------- --------- ---------- ---------- --------------01 Jason 02 Alison 03 James 04 Celia 05 Robert 06 Linda 07 David 08 James Martin Mathews Smith Rice Black Green Larry Cat 25-JUL-96 25-JUL-06 12-DEC-78 15-MAR-90 24-OCT-82 21-APR-99 15-JAN-84 08-AUG-98 30-JUL-87 04-JAN-96 31-DEC-90 12-FEB-98 17-SEP-96 15-APR-02 1234.56 Toronto Programmer 21-MAR-76 21-FEB-86 6661.78 Vancouver Tester 6544.78 Vancouver Tester 2334.78 Vancouver Tester 4322.78 New York Tester 7897.78 New York Manager 1232.78 Vancouver Tester SALARY CITY
8 rows selected. SQL> SQL> SQL> select id, first_name from employee where id >= 3;
ID FIRST_NAME ---- ---------03 James 04 Celia 05 Robert 06 Linda 07 David 08 James 6 rows selected. SQL> SQL> SQL> SQL> -- clean the table SQL> drop table Employee 2 / Table dropped. SQL> SQL>
SQL> SQL> SQL> -- create demo table SQL> create table Employee( 2 3 4 5 6 7 8 9 ID First_Name Last_Name Start_Date End_Date Salary City Description VARCHAR2(4 BYTE) NOT NULL,
VARCHAR2(10 BYTE), VARCHAR2(10 BYTE), DATE, DATE, Number(8,2), VARCHAR2(10 BYTE), VARCHAR2(15 BYTE)
10 ) 11 / Table created.
SQL> SQL> -- prepare data SQL> insert into Employee(ID, First_Name, Last_Name, Start_Date, End_Date, Salary, City, Description) 2 values ('01','Jason', 'Martin', to_date('19960725','YYYYMMDD'), to_date('20060725','YYYYMMDD'), 1234.56, 'Toronto', 'Programmer') 3 / 1 row created.
SQL> insert into Employee(ID, First_Name, Last_Name, Start_Date, End_Date, Salary, City, Description) 2 values('02','Alison', 'Mathews', to_date('19760321','YYYYMMDD'), to_date('19860221','YYYYMMDD'), 6661.78, 'Vancouver','Tester') 3 / 1 row created.
SQL> insert into Employee(ID, First_Name, Last_Name, Start_Date, End_Date, Salary, City, Description) 2 values('03','James', 'Smith', to_date('19781212','YYYYMMDD'), to_date('19900315','YYYYMMDD'), 6544.78, 'Vancouver','Tester') 3 / 1 row created.
SQL> insert into Employee(ID, First_Name, Last_Name, Start_Date, End_Date, Salary, City, Description) 2 values('04','Celia', 'Rice', to_date('19821024','YYYYMMDD'), to_date('19990421','YYYYMMDD'), 2344.78, 'Vancouver','Manager') 3 / 1 row created.
SQL> insert into Employee(ID, First_Name, Last_Name, Start_Date, End_Date, Salary, City, Description) 2 values('05','Robert', 'Black', to_date('19840115','YYYYMMDD'), to_date('19980808','YYYYMMDD'), 2334.78, 'Vancouver','Tester') 3 / 1 row created.
SQL> insert into Employee(ID, First_Name, Last_Name, Start_Date, End_Date, Salary, City, Description) 2 values('06','Linda', 'Green', to_date('19870730','YYYYMMDD'), to_date('19960104','YYYYMMDD'), 4322.78,'New York', 'Tester') 3 / 1 row created.
SQL> insert into Employee(ID, First_Name, Last_Name, Start_Date, End_Date, Salary, City, Description) 2 values('07','David', 'Larry', to_date('19901231','YYYYMMDD'), to_date('19980212','YYYYMMDD'), 7897.78,'New York', 'Manager') 3 / 1 row created.
SQL> insert into Employee(ID, First_Name, Last_Name, Start_Date, End_Date, Salary, City, Description) 2 values('08','James', 'Cat', to_date('19960917','YYYYMMDD'), to_date('20020415','YYYYMMDD'), 1232.78,'Vancouver', 'Tester') 3 / 1 row created.
SQL> SQL> SQL> SQL> -- display data in the table SQL> select * from Employee 2 /
ID FIRST_NAME LAST_NAME START_DAT END_DATE DESCRIPTION ---- ---------- ---------- --------- --------- ---------- ---------- --------------01 Jason 02 Alison 03 James 04 Celia 05 Robert 06 Linda 07 David 08 James Martin Mathews Smith Rice Black Green Larry Cat 25-JUL-96 25-JUL-06 1234.56 Toronto
SALARY CITY
Programmer
24-OCT-82 21-APR-99 15-JAN-84 08-AUG-98 30-JUL-87 04-JAN-96 31-DEC-90 12-FEB-98 17-SEP-96 15-APR-02
2344.78 Vancouver Manager 2334.78 Vancouver Tester 4322.78 New York Tester 7897.78 New York Manager 1232.78 Vancouver Tester
8 rows selected.
SQL> SQL> SQL> select id, first_name from employee where id <= 3;
ID FIRST_NAME ---- ---------01 Jason 02 Alison 03 James SQL> SQL> SQL> -- clean the table SQL> drop table Employee 2 / Table dropped.
SQL> SQL>
SQL> SQL> create table emp 2 ( empno 3 , ename 4 , init 5 , job 6 , mgr 7 , bdate 8 , sal 9 , comm 10 , deptno 11 ) ; NUMBER(4) VARCHAR2(8) VARCHAR2(5) VARCHAR2(8) NUMBER(4) DATE NUMBER(6,2) NUMBER(6,2) NUMBER(2) default 10 constraint E_PK primary key
Table created.
SQL> insert into emp values(1,'Tom','N', 'Coder', 13,date '1965-12-17', 800 , NULL, 20);
1 row created.
SQL> insert into emp values(2,'Jack','JAM', 'Tester',6,date '1961-02-20', 1600, 300, 30);
1 row created.
SQL> insert into emp values(3,'Wil','TF' , 'Tester',6,date '1962-02-22', 1250, 500, 30);
1 row created.
SQL> insert into emp values(4,'Jane','JM', 'Designer', 9,date '1967-04-02', 2975, NULL, 20);
1 row created.
SQL> insert into emp values(5,'Mary','P', 'Tester',6,date '1956-09-28', 1250, 1400, 30);
1 row created.
SQL> insert into emp values(6,'Black','R', 'Designer', 9,date '1963-11-01', 2850, NULL, 30);
1 row created.
SQL> insert into emp values(7,'Chris','AB', 'Designer', 9,date '1965-06-09', 2450, NULL, 10);
1 row created.
SQL> insert into emp values(8,'Smart','SCJ', 'Coder', 4,date '1959-11-26', 3000, NULL, 20);
1 row created.
SQL> insert into emp values(9,'Peter','CC', 'Designer',NULL,date '1952-11-17', 5000, NULL, 10);
1 row created.
30);
1 row created.
SQL> insert into emp values(11,'Ana','AA', 'Coder', 8,date '1966-12-30', 1100, NULL, 20);
1 row created.
SQL> insert into emp values(12,'Jane','R', 'Manager', 6,date '1969-12-03', 800 , NULL, 30);
1 row created.
SQL> insert into emp values(13,'Fake','MG', 'Coder', 4,date '1959-02-13', 3000, NULL, 20);
1 row created.
SQL> insert into emp values(14,'Mike','TJA','Manager', 7,date '1962-01-23', 1300, NULL, 10);
1 row created.
SQL> SQL> select ename, init, sal 2 from emp 3 where sal >= 3000;
ENAME
INIT
SAL
Table dropped.
SQL> SQL> create table emp 2 ( empno 3 , ename 4 , init 5 , job 6 , mgr 7 , bdate 8 , sal 9 , comm 10 , deptno 11 ) ; NUMBER(4) VARCHAR2(8) VARCHAR2(5) VARCHAR2(8) NUMBER(4) DATE NUMBER(6,2) NUMBER(6,2) NUMBER(2) default 10 constraint E_PK primary key
Table created.
SQL> insert into emp values(1,'Tom','N', 'Coder', 13,date '1965-12-17', 800 , NULL, 20);
1 row created.
SQL> insert into emp values(2,'Jack','JAM', 'Tester',6,date '1961-02-20', 1600, 300, 30);
1 row created.
SQL> insert into emp values(3,'Wil','TF' , 'Tester',6,date '1962-02-22', 1250, 500, 30);
1 row created.
SQL> insert into emp values(4,'Jane','JM', 'Designer', 9,date '1967-04-02', 2975, NULL, 20);
1 row created.
SQL> insert into emp values(5,'Mary','P', 'Tester',6,date '1956-09-28', 1250, 1400, 30);
1 row created.
SQL> insert into emp values(6,'Black','R', 'Designer', 9,date '1963-11-01', 2850, NULL, 30);
1 row created.
SQL> insert into emp values(7,'Chris','AB', 'Designer', 9,date '1965-06-09', 2450, NULL, 10);
1 row created.
SQL> insert into emp values(8,'Smart','SCJ', 'Coder', 4,date '1959-11-26', 3000, NULL, 20);
1 row created.
SQL> insert into emp values(9,'Peter','CC', 'Designer',NULL,date '1952-11-17', 5000, NULL, 10);
1 row created.
30);
1 row created.
SQL> insert into emp values(11,'Ana','AA', 'Coder', 8,date '1966-12-30', 1100, NULL, 20);
1 row created.
SQL> insert into emp values(12,'Jane','R', 'Manager', 6,date '1969-12-03', 800 , NULL, 30);
1 row created.
SQL> insert into emp values(13,'Fake','MG', 'Coder', 4,date '1959-02-13', 3000, NULL, 20);
1 row created.
SQL> insert into emp values(14,'Mike','TJA','Manager', 7,date '1962-01-23', 1300, NULL, 10);
1 row created.
SQL> SQL> select ename, job, deptno 2 from emp 3 where deptno <= 10;
ENAME
JOB
DEPTNO
Table dropped.
SQL> create table emp 2 ( empno 3 , ename 4 , init 5 , job 6 , mgr 7 , bdate 8 , sal 9 , comm 10 , deptno 11 ) ; NUMBER(4) VARCHAR2(8) VARCHAR2(5) VARCHAR2(8) NUMBER(4) DATE NUMBER(6,2) NUMBER(6,2) NUMBER(2) default 10 constraint E_PK primary key
Table created.
SQL> insert into emp values(1,'Tom','N', 'Coder', 13,date '1965-12-17', 800 , NULL, 20);
1 row created.
SQL> insert into emp values(2,'Jack','JAM', 'Tester',6,date '1961-02-20', 1600, 300, 30);
1 row created.
SQL> insert into emp values(3,'Wil','TF' , 'Tester',6,date '1962-02-22', 1250, 500, 30);
1 row created.
SQL> insert into emp values(4,'Jane','JM', 'Designer', 9,date '1967-04-02', 2975, NULL, 20);
1 row created.
SQL> insert into emp values(5,'Mary','P', 'Tester',6,date '1956-09-28', 1250, 1400, 30);
1 row created.
SQL> insert into emp values(6,'Black','R', 'Designer', 9,date '1963-11-01', 2850, NULL, 30);
1 row created.
SQL> insert into emp values(7,'Chris','AB', 'Designer', 9,date '1965-06-09', 2450, NULL, 10);
1 row created.
SQL> insert into emp values(8,'Smart','SCJ', 'Coder', 4,date '1959-11-26', 3000, NULL, 20);
1 row created.
SQL> insert into emp values(9,'Peter','CC', 'Designer',NULL,date '1952-11-17', 5000, NULL, 10);
1 row created.
30);
1 row created.
SQL> insert into emp values(11,'Ana','AA', 'Coder', 8,date '1966-12-30', 1100, NULL, 20);
1 row created.
SQL> insert into emp values(12,'Jane','R', 'Manager', 6,date '1969-12-03', 800 , NULL, 30);
1 row created.
SQL> insert into emp values(13,'Fake','MG', 'Coder', 4,date '1959-02-13', 3000, NULL, 20);
1 row created.
SQL> insert into emp values(14,'Mike','TJA','Manager', 7,date '1962-01-23', 1300, NULL, 10);
1 row created.
SQL> SQL> select ename, job, deptno 2 from emp 3 where deptno NOT > 10; where deptno NOT > 10 * ERROR at line 3: ORA-00920: invalid relational operator
Table dropped.
VARCHAR2(10 BYTE), VARCHAR2(10 BYTE), DATE, DATE, Number(8,2), VARCHAR2(10 BYTE), VARCHAR2(15 BYTE)
10 ) 11 / Table created.
SQL> SQL> -- prepare data SQL> insert into Employee(ID, First_Name, Last_Name, Start_Date, End_Date, Salary, City, Description) 2 values ('01','Jason', 'Martin', to_date('19960725','YYYYMMDD'), to_date('20060725','YYYYMMDD'), 1234.56, 'Toronto', 'Programmer') 3 /
1 row created.
SQL> insert into Employee(ID, First_Name, Last_Name, Start_Date, End_Date, Salary, City, Description) 2 values('02','Alison', 'Mathews', to_date('19760321','YYYYMMDD'), to_date('19860221','YYYYMMDD'), 6661.78, 'Vancouver','Tester') 3 /
1 row created.
SQL> insert into Employee(ID, First_Name, Last_Name, Start_Date, End_Date, Salary, City, Description) 2 values('03','James', 'Smith', to_date('19781212','YYYYMMDD'), to_date('19900315','YYYYMMDD'), 6544.78, 'Vancouver','Tester') 3 /
1 row created.
SQL> insert into Employee(ID, First_Name, Last_Name, Start_Date, End_Date, Salary, City, Description) 2 values('04','Celia', 'Rice', to_date('19821024','YYYYMMDD'), to_date('19990421','YYYYMMDD'), 2344.78, 'Vancouver','Manager') 3 /
1 row created.
SQL> insert into Employee(ID, First_Name, Last_Name, Start_Date, End_Date, Salary, City, Description) 2 values('05','Robert', 'Black', to_date('19840115','YYYYMMDD'), to_date('19980808','YYYYMMDD'), 2334.78, 'Vancouver','Tester') 3 /
1 row created.
SQL> insert into Employee(ID, First_Name, Last_Name, Start_Date, End_Date, Salary, City, Description) 2 values('06','Linda', 'Green', to_date('19870730','YYYYMMDD'), to_date('19960104','YYYYMMDD'), 4322.78,'New York', 'Tester') 3 / 1 row created. SQL> insert into Employee(ID, First_Name, Last_Name, Start_Date, End_Date, Salary, City, Description) 2 values('07','David', 'Larry', to_date('19901231','YYYYMMDD'), to_date('19980212','YYYYMMDD'), 7897.78,'New York', 'Manager') 3 / 1 row created.
SQL> insert into Employee(ID, First_Name, Last_Name, Start_Date, End_Date, Salary, City, Description) 2 values('08','James', 'Cat', to_date('19960917','YYYYMMDD'), to_date('20020415','YYYYMMDD'), 1232.78,'Vancouver', 'Tester') 3 /
1 row created.
SQL> SQL> SQL> SQL> -- display data in the table SQL> select * from Employee 2 /
START_DAT END_DATE
SALARY
---- -------------------- -------------------- --------- --------- ---------- ---------- --------------01 Jason 02 Alison 03 James 04 Celia 05 Robert 06 Linda 07 David Martin Mathews Smith Rice Black Green Larry 25-JUL-96 25-JUL-06 1234.56 Toronto Programmer
21-MAR-76 21-FEB-86 12-DEC-78 15-MAR-90 24-OCT-82 21-APR-99 15-JAN-84 08-AUG-98 30-JUL-87 04-JAN-96 31-DEC-90 12-FEB-98
2344.78 Vancouver Manager 2334.78 Vancouver Tester 4322.78 New York Tester 7897.78 New York Manager
08 James
Cat
17-SEP-96 15-APR-02
8 rows selected.
SQL> SQL> SQL> SELECT * FROM employee WHERE start_date > '01-JAN-1970' AND id > 3;
START_DAT END_DATE
SALARY
---- -------------------- -------------------- --------- --------- ---------- ---------- --------------04 Celia 05 Robert 06 Linda 07 David 08 James Rice Black Green Larry Cat 24-OCT-82 21-APR-99 15-JAN-84 08-AUG-98 30-JUL-87 04-JAN-96 31-DEC-90 12-FEB-98 17-SEP-96 15-APR-02 2344.78 Vancouver Manager 2334.78 Vancouver Tester 4322.78 New York Tester 7897.78 New York Manager 1232.78 Vancouver Tester
5 rows selected.
SQL> SQL> -- create demo table SQL> create table Employee( 2 3 4 5 6 7 8 9 ID First_Name Last_Name Start_Date End_Date Salary City Description VARCHAR2(4 BYTE) NOT NULL primary key,
VARCHAR2(10 BYTE), VARCHAR2(10 BYTE), DATE, DATE, Number(8,2), VARCHAR2(10 BYTE), VARCHAR2(15 BYTE)
10 ) 11 /
Table created.
SQL> insert into Employee(ID, First_Name, Last_Name, Start_Date, End_Date, Salary, City, Description) 2 values ('01','Jason', 'Martin', to_date('19960725','YYYYMMDD'), to_date('20060725','YYYYMMDD'), 1234.56, 'Toronto', 'Programmer') 3 /
1 row created.
SQL> insert into Employee(ID, First_Name, Last_Name, Start_Date, End_Date, Salary, City, Description) 2 values('02','Alison', 'Mathews', to_date('19760321','YYYYMMDD'), to_date('19860221','YYYYMMDD'), 6661.78, 'Vancouver','Tester') 3 /
1 row created.
SQL> insert into Employee(ID, First_Name, Last_Name, Start_Date, End_Date, Salary, City, Description) 2 values('03','James', 'Smith', to_date('19781212','YYYYMMDD'), to_date('19900315','YYYYMMDD'), 6544.78, 'Vancouver','Tester') 3 /
1 row created.
SQL> insert into Employee(ID, First_Name, Last_Name, Start_Date, End_Date, Salary, City, Description) 2 values('04','Celia', 'Rice', to_date('19821024','YYYYMMDD'), to_date('19990421','YYYYMMDD'), 2344.78, 'Vancouver','Manager')
3 /
1 row created.
SQL> insert into Employee(ID, First_Name, Last_Name, Start_Date, End_Date, Salary, City, Description) 2 values('05','Robert', 'Black', to_date('19840115','YYYYMMDD'), to_date('19980808','YYYYMMDD'), 2334.78, 'Vancouver','Tester') 3 /
1 row created.
SQL> insert into Employee(ID, First_Name, Last_Name, Start_Date, End_Date, Salary, City, Description) 2 values('06','Linda', 'Green', to_date('19870730','YYYYMMDD'), to_date('19960104','YYYYMMDD'), 4322.78,'New York', 'Tester') 3 /
1 row created.
SQL> insert into Employee(ID, First_Name, Last_Name, Start_Date, End_Date, Salary, City, Description) 2 values('07','David', 'Larry', to_date('19901231','YYYYMMDD'), to_date('19980212','YYYYMMDD'), 7897.78,'New York', 'Manager') 3 /
1 row created.
SQL> insert into Employee(ID, First_Name, Last_Name, Start_Date, End_Date, Salary, City, Description) 2 values('08','James', 'Cat', to_date('19960917','YYYYMMDD'), to_date('20020415','YYYYMMDD'), 1232.78,'Vancouver', 'Tester') 3 /
1 row created.
SQL> SQL> SQL> SQL> -- display data in the table SQL> select * from Employee 2 /
START_DAT END_DATE
SALARY
---- -------------------- -------------------- --------- --------- ---------- ---------- --------------01 Jason 02 Alison 03 James 04 Celia 05 Robert 06 Linda 07 David Martin Mathews Smith Rice Black Green Larry 25-JUL-96 25-JUL-06 1234.56 Toronto Programmer
21-MAR-76 21-FEB-86 12-DEC-78 15-MAR-90 24-OCT-82 21-APR-99 15-JAN-84 08-AUG-98 30-JUL-87 04-JAN-96 31-DEC-90 12-FEB-98
2344.78 Vancouver Manager 2334.78 Vancouver Tester 4322.78 New York Tester 7897.78 New York Manager
08 James
Cat
17-SEP-96 15-APR-02
8 rows selected.
SQL> SQL> SQL> SQL> SELECT * FROM employee WHERE start_date > '01-JAN-1970' OR id > 3;
START_DAT END_DATE
SALARY
---- -------------------- -------------------- --------- --------- ---------- ---------- --------------01 Jason 02 Alison 03 James 04 Celia 05 Robert 06 Linda 07 David 08 James Martin Mathews Smith Rice Black Green Larry Cat 25-JUL-96 25-JUL-06 1234.56 Toronto Programmer
21-MAR-76 21-FEB-86 12-DEC-78 15-MAR-90 24-OCT-82 21-APR-99 15-JAN-84 08-AUG-98 30-JUL-87 04-JAN-96 31-DEC-90 12-FEB-98 17-SEP-96 15-APR-02
2344.78 Vancouver Manager 2334.78 Vancouver Tester 4322.78 New York Tester 7897.78 New York Manager 1232.78 Vancouver Tester
8 rows selected.
SQL> SQL>
SQL> SQL> SQL> -- clean the table SQL> drop table Employee 2 /
Table dropped.
SQL> SQL>
SQL> SQL> SQL> -- create demo table SQL> create table Employee( 2 3 4 5 6 7 8 9 ID First_Name Last_Name Start_Date End_Date Salary City Description VARCHAR2(4 BYTE) NOT NULL,
VARCHAR2(10 BYTE), VARCHAR2(10 BYTE), DATE, DATE, Number(8,2), VARCHAR2(10 BYTE), VARCHAR2(15 BYTE)
10 ) 11 /
Table created.
SQL> SQL> -- prepare data SQL> insert into Employee(ID, First_Name, Last_Name, Start_Date, End_Date, Salary, City, Description) 2 values ('01','Jason', 'Martin', to_date('19960725','YYYYMMDD'), to_date('20060725','YYYYMMDD'), 1234.56, 'Toronto', 'Programmer') 3 /
1 row created.
SQL> insert into Employee(ID, First_Name, Last_Name, Start_Date, End_Date, Salary, City, Description) 2 values('02','Alison', 'Mathews', to_date('19760321','YYYYMMDD'), to_date('19860221','YYYYMMDD'), 6661.78, 'Vancouver','Tester') 3 /
1 row created.
SQL> insert into Employee(ID, First_Name, Last_Name, Start_Date, End_Date, Salary, City, Description) 2 values('03','James', 'Smith', to_date('19781212','YYYYMMDD'), to_date('19900315','YYYYMMDD'), 6544.78, 'Vancouver','Tester')
3 /
1 row created.
SQL> insert into Employee(ID, First_Name, Last_Name, Start_Date, End_Date, Salary, City, Description) 2 values('04','Celia', 'Rice', to_date('19821024','YYYYMMDD'), to_date('19990421','YYYYMMDD'), 2344.78, 'Vancouver','Manager') 3 /
1 row created.
SQL> insert into Employee(ID, First_Name, Last_Name, Start_Date, End_Date, Salary, City, Description) 2 values('05','Robert', 'Black', to_date('19840115','YYYYMMDD'), to_date('19980808','YYYYMMDD'), 2334.78, 'Vancouver','Tester') 3 /
1 row created.
SQL> insert into Employee(ID, First_Name, Last_Name, Start_Date, End_Date, Salary, City, Description) 2 values('06','Linda', 'Green', to_date('19870730','YYYYMMDD'), to_date('19960104','YYYYMMDD'), 4322.78,'New York', 'Tester') 3 /
1 row created.
SQL> insert into Employee(ID, First_Name, Last_Name, Start_Date, End_Date, Salary, City, Description) 2 values('07','David', 'Larry', to_date('19901231','YYYYMMDD'), to_date('19980212','YYYYMMDD'), 7897.78,'New York', 'Manager') 3 /
1 row created.
SQL> insert into Employee(ID, First_Name, Last_Name, Start_Date, End_Date, Salary, City, Description) 2 values('08','James', 'Cat', to_date('19960917','YYYYMMDD'), to_date('20020415','YYYYMMDD'), 1232.78,'Vancouver', 'Tester') 3 /
1 row created.
SQL> SQL> SQL> SQL> -- display data in the table SQL> select * from Employee 2 /
ID FIRST_NAME LAST_NAME START_DAT END_DATE DESCRIPTION ---- ---------- ---------- --------- --------- ---------- ---------- --------------01 Jason 02 Alison 03 James 04 Celia 05 Robert 06 Linda 07 David 08 James Martin Mathews Smith Rice Black Green Larry Cat 25-JUL-96 25-JUL-06 1234.56 Toronto
SALARY CITY
Programmer
24-OCT-82 21-APR-99 15-JAN-84 08-AUG-98 30-JUL-87 04-JAN-96 31-DEC-90 12-FEB-98 17-SEP-96 15-APR-02
2344.78 Vancouver Manager 2334.78 Vancouver Tester 4322.78 New York Tester 7897.78 New York Manager 1232.78 Vancouver Tester
8 rows selected.
SQL> SQL> SQL> SELECT * FROM employee WHERE not(start_date > '01-JAN-1970');
no rows selected
SQL> SQL> SQL> SQL> -- clean the table SQL> drop table Employee
The comparison operators take precedence over AND. You can override these using parentheses. SQL> -- create demo table SQL> create table Employee( 2 3 4 5 6 7 8 9 ID First_Name Last_Name Start_Date End_Date Salary City Description VARCHAR2(4 BYTE) NOT NULL,
VARCHAR2(10 BYTE), VARCHAR2(10 BYTE), DATE, DATE, Number(8,2), VARCHAR2(10 BYTE), VARCHAR2(15 BYTE)
10 ) 11 /
Table created.
SQL>
SQL> -- prepare data SQL> insert into Employee(ID, First_Name, Last_Name, Start_Date, End_Date, Salary, City, Description) 2 values ('01','Jason', 'Martin', to_date('19960725','YYYYMMDD'), to_date('20060725','YYYYMMDD'), 1234.56, 'Toronto', 'Programmer') 3 /
1 row created.
SQL> insert into Employee(ID, First_Name, Last_Name, Start_Date, End_Date, Salary, City, Description) 2 values('02','Alison', 'Mathews', to_date('19760321','YYYYMMDD'), to_date('19860221','YYYYMMDD'), 6661.78, 'Vancouver','Tester') 3 /
1 row created.
SQL> insert into Employee(ID, First_Name, Last_Name, Start_Date, End_Date, Salary, City, Description) 2 values('03','James', 'Smith', to_date('19781212','YYYYMMDD'), to_date('19900315','YYYYMMDD'), 6544.78, 'Vancouver','Tester') 3 /
1 row created.
SQL> insert into Employee(ID, First_Name, Last_Name, Start_Date, End_Date, Salary, City, Description)
1 row created.
SQL> insert into Employee(ID, First_Name, Last_Name, Start_Date, End_Date, Salary, City, Description) 2 values('05','Robert', 'Black', to_date('19840115','YYYYMMDD'), to_date('19980808','YYYYMMDD'), 2334.78, 'Vancouver','Tester') 3 /
1 row created.
SQL> insert into Employee(ID, First_Name, Last_Name, Start_Date, End_Date, Salary, City, Description) 2 values('06','Linda', 'Green', to_date('19870730','YYYYMMDD'), to_date('19960104','YYYYMMDD'), 4322.78,'New York', 'Tester') 3 /
1 row created.
SQL> insert into Employee(ID, First_Name, Last_Name, Start_Date, End_Date, Salary, City, Description) 2 values('07','David', 'Larry', to_date('19901231','YYYYMMDD'), to_date('19980212','YYYYMMDD'), 7897.78,'New York', 'Manager') 3 /
1 row created.
SQL> insert into Employee(ID, First_Name, Last_Name, Start_Date, End_Date, Salary, City, Description) 2 values('08','James', 'Cat', to_date('19960917','YYYYMMDD'), to_date('20020415','YYYYMMDD'), 1232.78,'Vancouver', 'Tester') 3 /
1 row created.
SQL> SQL> SQL> SQL> -- display data in the table SQL> select * from Employee 2 /
ID FIRST_NAME LAST_NAME START_DAT END_DATE DESCRIPTION ---- ---------- ---------- --------- --------- ---------- ---------- --------------01 Jason 02 Alison 03 James 04 Celia 05 Robert 06 Linda Martin Mathews Smith Rice Black Green 25-JUL-96 25-JUL-06 1234.56 Toronto
SALARY CITY
Programmer
2344.78 Vancouver Manager 2334.78 Vancouver Tester 4322.78 New York Tester
07 David 08 James
Larry Cat
8 rows selected. SQL> SQL> SQL> SQL> SELECT * FROM employee 2 WHERE Start_Date > '01-JAN-1970' OR id < 2 AND first_name LIKE '%e'; ID FIRST_NAME LAST_NAME START_DAT END_DATE DESCRIPTION ---- ---------- ---------- --------- --------- ---------- ---------- --------------01 Jason 02 Alison 03 James 04 Celia 05 Robert 06 Linda 07 David 08 James Martin Mathews Smith Rice Black Green Larry Cat 25-JUL-96 25-JUL-06 1234.56 Toronto Programmer SALARY CITY
24-OCT-82 21-APR-99 15-JAN-84 08-AUG-98 30-JUL-87 04-JAN-96 31-DEC-90 12-FEB-98 17-SEP-96 15-APR-02
2344.78 Vancouver Manager 2334.78 Vancouver Tester 4322.78 New York Tester 7897.78 New York Manager 1232.78 Vancouver Tester
8 rows selected.
SQL> -- clean the table SQL> drop table Employee 2 / Table dropped.
A database use null value to represent a unknown value. A null value is not a blank string. A null value means the value for the column is unknown. When you select a column that contains a null value, you see nothing in that column. SQL> -- create demo table SQL> create table Employee( 2 3 4 5 6 7 8 9 ID First_Name Last_Name Start_Date End_Date Salary City Description VARCHAR2(4 BYTE) NOT NULL,
VARCHAR2(10 BYTE), VARCHAR2(10 BYTE), DATE, DATE, Number(8,2), VARCHAR2(10 BYTE), VARCHAR2(15 BYTE)
10 ) 11 /
Table created.
SQL> insert into Employee(ID, First_Name, Last_Name, Start_Date, End_Date, Salary, City, Description) 2 values ('01','Jason', 'Martin', to_date('19960725','YYYYMMDD'), to_date('20060725','YYYYMMDD'), 1234.56, 'Toronto', 'Programmer') 3 /
1 row created.
SQL> insert into Employee(ID, First_Name, Last_Name, Start_Date, End_Date, Salary, City, Description) 2 values('02','Alison', 'Mathews', to_date('19760321','YYYYMMDD'), to_date('19860221','YYYYMMDD'), 6661.78, 'Vancouver','Tester') 3 /
1 row created.
SQL> insert into Employee(ID, First_Name, Last_Name, Start_Date, End_Date, Salary, City, Description) 2 values('03','James', 'Smith', to_date('19781212','YYYYMMDD'), to_date('19900315','YYYYMMDD'), 6544.78, 'Vancouver','Tester') 3 /
1 row created.
SQL> insert into Employee(ID, First_Name, Last_Name, Start_Date, End_Date, Salary, City, Description) 2 values('04','Celia', 'Rice', to_date('19821024','YYYYMMDD'), to_date('19990421','YYYYMMDD'), 2344.78, 'Vancouver','Manager')
3 /
1 row created.
SQL> insert into Employee(ID, First_Name, Last_Name, Start_Date, End_Date, Salary, City, Description) 2 values('05','Robert', 'Black', to_date('19840115','YYYYMMDD'), to_date('19980808','YYYYMMDD'), 2334.78, 'Vancouver','Tester') 3 /
1 row created.
SQL> insert into Employee(ID, First_Name, Last_Name, Start_Date, End_Date, Salary, City, Description) 2 values('06','Linda', 'Green', to_date('19870730','YYYYMMDD'), to_date('19960104','YYYYMMDD'), 4322.78,'New York', 'Tester') 3 /
1 row created.
SQL> insert into Employee(ID, First_Name, Last_Name, Start_Date, End_Date, Salary, City, Description) 2 values('07','David', 'Larry', to_date('19901231','YYYYMMDD'), to_date('19980212','YYYYMMDD'), 7897.78,'New York', 'Manager') 3 /
1 row created.
SQL> insert into Employee(ID, First_Name, Last_Name, Start_Date, End_Date, Salary, City, Description) 2 values('08',NULL, 'Cat', to_date('19960917','YYYYMMDD'), to_date('20020415','YYYYMMDD'), 1232.78,'Vancouver', 'Tester') 3 /
1 row created.
SQL> SQL> SQL> SQL> -- display data in the table SQL> select first_name from Employee 2 /
8 rows selected.
SQL> SQL> SQL> SQL> SQL> SQL> -- clean the table SQL> drop table Employee 2 /
Table dropped.
1. 5. 2. How do you tell the difference between a null value and a blank string if you retrieve all the rows?
The answer is to use one of Oracle's built-in functions: NVL(). NVL() allows you to convert a null value into another value. NVL() accepts two parameters: a column, and the value that should be substituted.
In the following example, NVL() is used to convert a null value in the first_name column to the string Unknown First Name: SQL> -- create demo table SQL> create table Employee( 2 ID VARCHAR2(4 BYTE) NOT NULL,
3 4 5 6 7 8 9
VARCHAR2(10 BYTE), VARCHAR2(10 BYTE), DATE, DATE, Number(8,2), VARCHAR2(10 BYTE), VARCHAR2(15 BYTE)
10 ) 11 /
Table created.
SQL> SQL> -- prepare data SQL> insert into Employee(ID, First_Name, Last_Name, Start_Date, End_Date, Salary, City, Description) 2 values ('01','Jason', 'Martin', to_date('19960725','YYYYMMDD'), to_date('20060725','YYYYMMDD'), 1234.56, 'Toronto', 'Programmer') 3 /
1 row created.
SQL> insert into Employee(ID, First_Name, Last_Name, Start_Date, End_Date, Salary, City, Description) 2 values('02','Alison', 'Mathews', to_date('19760321','YYYYMMDD'), to_date('19860221','YYYYMMDD'), 6661.78, 'Vancouver','Tester') 3 /
1 row created.
SQL> insert into Employee(ID, First_Name, Last_Name, Start_Date, End_Date, Salary, City, Description) 2 values('03','James', 'Smith', to_date('19781212','YYYYMMDD'), to_date('19900315','YYYYMMDD'), 6544.78, 'Vancouver','Tester') 3 /
1 row created.
SQL> insert into Employee(ID, First_Name, Last_Name, Start_Date, End_Date, Salary, City, Description) 2 values('04','Celia', 'Rice', to_date('19821024','YYYYMMDD'), to_date('19990421','YYYYMMDD'), 2344.78, 'Vancouver','Manager') 3 /
1 row created.
SQL> insert into Employee(ID, First_Name, Last_Name, Start_Date, End_Date, Salary, City, Description) 2 values('05','Robert', 'Black', to_date('19840115','YYYYMMDD'), to_date('19980808','YYYYMMDD'), 2334.78, 'Vancouver','Tester') 3 /
1 row created.
SQL> insert into Employee(ID, First_Name, Last_Name, Start_Date, End_Date, Salary, City, Description) 2 values('06','Linda', 'Green', to_date('19870730','YYYYMMDD'), to_date('19960104','YYYYMMDD'), 4322.78,'New York', 'Tester') 3 /
1 row created.
SQL> insert into Employee(ID, First_Name, Last_Name, Start_Date, End_Date, Salary, City, Description) 2 values('07','David', 'Larry', to_date('19901231','YYYYMMDD'), to_date('19980212','YYYYMMDD'), 7897.78,'New York', 'Manager') 3 /
1 row created.
SQL> insert into Employee(ID, First_Name, Last_Name, Start_Date, End_Date, Salary, City, Description) 2 values('08',NULL, 'Cat', to_date('19960917','YYYYMMDD'), to_date('20020415','YYYYMMDD'), 1232.78,'Vancouver', 'Tester') 3 /
1 row created.
ID FIRST_NAME LAST_NAME START_DAT END_DATE DESCRIPTION ---- ---------- ---------- --------- --------- ---------- ---------- --------------01 Jason 02 Alison 03 James 04 Celia 05 Robert 06 Linda 07 David 08 Martin Mathews Smith Rice Black Green Larry Cat 25-JUL-96 25-JUL-06 1234.56 Toronto
SALARY CITY
Programmer
2344.78 Vancouver Manager 2334.78 Vancouver Tester 4322.78 New York Tester 7897.78 New York Manager
17-SEP-96 15-APR-02
8 rows selected.
SQL> SQL> SQL> SELECT id, first_name, last_name, NVL(first_name, 'Unknown First Name') FROM employee;
ID FIRST_NAME LAST_NAME NVL(FIRST_NAME,'UN ---- ---------- ---------- -----------------01 Jason Martin Jason
Alison James
8 rows selected.
Table dropped.
SQL>
SQL> SQL> SQL> -- create demo table SQL> create table Employee( 2 3 4 5 6 7 8 9 ID First_Name Last_Name Start_Date End_Date Salary City Description VARCHAR2(4 BYTE) NOT NULL,
VARCHAR2(10 BYTE), VARCHAR2(10 BYTE), DATE, DATE, Number(8,2), VARCHAR2(10 BYTE), VARCHAR2(15 BYTE)
10 ) 11 /
Table created.
SQL> SQL> -- prepare data SQL> insert into Employee(ID, First_Name, Last_Name, Start_Date, End_Date, Salary, City, Description) 2 values ('01','Jason', 'Martin', to_date('19960725','YYYYMMDD'), to_date('20060725','YYYYMMDD'), 1234.56, 'Toronto', 'Programmer') 3 /
1 row created.
SQL> insert into Employee(ID, First_Name, Last_Name, Start_Date, End_Date, Salary, City, Description) 2 values('02','Alison', 'Mathews', to_date('19760321','YYYYMMDD'), to_date('19860221','YYYYMMDD'), 6661.78, 'Vancouver','Tester') 3 /
1 row created.
SQL> insert into Employee(ID, First_Name, Last_Name, Start_Date, End_Date, Salary, City, Description) 2 values('03','James', 'Smith', to_date('19781212','YYYYMMDD'), to_date('19900315','YYYYMMDD'), 6544.78, 'Vancouver','Tester') 3 /
1 row created.
SQL> insert into Employee(ID, First_Name, Last_Name, Start_Date, End_Date, Salary, City, Description) 2 values('04','Celia', 'Rice', to_date('19821024','YYYYMMDD'), to_date('19990421','YYYYMMDD'), 2344.78, 'Vancouver','Manager') 3 /
1 row created.
SQL> insert into Employee(ID, First_Name, Last_Name, Start_Date, End_Date, Salary, City, Description) 2 values('05','Robert', 'Black', to_date('19840115','YYYYMMDD'), to_date('19980808','YYYYMMDD'), 2334.78, 'Vancouver','Tester') 3 /
1 row created.
SQL> insert into Employee(ID, First_Name, Last_Name, Start_Date, End_Date, Salary, City, Description) 2 values('06','Linda', 'Green', to_date('19870730','YYYYMMDD'), to_date('19960104','YYYYMMDD'), 4322.78,'New York', 'Tester') 3 /
1 row created.
SQL> insert into Employee(ID, First_Name, Last_Name, Start_Date, End_Date, Salary, City, Description) 2 values('07','David', 'Larry', to_date('19901231','YYYYMMDD'), to_date('19980212','YYYYMMDD'), 7897.78,'New York', 'Manager') 3 /
1 row created.
SQL> insert into Employee(ID, First_Name, Last_Name, Start_Date, End_Date, Salary, City, Description) 2 values('08','James', 'Cat', to_date('19960917','YYYYMMDD'), to_date('20020415','YYYYMMDD'), 1232.78,'Vancouver', 'Tester')
3 /
1 row created.
SQL> SQL> SQL> SQL> -- display data in the table SQL> select * from Employee 2 /
ID FIRST_NAME LAST_NAME START_DAT END_DATE DESCRIPTION ---- ---------- ---------- --------- --------- ---------- ---------- --------------01 Jason 02 Alison 03 James 04 Celia 05 Robert 06 Linda 07 David 08 James Martin Mathews Smith Rice Black Green Larry Cat 25-JUL-96 25-JUL-06 1234.56 Toronto
SALARY CITY
Programmer
24-OCT-82 21-APR-99 15-JAN-84 08-AUG-98 30-JUL-87 04-JAN-96 31-DEC-90 12-FEB-98 17-SEP-96 15-APR-02
2344.78 Vancouver Manager 2334.78 Vancouver Tester 4322.78 New York Tester 7897.78 New York Manager 1232.78 Vancouver Tester
8 rows selected.
SQL> SQL> SQL> VARIABLE average_salary NUMBER; SQL> SQL> UPDATE employee 2 SET salary = salary * 0.75 3 RETURNING AVG(salary) INTO :average_salary;
8 rows updated.
AVERAGE_SALARY -------------3053.81875
SQL> SQL> SQL> -- clean the table SQL> drop table Employee 2 /
Table dropped.
SQL> SQL> SQL> -- create demo table SQL> create table Employee( 2 3 4 5 6 7 8 9 ID First_Name Last_Name Start_Date End_Date Salary City Description VARCHAR2(4 BYTE) NOT NULL,
VARCHAR2(10 BYTE), VARCHAR2(10 BYTE), DATE, DATE, Number(8,2), VARCHAR2(10 BYTE), VARCHAR2(15 BYTE)
10 ) 11 /
Table created.
SQL> SQL> -- prepare data SQL> insert into Employee(ID, First_Name, Last_Name, Start_Date, End_Date, Salary, City, Description) 2 values ('01','Jason', 'Martin', to_date('19960725','YYYYMMDD'), to_date('20060725','YYYYMMDD'), 1234.56, 'Toronto', 'Programmer') 3 /
1 row created.
SQL> insert into Employee(ID, First_Name, Last_Name, Start_Date, End_Date, Salary, City, Description) 2 values('02','Alison', 'Mathews', to_date('19760321','YYYYMMDD'), to_date('19860221','YYYYMMDD'), 6661.78, 'Vancouver','Tester') 3 /
1 row created.
SQL> insert into Employee(ID, First_Name, Last_Name, Start_Date, End_Date, Salary, City, Description) 2 values('03','James', 'Smith', to_date('19781212','YYYYMMDD'), to_date('19900315','YYYYMMDD'), 6544.78, 'Vancouver','Tester') 3 /
1 row created.
SQL> insert into Employee(ID, First_Name, Last_Name, Start_Date, End_Date, Salary, City, Description) 2 values('04','Celia', 'Rice', to_date('19821024','YYYYMMDD'), to_date('19990421','YYYYMMDD'), 2344.78, 'Vancouver','Manager') 3 /
1 row created.
SQL> insert into Employee(ID, First_Name, Last_Name, Start_Date, End_Date, Salary, City, Description) 2 values('05','Robert', 'Black', to_date('19840115','YYYYMMDD'), to_date('19980808','YYYYMMDD'), 2334.78, 'Vancouver','Tester') 3 /
1 row created.
SQL> insert into Employee(ID, First_Name, Last_Name, Start_Date, End_Date, Salary, City, Description) 2 values('06','Linda', 'Green', to_date('19870730','YYYYMMDD'), to_date('19960104','YYYYMMDD'), 4322.78,'New York', 'Tester') 3 /
1 row created.
SQL> insert into Employee(ID, First_Name, Last_Name, Start_Date, End_Date, Salary, City, Description) 2 values('07','David', 'Larry', to_date('19901231','YYYYMMDD'), to_date('19980212','YYYYMMDD'), 7897.78,'New York', 'Manager') 3 /
1 row created.
SQL> insert into Employee(ID, First_Name, Last_Name, Start_Date, End_Date, Salary, City, Description) 2 values('08','James', 'Cat', to_date('19960917','YYYYMMDD'), to_date('20020415','YYYYMMDD'), 1232.78,'Vancouver', 'Tester')
3 /
1 row created.
SQL> SQL> SQL> SQL> -- display data in the table SQL> select * from Employee 2 /
ID FIRST_NAME LAST_NAME START_DAT END_DATE DESCRIPTION ---- ---------- ---------- --------- --------- ---------- ---------- --------------01 Jason 02 Alison 03 James 04 Celia 05 Robert 06 Linda 07 David 08 James Martin Mathews Smith Rice Black Green Larry Cat 25-JUL-96 25-JUL-06 1234.56 Toronto
SALARY CITY
Programmer
24-OCT-82 21-APR-99 15-JAN-84 08-AUG-98 30-JUL-87 04-JAN-96 31-DEC-90 12-FEB-98 17-SEP-96 15-APR-02
2344.78 Vancouver Manager 2334.78 Vancouver Tester 4322.78 New York Tester 7897.78 New York Manager 1232.78 Vancouver Tester
8 rows selected.
SQL> SQL> SQL> VARIABLE average_salary NUMBER; SQL> SQL> UPDATE employee 2 SET salary = salary * 0.75 3 RETURNING AVG(salary) INTO :average_salary;
8 rows updated.
AVERAGE_SALARY -------------3053.81875
SQL> SQL> SQL> -- clean the table SQL> drop table Employee 2 / Table dropped.
SQL> SQL> SQL> SET SERVEROUTPUT ON ESCAPE OFF SQL> /* SQL> DECLARE SQL> v_price BOOKS.PRICE%TYPE;
SQL> BEGIN SQL> SQL> SQL> EXCEPTION SQL> SQL> WHEN OTHERS THEN DBMS_OUTPUT.PUT_LINE (SQLERRM);
1. 8. 2. multiple-line commenting
SQL> /* SQL> This script is designed to show how multiple-line commenting SQL> SQL> SQL> works. SQL> SQL> */
10 ) 11 / Table created.
SQL> SQL> -- prepare data SQL> insert into Employee(ID, First_Name, Last_Name, Start_Date, End_Date, Salary, City, Description) 2 values ('01','Jason', 'Martin', to_date('19960725','YYYYMMDD'), to_date('20060725','YYYYMMDD'), 1234.56, 'Toronto', 'Programmer') 3 /
1 row created.
SQL> insert into Employee(ID, First_Name, Last_Name, Start_Date, End_Date, Salary, City, Description) 2 values('02','Alison', 'Mathews', to_date('19760321','YYYYMMDD'), to_date('19860221','YYYYMMDD'), 6661.78, 'Vancouver','Tester') 3 /
1 row created.
SQL> insert into Employee(ID, First_Name, Last_Name, Start_Date, End_Date, Salary, City, Description) 2 values('03','James', 'Smith', to_date('19781212','YYYYMMDD'), to_date('19900315','YYYYMMDD'), 6544.78, 'Vancouver','Tester') 3 /
1 row created.
SQL> insert into Employee(ID, First_Name, Last_Name, Start_Date, End_Date, Salary, City, Description) 2 values('04','Celia', 'Rice', to_date('19821024','YYYYMMDD'), to_date('19990421','YYYYMMDD'), 2344.78, 'Vancouver','Manager') 3 /
1 row created.
SQL> insert into Employee(ID, First_Name, Last_Name, Start_Date, End_Date, Salary, City, Description) 2 values('05','Robert', 'Black', to_date('19840115','YYYYMMDD'), to_date('19980808','YYYYMMDD'), 2334.78, 'Vancouver','Tester') 3 /
1 row created.
SQL> insert into Employee(ID, First_Name, Last_Name, Start_Date, End_Date, Salary, City, Description) 2 values('06','Linda', 'Green', to_date('19870730','YYYYMMDD'), to_date('19960104','YYYYMMDD'), 4322.78,'New York', 'Tester') 3 /
1 row created.
SQL> insert into Employee(ID, First_Name, Last_Name, Start_Date, End_Date, Salary, City, Description) 2 values('07','David', 'Larry', to_date('19901231','YYYYMMDD'), to_date('19980212','YYYYMMDD'), 7897.78,'New York', 'Manager')
3 /
1 row created.
SQL> insert into Employee(ID, First_Name, Last_Name, Start_Date, End_Date, Salary, City, Description) 2 values('08','James', 'Cat', to_date('19960917','YYYYMMDD'), to_date('20020415','YYYYMMDD'), 1232.78,'Vancouver', 'Tester') 3 /
1 row created.
SQL> SQL> SQL> SQL> -- display data in the table SQL> select * from Employee 2 /
START_DAT END_DATE
SALARY
---- -------------------- -------------------- --------- --------- ---------- ---------- --------------01 Jason 02 Alison 03 James Martin Mathews Smith 25-JUL-96 25-JUL-06 1234.56 Toronto Programmer
24-OCT-82 21-APR-99 15-JAN-84 08-AUG-98 30-JUL-87 04-JAN-96 31-DEC-90 12-FEB-98 17-SEP-96 15-APR-02
2344.78 Vancouver Manager 2334.78 Vancouver Tester 4322.78 New York Tester 7897.78 New York Manager 1232.78 Vancouver Tester
8 rows selected.
SQL> SQL> SQL> SQL> SET SERVEROUTPUT ON ESCAPE OFF SQL> SQL> DECLARE 2 v_salary employee.salary%TYPE;
3 BEGIN 4 5 6 7 8 9 10 11 12 v_salary := v_salary * .9; DBMS_OUTPUT.PUT_LINE('The original salary for id 7 was: '||v_salary); SELECT salary INTO v_salary FROM employee WHERE id = '07';
19 -- DBMS_OUTPUT.PUT_LINE('The new salary for id 7 is: '||v_salary); 20 21 EXCEPTION 22 23 WHEN OTHERS THEN DBMS_OUTPUT.PUT_LINE (SQLERRM);
SQL> SQL> SQL> -- clean the table SQL> drop table Employee 2 / Table dropped.
SQL>
Entity: An entity maps something in the real world. For example, departments within an organization, employees, or sales.
Attribute: Represent information about an entity instance or an object. For example, the birth date or Social Security number of an employee.
Entities (classes) are implemented in the database as tables. Attributes are implemented in the database as columns. Instances (objects) are implemented in the database as rows. A primary key uniquely identifies a specific instance of an entity. No two instances of an entity can have the same primary key. The values of all parts of the primary key must never be null. The most common types of primary keys in relational databases are ID numbers. Sometimes more than one attribute (or sets of attributes) can be used as a primary key.
Database normalization is useful for several reasons: It helps to build a structure that is logical and easy to maintain. Normalized databases are the industry standard. Retrieving data will be easier. First Normal Form means that the database doesn't contain any repeating attributes. Violations of Second Normal Form occur when the table contains attributes that depend on a portion of the primary key. Second Normal Form violations can exist only when you have a multi-column primary key. Third Normal Form violations occur when a transitive dependency exists. All attributes in entities (columns in tables) must be dependent upon the primary key or one of the candidate keys and not on other attributes.