All Exams Test series for 1 year @ ₹349 only
Question

Comprehension: Consider the following table structures related to a university for given questions.

EMPLOYEE

NAME

VARCHAR (30)

NOT NULL,

EID

VARCHAR (10)

NOT NULL,

DEPTNO

INT (5)

NOT NULL,

HODEID

VARCHAR (10),

SALARY

INT (10),

PRIMARY KEY (EID),

FOREIGN KEY (HODEID) REFRENCES EMPLOYEE (EID),

FOREIGN KEY (DEPTNO) REFRENCES DEPARTMENT (DID);

DEPARTMENT

DID

INT (5)

NOT NULL,

DNAME

VARCHAR (30)

NOT NULL,

HODID

VARCHAR (10)

NOT NULL,

HODNAME

VARCHAR (30),

PRIMARY KEY (DID),

UNIQUE (DNAME),

FOREIGN KEY (HODID) REFERENCES EMPLOYEE (EID),

PROJECT WORE:

EMPID

VARCHAR (10)

NOT NULL,

PROJNO

INT (5)

NOT NULL,

PROJECTLOC

VARCHAR (30)

NOT NULL,

PRIMARY KEY (EMPID, PROJNQ),

FOREIGN KEY (EMPID) REFERENCES EMPLOYEE (EID),

In reference to the above given table structures, which of the following query/queries will drop the ‘SALARY’ column from 'EMPLOYEE' table ?

(A) ALTER TABLE EMPLOYEE DROP SALARY CASCADE;

(B) ALTER TABLE EMPLOYEE DROP SALARY RESTRICT;

(C) ALTER EMPLOYEE DROP SALARY:

Choose the correct answer from the options given below:

The correct answer is

(A) and (B) only

Understanding SQL Queries to Drop a Column

The question asks which SQL queries can be used to remove the 'SALARY' column from the 'EMPLOYEE' table based on the provided database structure. We need to examine the syntax of the SQL ALTER TABLE statement used for dropping columns.

Analyzing the ALTER TABLE DROP COLUMN Syntax

The standard SQL syntax to remove a column from an existing table is:

ALTER TABLE table_name DROP COLUMN column_name;

Some database systems might support variations or additional options like CASCADE or RESTRICT, which are typically used to handle dependencies when dropping tables or constraints. They might have specific meanings when used with DROP COLUMN depending on the SQL dialect.

Let's evaluate each query provided:

  • Query (A): ALTER TABLE EMPLOYEE DROP SALARY CASCADE;

    This query uses the ALTER TABLE statement with the DROP clause to remove the 'SALARY' column and includes the CASCADE option. In some SQL dialects, CASCADE with DROP COLUMN means that any objects that depend on the column (like views, indices, or constraints specifically referencing this column) would also be dropped or altered accordingly. Since the 'SALARY' column is a simple data column and is not referenced as a foreign key or used in any shown constraints or views, dropping it, even with CASCADE, is typically permissible and will succeed.

  • Query (B): ALTER TABLE EMPLOYEE DROP SALARY RESTRICT;

    This query uses the ALTER TABLE statement with the DROP clause and includes the RESTRICT option. In some SQL dialects, RESTRICT with DROP COLUMN means that the column drop would fail if there are any dependent objects. As with CASCADE, the 'SALARY' column has no listed dependencies. Therefore, dropping it with RESTRICT is also typically permissible and will succeed because there are no dependencies to restrict the operation.

  • Query (C): ALTER EMPLOYEE DROP SALARY:

    This query uses an abbreviated form of the ALTER TABLE statement, omitting the keyword TABLE. While some database systems (like MySQL) support this shorthand syntax, it is not part of the standard SQL specification and might not be supported by all database systems. Based on the provided correct option, this syntax is considered incorrect in the context of this question.

Based on the analysis and the provided correct answer indicating that (A) and (B) are the valid queries, it implies that in the specific SQL environment this question is based on, both ALTER TABLE EMPLOYEE DROP SALARY CASCADE; and ALTER TABLE EMPLOYEE DROP SALARY RESTRICT; are accepted syntax variations for dropping a column, and both succeed because the 'SALARY' column has no dependencies. The query ALTER EMPLOYEE DROP SALARY: is not considered valid.

Therefore, the queries that will drop the 'SALARY' column from the 'EMPLOYEE' table are (A) and (B) only.

Revision Table: ALTER TABLE DROP COLUMN

SQL Command Part Purpose Notes
ALTER TABLE Modifies an existing table structure. Required to change table definition.
table_name The name of the table to modify (e.g., EMPLOYEE). Must be an existing table.
DROP COLUMN Specifies that a column will be removed. Followed by the column name.
column_name The name of the column to remove (e.g., SALARY). Must be an existing column.
CASCADE Handles dependencies (if supported by dialect). May drop dependent objects. Often used for tables/constraints.
RESTRICT Prevents drop if dependencies exist (if supported by dialect). Drop fails if dependent objects exist. Often used for tables/constraints.

Additional Information on SQL ALTER TABLE

The ALTER TABLE statement is a powerful Data Definition Language (DDL) command used to change the structure of an existing table. Besides dropping columns, it can be used for various other modifications:

  • Adding columns: ALTER TABLE table_name ADD column_name datatype constraints;
  • Modifying column definitions: ALTER TABLE table_name MODIFY column_name datatype constraints; (Syntax varies across systems, e.g., ALTER COLUMN in SQL Server).
  • Dropping constraints: ALTER TABLE table_name DROP CONSTRAINT constraint_name;
  • Adding constraints: ALTER TABLE table_name ADD CONSTRAINT constraint_name constraint_definition;
  • Renaming tables or columns: Syntax varies widely across database systems.

The behavior of CASCADE and RESTRICT options can differ significantly between various SQL database systems like MySQL, PostgreSQL, SQL Server, and Oracle. While standard SQL defines some behaviors, vendors often implement their own extensions or variations.

For dropping a simple column like 'SALARY' that is not part of a key or constraint and is not referenced by other objects, the basic DROP COLUMN command is usually sufficient and behaves the same as using CASCADE or RESTRICT if those options are supported and applicable to column drops.

Was this answer helpful?

Important Questions from SQL

  1. In SQL, _______ is an Aggregate function.

  2. Match the following -

    List IList II
    (a)DDL(i)LOCK TABLE
    (b)DML(ii)COMMIT
    (c)TCL(iii)Natural Difference
    (d)Binary operation(iv)REVOKE
  3. In SQL, which of the following command is used to modify a column in a table?

  4. Which of the following keyword is used to eliminate duplicate records in SQL?

  5. _______ SQL command changes one or more fields in a record.

Need Expert Advice?

Start Your Preparation with Prepp Mobile App

Download the app from Google Play & App Store
Download the app from Google Play & App Store
Prepp Mobile App