0% found this document useful (0 votes)
99 views

As

The document shows SQL commands used to create a WORKER table with columns for worker ID, name, salary, hire date and department. Errors are encountered when initially defining the salary check constraint and inserting date values. The table is recreated with different data types to resolve the errors. A BONUS table is then attempted to be created with a foreign key to the WORKER table, but a syntax error occurs.

Uploaded by

SHASHWAT Arya
Copyright
© © All Rights Reserved
We take content rights seriously. If you suspect this is your content, claim it here.
Available Formats
Download as TXT, PDF, TXT or read online on Scribd
0% found this document useful (0 votes)
99 views

As

The document shows SQL commands used to create a WORKER table with columns for worker ID, name, salary, hire date and department. Errors are encountered when initially defining the salary check constraint and inserting date values. The table is recreated with different data types to resolve the errors. A BONUS table is then attempted to be created with a foreign key to the WORKER table, but a syntax error occurs.

Uploaded by

SHASHWAT Arya
Copyright
© © All Rights Reserved
We take content rights seriously. If you suspect this is your content, claim it here.
Available Formats
Download as TXT, PDF, TXT or read online on Scribd
You are on page 1/ 10

SQL> create table worker(

2 WORKER_ID NUMBER(3) PRIMARY KEY,


3 FIRST_NAME VARCHAR(25) NOT NULL,
4 LAST_NAME VARCHAR(25) NOT NULL,
5 SALARY NUMBER(15) CHECK(SAL<=100000),
6 JOINING_DATE DATE NOT NULL,
7 DEPARTMENT VARCHAR(10) NOT NULL);
SALARY NUMBER(15) CHECK(SAL<=100000),
*
ERROR at line 5:
ORA-02438: Column check constraint cannot reference other columns

SQL> ED
Wrote file afiedt.buf

1 create table worker(


2 WORKER_ID NUMBER(3) PRIMARY KEY,
3 FIRST_NAME VARCHAR(25) NOT NULL,
4 LAST_NAME VARCHAR(25) NOT NULL,
5 SALARY NUMBER(15) CHECK(SALARY<=100000),
6 JOINING_DATE DATE NOT NULL,
7* DEPARTMENT VARCHAR(10) NOT NULL)
SQL> /

Table created.

