0% found this document useful (0 votes)
32 views7 pages

ANSWERS: (A) Create/Alter/Drop Table Commands

Uploaded by

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

ANSWERS: (A) Create/Alter/Drop Table Commands

Uploaded by

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

Answers to SQL Practice Questions

ANSWERS: (A) Create/Alter/Drop Table Commands:


CREATE TABLE EMP
(emp_num
int ,
emp_fname char(20)
WITH DEFAULT 'unknown' ,
emp_lname char(20)
NOT NULL ,
job_class
char(3) ,
hiredate
date
NOT NULL ,
CONSTRAINT emp_pk PRIMARY KEY (emp_num) ,
CONSTRAINT job_fk FOREIGN KEY (job_class)
REFERENCES job (job_code)
CONSTRAINT emp_lname_uk UNIQUE ( emp_lname ) ,
CONSTRAINT hiredate_ck CHECK ( hiredate >= '1/1/1990' )
)
2. CREATE TABLE JOB (
job_code
char( 3 ) ,
job_class
char( 30 ) ,
chg_hour
decimal (5,2) WITH DEFAULT 15 ,
CONSTRAINT job_pk PRIMARY KEY (job_code) ,
CONSTRAINT job_class_ck CHECK ( chg_hour >= 15 )
)
3.

ALTER TABLE job


ADD COLUMN
overtimeCharge dec (6,2) NOT NULL

4.

ALTER TABLE job


ADD CONSTRAINT
charge_ck CHECK( chg_hour >= 25 )

5.

ALTER TABLE job


ALTER column
Job_Class set default 'NA'

6.

ALTER TABLE job


ALTER column
Chg_Hour set NOT NULL

7.

ALTER TABLE job


ALTER column
Chg_Hour set data type decimal (12,2)

8.

ALTER TABLE job


DROP constraint

charge_ck

9.

ALTER TABLE job


DROP COLUMN overtimeCharge

10.

ALTER TABLE job


DROP COLUMN chg_hour

11.

DROP TABLE job

12.

DROP TABLE emp

ANSWERS: (B) Data Manipulation Commands:


1. Insert the last 3 rows shown into the EMP table.
INSERT into emp ( emp_num, emp_fname, emp_lname, job_class, hiredate )
VALUES
( 106, 'William', 'Smithfield', 'PRG', '10/31/2002' ),
INSERT into emp ( emp_num, emp_fname, emp_lname )
VALUES
( 114, 'Annelise', 'Jones' )
INSERT into emp ( emp_num, emp_lname )
VALUES ( 118, 'Frommer' )

2. Update the employee fname to Jim instead of James for employee 118
(Note: if no WHERE clause is used, then all records are updated)
UPDATE emp
SET emp_fname = 'Jim'
WHERE emp_num = 118
3. Update the Database Designer chg_hour value by 10%
UPDATE job
SET chg_hour = chg_hour * 1.1
WHERE job_class = 'Database Designer'

4. Remove the row from the job table for job code PRG
( Note: if no WHERE clause is used, then all records are deleted )
DELETE
FROM job
WHERE job_code = 'PRG'

5. Remove the JOB table and all of it's data


DROP TABLE job

6. Remove the employees from the employee table WHERE the hiredate is before 1-Jan-90
DELETE
FROM emp
WHERE hiredate < '1-Jan-90'

7. Remove the emp table and all of it's data


DROP TABLE emp

ANSWER: (C) Select Commands:


1. Show the employee first and last names and their job class description and hourly charge.
SELECT

FROM
WHERE

emp.emp_fname ,
emp.emp_lname ,
job.job_class ,
job.chg_hour
emp, job
emp.job_class = job.job_code

2. Same question as above, but only show the records WHERE the chg_hour is <100
SELECT

FROM
WHERE
AND

emp.emp_fname ,
emp.emp_lname ,
job.job_class ,
job.chg_hour
emp, job
emp.job_class = job.job_code
job.chg_hour = < 100

3. Select the hours worked and lastname and hiredate for all employees.
(Note: the default for all selects is to show all records that are joined. The above statement has no
further conditions for the WHERE clause)
SELECT
FROM
WHERE

emp.emp_lname ,
emp.hiredate ,
proj_emp.hour
emp, proj_emp
emp.emp_num = proj_emp.emp_num

4. Create a view called: WORK_INFO which will select the hours worked and lastname and hiredate for
all employees hired before 1-jan-02.
(Note: the default for all selects is to show all records that are joined. The above statement has no
further conditions for the WHERE clause)
CREATE VIEW WORK_INFO as
SELECT
emp.emp_lname ,
emp.hiredate ,
proj_emp.hour
FROM
emp, proj_emp
WHERE
emp.emp_num = proj_emp.emp_num
AND
emp.hiredate < '1-jan-02'
5. Select employee fname and lname and all projects that they are working on. Save this select statement
as a view called: EMP_PROJECTS
(Note: the default for all selects is to show all records that are joined. The above statement has no
further conditions for the WHERE clause)
CREATE VIEW EMP_PROJECTS as
SELECT
emp.emp_fname ,
emp.emp_lname ,
project.proj_name
FROM
emp, project , proj_emp
WHERE
proj_emp.proj_num = project.proj_num
AND
proj_emp.emp_num = emp.emp_num
6. Select employee fname and lname and all projects that they are working on for
project 18.
SELECT
FROM
WHERE
AND
AND

emp.emp_fname ,
emp.emp_lname ,
project.proj_name
emp, project , proj_emp
proj_emp.proj_num = project.proj_num
proj_emp.emp_num = emp.emp_num
project.proj_num = 18

7. Select all project names and job class descriptions that the project requires.
Save this select statement as a view called: EMP_JOB_SKILLS
CREATE VIEW EMP_JOB_SKILLS as
SELECT
project.proj_name , job.job_class
FROM
project , job , emp, proj_emp
WHERE
proj_emp.proj_num = project.proj_num
AND
proj_emp.emp_num = emp.emp_num
AND
emp.job_class = job.job_code

8. Select all project names and job class descriptions that the project requires for only the job code of
DBD. Save this statement as a view called: DATABASE_DESIGNERS
CREATE VIEW DATABASE_DESIGNERS as
SELECT
project.proj_name ,
job.job_class
FROM
project , job , emp, proj_emp
WHERE
proj_emp.proj_num = project.proj_num
AND
proj_emp.emp_num = emp.emp_num
AND
emp.job_class = job.job_code
AND
emp.job_class = 'DBD'

9. Select customer first and last name, credit limit, and salesrep first and last name WHERE the credit
limit is >= 1500.
SELECT

customer.first_name, customer.last_name,
customer.credit_limit,
salesrep.last_name as salesLastName,
salesrep.first_name as salesFirstName
FROM premiere/customer, premiere/salesrep
WHERE customer.credit_limit >= 1500

You might also like