SQL Questions 2
SQL Questions 2
Answer: Structured Query Language is a database tool which is used to create and access database to support
software application.
Answer: The table is a collection of record and its information at a single view.
Answer:
1) DDL (Data Definition Language): It is used to define the database structure such as tables. It includes three
statements such as Create, Alter, and Drop.
column_name1 data_type(size),
column_name2 data_type(size),
column_name3 data_type(size),
ALTER: The ALTER table is used for modifying the existing table object in the database.
OR
2) DML (Data Manipulation Language): These statements are used to manipulate the data in records. Commonly
used DML statements are Insert, Update, and Delete.
The Select statement is used as partial DML statement that is used to select all or relevant records in the table.
3) DCL (Data Control Language): These statements are used to set privileges such as Grant and Revoke database
access permission to the specific user.
Answer:
The DISTINCT statement is used with the SELECT statement. If the records contain duplicate values then DISTINCT is
used to select different values among duplicate records.
Syntax:
FROM table_name;
Answer:
WHERE Clause: This clause is used to define the condition, extract and display only those records which fulfil the
given condition
Syntax:
SELECT column_name(s)
FROM table_name
WHERE condition;
GROUP BY Clause: It is used with SELECT statement to group the result of the executed query using the value
specified in it. It matches the value with the column name in tables and groups the end result accordingly.
Syntax:
SELECT column_name(s)
FROM table_name
GROUP BY column_name;
HAVING clause: This clause is used in association with the GROUP BY clause. It is applied to each group of result or
the entire result as a single group and much similar as WHERE clause, the only difference is you cannot use it without
GROUP BY clause
Syntax:
SELECT column_name(s)
FROM table_name
GROUP BY column_name
HAVING condition;
ORDER BY clause: This clause is to define the order of the query output either in ascending (ASC) or in descending
(DESC) order. Ascending (ASC) is the default one but descending (DESC) is set explicitly.
Syntax:
SELECT column_name(s)
FROM table_name
WHERE condition
USING clause: USING clause comes in use while working with SQL Joins. It is used to check equality based on columns
when tables are joined. It can be used instead ON clause in Joins.
Syntax:
SELECT column_name(s)
FROM table_name
JOIN table_name
USING (column_name);
Q #6) Why do we use SQL constraints? Which constraints we can use while creating a database in SQL?
Answer:
Constraints are used to set the rules for all records in the table. If any constraints get violated then it can abort the
action that caused it.
Constraints are defined while creating the database itself with CREATE TABLE statement or even after the table is
created once with ALTER TABLE statement.
NOT NULL: That indicates that the column must have some value and cannot be left null
UNIQUE: This constraint is used to ensure that each row and column has unique value and no value is being
repeated in any other row or column
PRIMARY KEY: This constraint is used in association with NOT NULL and UNIQUE constraints such as on one or the
combination of more than one column to identify the particular record with a unique identity.
FOREIGN KEY: It is used to ensure the referential integrity of data in the table and also matches the value in one
table with another using Primary Key
CHECK: It is used to ensure whether the value in columns fulfills the specified condition
Answer:
There are 4 major types of joins made to use while working on multiple tables in SQL databases
INNER JOIN: It is also known as SIMPLE JOIN which returns all rows from BOTH tables when it has at least one
column matched
Syntax:
SELECT column_name(s)
FROM table_name1
ON column_name1=column_name2;
Example
2 FROM Employee
4 ON Employee.Emp_id = Joining.Emp_id
5 ORDER BY Employee.Emp_id;
There will be 4 records selected. These are the results that you should see
Employee and orders tables where there is a matching customer_id value in both the Employee and orders tables
LEFT JOIN (LEFT OUTER JOIN): This join returns all rows from a LEFT table and its matched
rows from a RIGHT table.
Syntax:
SELECT column_name(s)
FROM table_name1
ON column_name1=column_name2;
Example
4 ON Employee.Emp_id = Joining.Emp_id
5 ORDER BY Employee.Emp_id;
There will be 4 records selected. These are the results that you should see:
RIGHT JOIN (RIGHT OUTER JOIN): This joins returns all rows from the RIGHT table and its matched rows from a LEFT
table.
Syntax:
SELECT column_name(s)
FROM table_name1
ON column_name1=column_name2;
Example
2 FROM Employee
4 ON Employee.Emp_id = Joining.Emp_id
5 ORDER BY Employee.Emp_id;
There will be 4 records selected. These are the results that you should see
FULL JOIN (FULL OUTER JOIN): This joins returns all when there is a match either in the RIGHT table or in the LEFT
table.
Syntax:
SELECT column_name(s)
FROM table_name1
ON column_name1=column_name2;
Example
2 FROM Employee
4 ON Employee.Emp_id = Joining.Emp_id
5 ORDER BY Employee.Emp_id;
There will be 8 records selected. These are the results that you should see
Q #8) What are transactions and their controls?
Answer:
A transaction can be defined as the sequence task that is performed on databases in a logical manner to gain certain
results. Operations performed like Creating, updating, deleting records in the database come from transactions.
In simple words, we can say that a transaction means a group of SQL queries executed on database records.
ROLLBACK: It is used to roll back the transaction such as all changes made by the transaction are reverted back and
database remains as before
SAVEPOINT: It is used to set the point from where the transaction is to be rolled back
Answer:
Atomicity: Ensures the completeness of all transactions performed. Checks whether every transaction is completed
successfully if not then transaction is aborted at the failure point and the previous transaction is rolled back to its
initial state as changes undone
Consistency: Ensures that all changes made through successful transaction are reflected properly on database
Isolation: Ensures that all transactions are performed independently and changes made by one transaction are not
reflected on other
Durability: Ensures that the changes made in the database with committed transactions persist as it is even after a
system failure
Answer:
SQL Aggregate Functions calculates values from multiple columns in a table and returns a single value.
Answer:
Scalar Functions are used to return a single value based on the input values.
Answer:
Triggers in SQL is kind of stored procedures used to create a response to a specific action performed on the table
such as Insert, Update or Delete. You can invoke triggers explicitly on the table in the database.
Action and Event are two main components of SQL triggers when certain actions are performed the event occurs in
response to that action.
Syntax:
A View can be defined as a virtual table that contains rows and columns with fields from one or more table.
Syntax:
SELECT column_name(s)
FROM table_name
WHERE condition
Answer:
SQL CREATE and REPLACE can be used for updating the view.
Syntax:
SELECT column_name(s)
FROM table_name
WHERE condition
Answer:
SQL GRANT and REVOKE commands are used to implement privileges in SQL multiple user environments. The
administrator of the database can grant or revoke privileges to or from users of database object like SELECT, INSERT,
UPDATE, DELETE, ALL etc.
GRANT Command: This command is used provide database access to user apart from an administrator.
Syntax:
GRANT privilege_name
ON object_name
TO {user_name|PUBLIC|role_name}
[WITH GRANT OPTION];
In above syntax WITH GRANT OPTIONS indicates that the user can grant access to another user too.
REVOKE command: This command is used provide database deny or remove access to database objects.
Syntax:
REVOKE privilege_name
ON object_name
FROM {user_name|PUBLIC|role_name};
Answer:
System Privilege: System privileges deal with an object of a particular type and specifies the right to perform one or
more actions on it which include Admin allows a user to perform administrative tasks, ALTER ANY INDEX, ALTER ANY
CACHE GROUP CREATE/ALTER/DELETE TABLE, CREATE/ALTER/DELETE VIEW etc.
Object Privilege: This allows to perform actions on an object or object of another user(s) viz. table, view, indexes etc.
Some of the object privileges are EXECUTE, INSERT, UPDATE, DELETE, SELECT, FLUSH, LOAD, INDEX, REFERENCES etc.
Answer:
SQL Injection is a type of database attack technique where malicious SQL statements are inserted into an entry field
of database such that once it is executed the database is opened for an attacker. This technique is usually used for
attacking Data-Driven Applications to have access to sensitive data and perform administrative tasks on databases.
Answer:
SQL Sandbox is the safe place in SQL Server Environment where untrusted scripts are executed. There are 3 types of
SQL sandbox, such as
Safe Access Sandbox: Here a user can perform SQL operations such as creating stored procedures, triggers etc. but
cannot have access to the memory and cannot create files.
External Access Sandbox: User can have access to files without having a right to manipulate the memory allocation.
Unsafe Access Sandbox: This contains untrusted codes where a user can have access to memory.
Q #19) What is the difference between SQL and PL/SQL?
Answer:
SQL is a structured query language to create and access databases whereas PL/SQL comes with procedural concepts
of programming languages.
Answer:
SQL is a structured query language that is used for manipulating and accessing the relational database, on the other
hand, MySQL itself is a relational database that uses SQL as the standard database language.
Answer:
NVL function is used to convert the null value to its actual value.
Answer:
The output of Cross Join is called as a Cartesian product. It returns rows combining each row from the first table with
each row of the second table. For Example, if we join two tables having 15 and 20 columns the Cartesian product of
two tables will be 15×20=300 Rows.
Answer:
Query within another query is called as Subquery. A subquery is called inner query which returns output that is to be
used by another query.
Q #24) How many row comparison operators are used while working with a subquery?
Answer:
There are 3-row comparison operators that are used in subqueries such as IN, ANY and ALL.
Answer:
One table can have only one clustered index but multiple nonclustered indexes.
Answer:
The basic difference in both is DELETE is DML command and TRUNCATE is DDL
DELETE is used to delete a specific row from the table whereas TRUNCATE is used to remove all rows from the table
We can use DELETE with WHERE clause but cannot use TRUNCATE with it
Answer:
TRUNCATE removes all rows from the table which cannot be retrieved back, DROP removes the entire table from the
database and it cannot be retrieved back.
Q #28) How to write a query to show the details of a student from Students table whose
name starts with K?
Answer:
Q #29) What is the difference between Nested Subquery and Correlated Subquery?
Answer:
Subquery within another subquery is called as Nested Subquery. If the output of a subquery is depending on column
values of the parent query table then the query is called Correlated Subquery.
Answer:
Normalization is used to organize the data in such a manner that data redundancy will never occur in the database
and avoid insert, update and delete anomalies.
There are 5 forms of Normalization
First Normal Form (1NF): It removes all duplicate columns from the table. Creates a table for related data and
identifies unique column values
First Normal Form (2NF): Follows 1NF and creates and places data subsets in an individual table and defines the
relationship between tables using the primary key
Third Normal Form (3NF): Follows 2NF and removes those columns which are not related through primary key
Fourth Normal Form (4NF): Follows 3NF and do not define multi-valued dependencies. 4NF also known as BCNF
Answer:
The relationship can be defined as the connection between more than one tables in the database.
Answer:
A stored procedure is a collection of SQL statements that can be used as a function to access the database. We can
create these stored procedures previously before using it and can execute these them wherever we require and also
apply some conditional logic to it. Stored procedures are also used to reduce network traffic and improve
performance.
Syntax:
//Parameters
AS
BEGIN
END
Answer:
Answer:
Triggers may implement data modification logic by using INSERT, UPDATE, and DELETE statements. These triggers
that contain data modification logic and find other triggers for data modification are called Nested Triggers.
Answer:
Declare Cursor
Open Cursor
Close Cursor
Deallocate Cursor
Answer:
Collation is a set of rules that check how the data is sorted by comparing it. Such as Character data is stored using
correct character sequence along with case sensitivity, type, and accent.
Q #37) What do we need to check in Database Testing?
Answer:
Database Connectivity
Constraint Check
Stored Procedures
Functional flow
Answer:
Answer:
Data Mapping
Use of Black Box techniques such as Equivalence Partitioning and Boundary Value Analysis (BVA)
Syntax:
ON table_name (column_name)
Syntax:
ON table_name (column_name)
******************
Right Join
Outer Join
Full Join
Cross Join
Self Join.
WHERE <Condition>
Q #51) Is it possible for a table to have more than one foreign key?
Answer: Yes, a table can have many foreign keys and only one primary key.
Q #52) What are the possible values for the BOOLEAN data field?
Answer: For a BOOLEAN data field, two values are possible: -1(true) and 0(false).
Q #59) Write a SQL SELECT query that only returns each name only once from a table?
Answer: To get each name only once, we need to use the DISTINCT keyword.
DDL stands for Data Definition Language. CREATE, ALTER, DROP, RENAME are DDL statements.
Q #63) Suppose a Student column has two columns, Name and Marks. How to get name and marks of the top three
students.
Answer: SELECT Name, Marks FROM Student s1 where 3 <= (SELECT COUNT(*) FROM Students s2 WHERE s1.marks =
s2.marks)
TRUNCATE removes ALL rows from a table by de-allocating the memory pages. The operation cannot be rolled back
Atomicity
Consistency
Isolation
Durability.
UNION ALL – returns all rows selected by either query, including all duplicates.
Q #70) What is the difference between UNIQUE and PRIMARY KEY constraints?
Answer: A table can have only one PRIMARY KEY whereas there can be any number of UNIQUE keys.
The primary key cannot contain Null values whereas Unique key can contain Null values.
Views restrict access to the data because the view can display selective columns from the table.
Views can be used to make simple queries to retrieve the results of complicated queries. For example, views can be
used to query information from multiple tables without the user knowing.
Q #83) List the various privileges that a user can grant to another user?
Answer: SELECT, CONNECT, RESOURCES.
Q #88) What is the difference between Having clause and Where clause?
Answer: Both specify a search condition but Having clause is used only with the SELECT statement and typically used
with GROUP BY clause.
If GROUP BY clause is not used then Having behaved like WHERE clause only.
Q #89) What is the difference between Local and Global temporary table?
Answer: If defined in inside a compound statement a local temporary table exists only for the duration of that
statement but a global temporary table exists permanently in the DB but its rows disappear when the connection is
closed.