SQL> INSERT INTO WORKER VALUES(001,'MONIKA','ARORA',100000,to_date('2014-02-


20','yyy-mm-dd','09:00:00'),'HR');
INSERT INTO WORKER VALUES(001,'MONIKA','ARORA',100000,to_date('2014-02-20','yyy-mm-
dd','09:00:00'),'HR')

*
ERROR at line 1:
ORA-12702: invalid NLS parameter string used in SQL function

SQL> INSERT INTO WORKER VALUES(001,'MONIKA','ARORA',100000,to_date('2014-02-


20','yyy-mm-dd'),'HR');
INSERT INTO WORKER VALUES(001,'MONIKA','ARORA',100000,to_date('2014-02-20','yyy-mm-
dd'),'HR')
*
ERROR at line 1:
ORA-01861: literal does not match format string

SQL> DESC WORKER


Name Null? Type
----------------------------------------- -------- ----------------------------
WORKER_ID NOT NULL NUMBER(3)
FIRST_NAME NOT NULL VARCHAR2(25)
LAST_NAME NOT NULL VARCHAR2(25)
SALARY NUMBER(15)
JOINING_DATE NOT NULL DATE
DEPARTMENT NOT NULL VARCHAR2(10)

SQL> INSERT INTO WORKER VALUES(001,'MONIKA','ARORA',100000,to_date('2014-02-20


09:00:00','yyy-mm-dd HH12:mi:ss'),'HR');
INSERT INTO WORKER VALUES(001,'MONIKA','ARORA',100000,to_date('2014-02-20
09:00:00','yyy-mm-dd HH12:mi:ss'),'HR')
*
ERROR at line 1:
ORA-01861: literal does not match format string

SQL> INSERT INTO WORKER VALUES(001,'MONIKA','ARORA',100000,to_date('2014-02-20


09:00:00','yyyy-mm-dd HH12:mi:ss'),'HR');

1 row created.

SQL> ed
Wrote file afiedt.buf

1* INSERT INTO WORKER VALUES(002,'NIHARIKA','VERMA',80000,to_date('2014-06-11


09:00:00','yyyy-mm-dd HH12:mi:ss'),'ADMIN')
SQL> /

1 row created.

SQL> ED
Wrote file afiedt.buf

1* INSERT INTO WORKER VALUES(003,'VISHAL','SINGHAL',300000,to_date('2014-06-11


09:00:00','yyyy-mm-dd HH12:mi:ss'),'ADMIN')
SQL> /
INSERT INTO WORKER VALUES(003,'VISHAL','SINGHAL',300000,to_date('2014-06-11
09:00:00','yyyy-mm-dd HH12:mi:ss'),'ADMIN')
*
ERROR at line 1:
ORA-02290: check constraint (SYSTEM.SYS_C007524) violated

SQL> alter table worker DROP CONSTRAINT SYSTEM.SYS_C007524;


alter table worker DROP CONSTRAINT SYSTEM.SYS_C007524
*
ERROR at line 1:
ORA-01735: invalid ALTER TABLE option

SQL> DELETE FROM worker;

2 rows deleted.

SQL> drop worker


2 ;
drop worker
*
ERROR at line 1:
ORA-00950: invalid DROP option

SQL> drop worker;


drop worker
*
ERROR at line 1:
ORA-00950: invalid DROP option
SQL> drop table worker;

Table dropped.

SQL> create table worker(


2 WORKER_ID NUMBER(3) PRIMARY KEY,
3 FIRST_NAME VARCHAR(25) NOT NULL,
4 LAST_NAME VARCHAR(25) NOT NULL,
5 SALARY NUMBER(15) CHECK(SALARY<=500000),
6 JOINING_DATE DATE NOT NULL,
7 DEPARTMENT VARCHAR(10) NOT NULL);

Table created.

SQL> INSERT INTO WORKER VALUES(001,'MONIKA','ARORA',100000,to_date('2014-02-20


09:00:00','yyyy-mm-dd HH12:mi:ss'),'HR');

1 row created.

SQL> INSERT INTO WORKER VALUES(002,'NIHARIKA','VERMA',80000,to_date('2014-06-11


09:00:00','yyyy-mm-dd HH12:mi:ss'),'ADMIN');

1 row created.

SQL> INSERT INTO WORKER VALUES(003,'VISHAL','SINGHAL',300000,to_date('2014-02-11


09:00:00','yyyy-mm-dd HH12:mi:ss'),'HR')
2 ;

1 row created.

SQL> INSERT INTO WORKER VALUES(004,'AMITABH','SINGH',500000,to_date('2014-02-20


09:00:00','yyyy-mm-dd HH12:mi:ss'),'ADMIN');

1 row created.

SQL> SELECT * FROM WORKER;

WORKER_ID FIRST_NAME LAST_NAME SALARY


---------- ------------------------- ------------------------- ----------
JOINING_D DEPARTMENT
--------- ----------
1 MONIKA ARORA 100000
20-FEB-14 HR

2 NIHARIKA VERMA 80000


11-JUN-14 ADMIN

3 VISHAL SINGHAL 300000


11-FEB-14 HR

WORKER_ID FIRST_NAME LAST_NAME SALARY


---------- ------------------------- ------------------------- ----------
JOINING_D DEPARTMENT
--------- ----------
4 AMITABH SINGH 500000
20-FEB-14 ADMIN
SQL> SET LINESIZE 100;
SQL> SET PAGESIZE 300;
SQL> SELECT * FROM WORKER;

WORKER_ID FIRST_NAME LAST_NAME SALARY JOINING_D


DEPARTMENT
---------- ------------------------- ------------------------- ---------- ---------
----------
1 MONIKA ARORA 100000 20-FEB-14
HR
2 NIHARIKA VERMA 80000 11-JUN-14
ADMIN
3 VISHAL SINGHAL 300000 11-FEB-14
HR
4 AMITABH SINGH 500000 20-FEB-14
ADMIN

SQL> drop table worker;

Table dropped.

SQL> create table worker(


2 WORKER_ID NUMBER(3) PRIMARY KEY,
3 FIRST_NAME VARCHAR(25) NOT NULL,
4 LAST_NAME VARCHAR(25) NOT NULL,
5 SALARY NUMBER(15) CHECK(SALARY<=100000),
6 JOINING_DATE VARCHAR(25) NOT NULL,
7 DEPARTMENT VARCHAR(10) NOT NULL);

Table created.

SQL> DESC WORKER;


Name Null? Type
----------------------------------------------------- --------
------------------------------------
WORKER_ID NOT NULL NUMBER(3)
FIRST_NAME NOT NULL VARCHAR2(25)
LAST_NAME NOT NULL VARCHAR2(25)
SALARY NUMBER(15)
JOINING_DATE NOT NULL VARCHAR2(25)
DEPARTMENT NOT NULL VARCHAR2(10)

SQL> INSERT INTO WORKER VALUES(001,'MONIKA','ARORA',100000,'2014-02-20


09:00:00','HR');

1 row created.

SQL> INSERT INTO WORKER VALUES(002,'NIHARIKA','VERMA',80000,'2014-06-11


09:00:00','ADMIN');

1 row created.

SQL> INSERT INTO WORKER VALUES(003,'VISHAL','SINGHAL',300000,'2014-02-11


09:00:00','HR');
INSERT INTO WORKER VALUES(003,'VISHAL','SINGHAL',300000,'2014-02-11
09:00:00','HR')
*
ERROR at line 1:
ORA-02290: check constraint (SYSTEM.SYS_C007536) violated
SQL> INSERT INTO WORKER VALUES(004,'AMITABH','SINGH',500000,'2014-02-20
09:00:00','ADMIN');
INSERT INTO WORKER VALUES(004,'AMITABH','SINGH',500000,'2014-02-20
09:00:00','ADMIN')
*
ERROR at line 1:
ORA-02290: check constraint (SYSTEM.SYS_C007536) violated

SQL> drop table worker;

Table dropped.

SQL> create table worker(


2 WORKER_ID NUMBER(3) PRIMARY KEY,
3 FIRST_NAME VARCHAR(25) NOT NULL,
4 LAST_NAME VARCHAR(25) NOT NULL,
5 SALARY NUMBER(15) CHECK(SALARY<=500000),
6 JOINING_DATE VARCHAR(25) NOT NULL,
7 DEPARTMENT VARCHAR(10) NOT NULL);

Table created.

SQL> INSERT INTO WORKER VALUES(001,'MONIKA','ARORA',100000,'2014-02-20


09:00:00','HR');

1 row created.

SQL> INSERT INTO WORKER VALUES(002,'NIHARIKA','VERMA',80000,'2014-06-11


09:00:00','ADMIN');

1 row created.

SQL> INSERT INTO WORKER VALUES(003,'VISHAL','SINGHAL',300000,'2014-02-11


09:00:00','HR');

1 row created.

SQL> INSERT INTO WORKER VALUES(004,'AMITABH','SINGH',500000,'2014-02-20


09:00:00','ADMIN');

1 row created.

SQL> SET LINESIZE 100;


SQL> SET PAGESIZE 300;
SQL> SELECT * FROM WORKER;

WORKER_ID FIRST_NAME LAST_NAME SALARY


JOINING_DATE
---------- ------------------------- ------------------------- ----------
-------------------------
DEPARTMENT

----------

1 MONIKA ARORA 100000 2014-02-


20 09:00:00
HR

2 NIHARIKA VERMA 80000 2014-06-


11 09:00:00
ADMIN

3 VISHAL SINGHAL 300000 2014-02-


11 09:00:00
HR

4 AMITABH SINGH 500000 2014-02-


20 09:00:00
ADMIN

SQL> SET LINESIZE 150;


SQL> SELECT * FROM WORKER;

WORKER_ID FIRST_NAME LAST_NAME SALARY


JOINING_DATE DEPARTMENT
---------- ------------------------- ------------------------- ----------
------------------------- ----------
1 MONIKA ARORA 100000 2014-02-
20 09:00:00 HR
2 NIHARIKA VERMA 80000 2014-06-
11 09:00:00 ADMIN
3 VISHAL SINGHAL 300000 2014-02-
11 09:00:00 HR
4 AMITABH SINGH 500000 2014-02-
20 09:00:00 ADMIN

SQL> create table BONUS(


2 WORKER_ID NUMBER(3) FOREIGN KEY,
3 BONUS_DATE VARCHAR(25) NOT NULL,
4 BONUS_AMOUNT NUMBER(15) CHECK(SALARY<=5000));
WORKER_ID NUMBER(3) FOREIGN KEY,
*
ERROR at line 2:
ORA-00907: missing right parenthesis

SQL> INSERT INTO WORKER VALUES(001,'MONIKA','ARORA',100000,'2014-02-20


09:00:00','HR');create table BONUS(
2 WORKER_ID NUMBER(3) FOREIGN KEY REFRENCES WORKER WORKER_ID,
3 BONUS_DATE VARCHAR(25) NOT NULL,
4 BONUS_AMOUNT NUMBER(15) CHECK(SALARY<=5000));
INSERT INTO WORKER VALUES(001,'MONIKA','ARORA',100000,'2014-02-20
09:00:00','HR');create table BONUS(
*
ERROR at line 1:
ORA-00933: SQL command not properly ended
SQL> create table BONUS(
2 WORKER_ID NUMBER(3) FOREIGN KEY REFRENCES WORKER WORKER_ID,
3 BONUS_DATE VARCHAR(25) NOT NULL,
4 BONUS_AMOUNT NUMBER(15) CHECK(SALARY<=5000));
WORKER_ID NUMBER(3) FOREIGN KEY REFRENCES WORKER WORKER_ID,
*
ERROR at line 2:
ORA-00907: missing right parenthesis

SQL> create table BONUS(


2 WORKER_ID NUMBER(3),
3 BONUS_DATE VARCHAR(25) NOT NULL,
4 BONUS_AMOUNT NUMBER(15) CHECK(SALARY<=5000)
5 CONSTRAINT FK_BONUS FOREIGN KEY (WORKER_ID) REFERENCES WORKER(WORKER_id));
CONSTRAINT FK_BONUS FOREIGN KEY (WORKER_ID) REFERENCES WORKER(WORKER_id))
*
ERROR at line 5:
ORA-02438: Column check constraint cannot reference other columns

SQL> create table BONUS(


2 WORKER_ID NUMBER(3),
3 BONUS_DATE VARCHAR(25) NOT NULL,
4 BONUS_AMOUNT NUMBER(15) CHECK(SALARY<=5000));
BONUS_AMOUNT NUMBER(15) CHECK(SALARY<=5000))
*
ERROR at line 4:
ORA-02438: Column check constraint cannot reference other columns

SQL> create table BONUS(


2 WORKER_ID NUMBER(3),
3 BONUS_DATE VARCHAR(25) NOT NULL,
4 BONUS_AMOUNT NUMBER(15) CHECK(BONUS_AMOUNT<=5000)
5 CONSTRAINT FK_BONUS FOREIGN KEY (WORKER_ID) REFERENCES WORKER(WORKER_id));
CONSTRAINT FK_BONUS FOREIGN KEY (WORKER_ID) REFERENCES WORKER(WORKER_id))
*
ERROR at line 5:
ORA-02253: constraint specification not allowed here

SQL> ED
Wrote file afiedt.buf

1 create table BONUS(


2 WORKER_ID NUMBER(3),
3 BONUS_DATE VARCHAR(25) NOT NULL,
4* BONUS_AMOUNT NUMBER(15) CHECK(BONUS_AMOUNT<=5000)
5 /;
/
*
ERROR at line 5:
ORA-00907: missing right parenthesis

SQL> ED
Wrote file afiedt.buf

1 create table BONUS(


2 WORKER_ID NUMBER(3),
3 BONUS_DATE VARCHAR(25) NOT NULL,
4* BONUS_AMOUNT NUMBER(15) CHECK(BONUS_AMOUNT<=5000))
5 ;

Table created.

SQL> ALTER TABLE BONUS ADD FOREIGN KEY(WORKER_ID) REFERENCES Persons(WORKER_ID);


ALTER TABLE BONUS ADD FOREIGN KEY(WORKER_ID) REFERENCES Persons(WORKER_ID)
*
ERROR at line 1:
ORA-00904: "WORKER_ID": invalid identifier

SQL> ALTER TABLE BONUS ADD FOREIGN KEY(WORKER_ID) REFERENCES WORKER(WORKER_ID);

Table altered.

SQL> INSERT INTO BONUS VALUES(1,'2016-02-20 00:00:00',5000);

1 row created.

SQL> INSERT INTO BONUS VALUES(2, '2016-02-20 00:00:00','3000');

1 row created.

SQL> INSERT INTO BONUS VALUES(3,'2016-02-20 00:00:00',4000);

1 row created.

SQL> INSERT INTO BONUS VALUES(1, '2016-02-20 00:00:00','4500');

1 row created.

SQL>
SQL> SPOOL
currently spooling to c:/as.doc
SQL> SELECT * FROM WORKER;

WORKER_ID FIRST_NAME LAST_NAME SALARY


JOINING_DATE DEPARTMENT
---------- ------------------------- ------------------------- ----------
------------------------- ----------
1 MONIKA ARORA 100000 2014-02-
20 09:00:00 HR
2 NIHARIKA VERMA 80000 2014-06-
11 09:00:00 ADMIN
3 VISHAL SINGHAL 300000 2014-02-
11 09:00:00 HR
4 AMITABH SINGH 500000 2014-02-
20 09:00:00 ADMIN

SQL> SELECT * FROM BONUS;

WORKER_ID BONUS_DATE BONUS_AMOUNT


---------- ------------------------- ------------

1 2016-02-20 00:00:00 5000

2 2016-02-20 00:00:00 3000

3 2016-02-20 00:00:00 4000

1 2016-02-20 00:00:00 4500

SQL> SELECT DISTINCT DEPARTMENT AS DEPARTMENT FROM WORKER;

DEPARTMENT

----------

ADMIN

HR

SQL> SELECT DISTINCT DEPARTMENT FROM WORKER;

DEPARTMENT

----------

ADMIN

HR

SQL> SELECT * FROM WORKER ORDER BY FIRST_NAME ASC,LAST_NAME DESC;

WORKER_ID FIRST_NAME LAST_NAME SALARY


JOINING_DATE DEPARTMENT
---------- ------------------------- ------------------------- ----------
------------------------- ----------
4 AMITABH SINGH 500000 2014-02-
20 09:00:00 ADMIN
1 MONIKA ARORA 100000 2014-02-
20 09:00:00 HR
2 NIHARIKA VERMA 80000 2014-06-
11 09:00:00 ADMIN
3 VISHAL SINGHAL 300000 2014-02-
11 09:00:00 HR

SQL> SELECT * from worker where first_name ='Vipul' and 'Satish';


SELECT * from worker where first_name ='Vipul' and 'Satish'
*
ERROR at line 1:
ORA-00920: invalid relational operator

SQL> Select * from Worker where FIRST_NAME in ('Vipul','Satish');

no rows selected
SQL> Select * from Worker where department='admin';

no rows selected

SQL> Select * from Worker where department='ADMIN';

WORKER_ID FIRST_NAME LAST_NAME SALARY


JOINING_DATE DEPARTMENT
---------- ------------------------- ------------------------- ----------
------------------------- ----------
2 NIHARIKA VERMA 80000 2014-06-
11 09:00:00 ADMIN
4 AMITABH SINGH 500000 2014-02-
20 09:00:00 ADMIN

SQL> Select * from Worker where FIRST_NAME like '%a%';

no rows selected

SQL> Select * from Worker where FIRST_NAME like '%A%';

WORKER_ID FIRST_NAME LAST_NAME SALARY


JOINING_DATE DEPARTMENT
---------- ------------------------- ------------------------- ----------
------------------------- ----------
1 MONIKA ARORA 100000 2014-02-
20 09:00:00 HR
2 NIHARIKA VERMA 80000 2014-06-
11 09:00:00 ADMIN
3 VISHAL SINGHAL 300000 2014-02-
11 09:00:00 HR
4 AMITABH SINGH 500000 2014-02-
20 09:00:00 ADMIN

SQL> Select * from Worker where FIRST_NAME like '_____h';

no rows selected

SQL> Select * from Worker where FIRST_NAME like '_____H';

no rows selected

SQL> Select * from Worker where FIRST_NAME like '______H';

WORKER_ID FIRST_NAME LAST_NAME SALARY


JOINING_DATE DEPARTMENT
---------- ------------------------- ------------------------- ----------
------------------------- ----------
4 AMITABH SINGH 500000 2014-02-
20 09:00:00 ADMIN

SQL> SPOOL OFF

You might also like