SQL an overview FAQs and Basics on SQL Server and Oracle

SQL SERVER Questions And Answers

Download the word file of the below post.

1. What is an Entity?
  • The basic data item stored in database is called entity. An entity can be any object, item, place, person, concept, or activity about which data is stored.

2. What is an attribute?
  • An attribute is a property of an entity. It describes a part of an entity. Entity could have one or more attributes.

3. What is ER diagram?
  • An Entity Relationship Diagram is diagrammatic representation of the logical structure of a database system.

4. Describe the concept of keys.
  • Candidate key
An attribute that uniquely identifies a row is called candidate key. It is also called das surrogate key.
  • Primary key
A candidate key that you choose to identify rows uniquely is called a primary key.
Alternate key
If there are multiple candidate keys in a table, the candidate keys that are chosen as primary key are called the alternate keys.
  • Composite key
When the key that uniquely identifies the rows of a table is made up of more than one attribute, it is called as a composite key.
  • Foreign key
Two tables can be related using a common attribute. When a primary key of one table is also available as an attribute in another related table it is called a foreign key.

5. What are joins?
  • Sometimes, data from multiple tables is to be displayed using select statement. For this purpose, the tables in use must have a column that is equated. This is termed as simple join or multiple join.
  • Sometimes, you might want to display all records from one table and some from another. This type of join is called an outer join. An outer join is only possible between two tables.
  • There are two types of outer join, namely left and right. In a left outer join, all the rows of the first table named in the FROM clause are displayed. In a right outer join all the rows from the second table mentioned in the FROM clause are displayed. In either case, all the matching rows from other table are displayed.
6. What is a sub query?
  • Sometimes the results of one query are dependant on the results of another query. For this purpose one query is nested inside another query, this is called as sub query.

7. What are the types of constraints?
  • You can enforce data integrity by using constraints. Constraints are divided in to five categories.

  • Primary key constraint
A primary key constraint is defined on a column are a set of columns whose values uniquely identify the rows in a table. It cannot contain null values.

  • Unique constraint
Unique constraints are used to enforce uniqueness on non-primary key columns. It allows null values but only one row can have a null value.
Multiple unique constraints can be created on a table.
  • Foreign Key constraint
You can use the foreign key constraint to remove the inconsistency in two tables when the data in the one table is dependant on the other table.
  • Check constraint
It enforces domain integrity by restricting the values to be inserted in a column. It is possible to define multiple check constraints on a single column. These are evaluated in the order in which they are defined.
  • Default Constraint
A default constraint can be use to assign a constant value to a column and the user need not insert values in to that column.

8. What is a rule?

  • The required integrity can be enforced by specifying a check constraint or by defining a rule. But check constraint modifies the table structure. The constraint can there fore be implemented using rules with out changing the table structure. This rule is applied before an insert or update statement .
  • A rule must be bound to a column or a user-define d data type. This is done using stored procedure sp_bindrule. Rules do not apply to data that has already been inserted in the table. The existing values in tables do not have to meet the criteria specified by the rule.

9. What are indexes?
To speed up data retrieval indexes are used. Indexes also enforce the uniqueness of rows.
Advantages
  1. speed of execution.
  2. Enforces uniqueness of data.
  3. Speeds up joins between tables.
Disadvantages
  1. Takes disk space to store.
  2. Data modification takes longer.
  3. Takes time to create index.

Types of indexes
Clustered index
  • The data is physically sorted
  • One clustered index can be created per table, so you should build it on attributes that have a high percentage of unique values and that are not modified often.

Nonclustered index
  1. The physical order of the rows is not the same as the index order.
  2. There can be as many as 249 nonclustered indexes per column.

10. What are views?
A view is a virtual table, which gives access to a subset of columns from one or more tables. It is a query stored as an object in the database. Hence a view is an object that derives it data from one or more tables.
Advantages
  1. A view serves as a security mechanism.
  2. A view simplifies the usage of complex queries.

11. What are store procedures and its advantages?
A stored procedure is collection or batch of Transact-SQL statements and control flow language that is stored under one name, and executed as single unit. It helps in improving the performance of a query. It is a precompiled object. As it is ready to execute no time is needed for parsing and compiling the procedure.
Advantages
Improved performance – Applications do not have to compile the procedure over and over again.
Reduction in network congestion – applications need not submit multiple SQL statements to server for the purpose of processing.Enhanced accuracy – SQL statements included in a procedure are designed by experienced programmers and are therefore more efficient, error free, and tested.
Better security mechanism – users can be granted permission to execute a stored procedure even if they do not own it.
Types of stored procedures
1.User-defined
2.System defined
These are prefixed with sp_. These are for administrative purpose and are stored in the database and are accessible to all users.
3.Temporary
These are prefixed with #, stored in tempdb and are automatically dropped when connection terminates.
4.Remote
These are created and stored in remote servers and can accessed by users with appropriate permissions.
5.Extended
These are dlls that are executed outside SQL Server. They are prefixed by xp_.

12. Explain about BCP and DTS.
  • BCP
The transfer data from an external source to SQL Server is performed using Bulk Copy Program utility. The external source is a flat file. Data transfer from external source to SQL Server in BCP IN. The transfer of data from SQL Server to external source is BCP OUT.
  • DTS
Data transformation services can be used to import and export data between heterogeneous data sources and SQL Server. The external data sources include Visual FoxPro, MS Excel, Paradox, MS Access, Dbase, and text files.

13. What are transactions and their properties?
A transaction is a sequence of operations performed together as a single unit of logical work. It has four properties.
  • Atomicity – it states that either all the data modifications are performed or none are performed.
  • Consistency - it states that all the data is in a consistent state after a successful completion of transaction.
  • Isolation – it states any data modification made my concurrent transactions must be isolated from the modifications made by other concurrent transaction.
  • Durability – it states that ay change made by a completed transaction remains permanently in the system.
14. Locking mechanism.
SQL Server uses the concept of locking to ensure transactional integrity and database consistency. Locking, by functionally prevents users from accessing information being changed by other users. In a multi-user environment, Locking prevents users from changing the same data at the same time. In SQL Server locking is implemented automatically.

SQL Server implements multi-granular locking, which allows transactions to lock different types of resources at different levels. SQL Server can lock the following resources.
  • RID – is a row identifier that individually locks a row in a table.
  • Key – is a rowlock with in an index.
  • Page – is an 8k page or an index page.
  • Extent – is a contiguous group of 8k data pages or index pages.
  • Table – is the entire table, including all data and indexes.
  • Database – is the complete database.
Shared Locks
It is used for operations that do not change or update the data. This allows concurrent transactions to read a resource and no other transaction can modify the data on that resource.
Update Locks

This lock is implemented when a transaction modify a row. Only one update lock is allowed on a resource at a time.

Exclusive locks

Intent locks

Schema Locks

15. What is deadlock?
A dead lock is a situation in which two users (or transactions) have locks on separate objects, and each user is waiting for a lock on the other’s object. It usually occurs in a multi-user environment.


16. What are triggers?
A trigger is a block of code that constitutes with a set of T-SQL statements that are activated in response to certain actions. A trigger can also be interpreted as a special kind of stored procedure that is executed whenever an action, such as data modification, takes place.
A trigger is always defined on a table, and is said to have fired whenever the data in the underlying table is affected by any of the Data Manipulation Language (DML) statements-INSERT, UPDATE, or DELETE. A trigger fires in response to an event like insertion, updation, and deletion of data.
Triggers help in maintaining consistent, reliable, and correct data in tables. They enable the performance of complex actions and cascade these actions to other dependant tables.
Characteristics of a trigger:
  • It can be associated with tables.
  • It cannot be defined on temporary tables or views. However, it can reference temporary tables and views.
  • Whenever any data modification statement is issued then SQL Server fires it automatically.
  • It cannot be explicitly invoked or executed, as in the case of stored procedures.
  • Triggers can be nested up to 16 levels. The nesting of triggers occurs when a trigger performs an action that initiates another trigger.
  • It prevents incorrect, unauthorized, and inconsistent changes in data.
  • It cannot return data to the user.
There are three types of triggers
1) INSERT
2) DELETE
3) UPDATE

17. What is Normalization? Explain three normal forms?
Normalization is a scientific method of breaking down complex table structures in to simple table structures by using certain rules. Hence reduce redundancy in a table and eliminate inconsistency problems and disk space usage.

First Normal Form
  • A table is said to be in 1NF when each cell of the table contains precisely one value.
  • Functional dependency
  • If you have two attribute A and B, A is said to be functionally dependant on B, if for each value of B, there is exactly one value of A.
Second Normal Form
  • Identify the functionally dependent keys and place them in a different table.
Third Normal Form
  • A relation is said to be 3NF when every non-key attribute is functionally dependant only on the primary key.
18. What are Cursors and types of cursors?
A cursor is a work area called private SQL area, which executes SQL statements and stores the results.
Cursor Types
So you can specify the four-cursor types for Transact-SQL cursors. These cursors vary in their ability to detect changes to the result set and in the resources, such as memory and space in tempdb, they consume. The four API server cursor types supported by SQL Server are:
  • Static cursors
  • Dynamic cursors
  • Forward-only cursors
  • Key set-driven cursors
Static cursors detect few or no changes but consume relatively few resources while scrolling, although they store the entire cursor in tempdb.
Dynamic cursors detect all changes but consume more resources while scrolling, although they make the lightest use of tempdb.
Key set-driven cursors lie in between, detecting most changes but at less expense than dynamic cursors.
Although the database API cursor models consider a forward-only cursor to be a distinct type of cursor, SQL Server does not. SQL Server considers both Forward only and scroll to be options that can be applied to static, key set-driven, and dynamic cursors.

19. What is Encryption option in SQL Server?
Encryption is a method for keeping sensitive information confidential by changing data into an unreadable form. Encryption ensures that data remains secure by keeping the information hidden from everyone, even if the encrypted data is viewed directly. Decryption is the process of changing encrypted data back into its original form and so authorized users can view it.

20. What are time-stamped data types?
It is a database-wide unique number. The storage size is 8 bytes. A table can have only one timestamp column. The value in the timestamp column is updated every time a row containing a timestamp column is inserted or updated. This property makes a timestamp column a poor candidate for keys, especially primary keys. Any update made to the row changes the timestamp value, thereby changing the key value. If the column is in a primary key, the old key value is no longer valid, and foreign keys referencing the old value are no longer valid. If the table is referenced in a dynamic cursor, all updates change the position of the rows in the cursor. If the column is in an index key, all updates to the data row also generate updates of the index.

21. Correlated queries.
In correlated queries a sub query is executed for each row the parent query is executed.
Ex:
“Select e. * from EMP e where e.sal >(select Avg (Sal) from emp where e.deptno = emp.deptno

22. What is OLAP and how it works with SQL Server?
OLAP Services is a new middle-tier server for online analytical processing (OLAP). OLAP Services provides wizards, editors, and information to make OLAP technology easier to use. OLAP Services supports various data and storage models to help you create and maintain an OLAP system that meets your organization’s needs.

25. What are the advantages of SQL Server 7.0 over SQL Server 6.5?
  • Trigger Enhancements
  • Recursive triggers
  • Multiple triggers per INSERT, UPDATE, or DELETE statement
  • Data Transformation Services
  • Web Assistant Wizard
The Web Assistant Wizard has been enhanced in SQL Server 7.0. In addition to exporting SQL Server data out to an HTML file, it can also import tabular data from an HTML file into SQL Server, and post to and read from HTTP and FTP locations.

  • Row-level locking
  • SQL Server 7.0 supports complete row-level locking on both data pages and index pages.
  • SQL Server 7.0 supports applications that span a broad range of platforms.
  • Gigabytes of memory, and a terabyte or more of disk storage.
  • Stored Procedures
  • The stored procedure model has been enhanced in SQL Server 7.0 to provide improved performance and increased application flexibility. When a stored procedure is compiled and placed in the procedure cache, all users of the stored procedure share that one copy of the compiled plan.
  • The most notable feature is update replication. Using update replication, data replicated by SQL Server 7.0 can be modified at multiple sites.
Download the word file of this post.

SQL-Server

Truncate & Delete

1.Truncate a table means data will be lost, but structure of the table will be present in the database.

Syntax: Truncate table <table name>;

2.If you drop a table then the structure of the table also goes along with the data.
Syntax: drop table <table name>;

3.You canâ??t delete a table; you can delete the data in a record wise manner.

Syntax: delete from <table name> where <condition>

4.The difference between the truncate and delete is you can delete the data at a stretch buy using the truncate, by using the delete you can delete only one record at a time.

5.When you have truncated the table then all the records will lose. Then immediately if you add a record to that table the row number will be â??1â?? only.

Index:

1. If you have a clustered index on a column, then also you can assign a primary key to that column?

2. You are having rowid already then why you are going for the index?

3. How many non-clustered indexes can be allowed in a table?

Syntax:
Create index <index name>
On
<Table name (<col1>, <col2>, -------)>;

Syntax:
Drop index <index name>

Rules
9.Rules will maintain the domain integrity.

10.Is it possible to create a rule at the time of creating a table?
No.

11.Is it possible to drop a rule?
Yes.

12.What is the difference between the rule and check constraint?
If a check constraint is applied to a table it will enforce the constraint to previously existing data also. If that data violates the constraint then constraint statement gives an error message.

If a rule is applied on a table it will not apply to the already existing data in the table. The rule will be imposed from now on the updation and insertion of data.

Syntax
Create rule <rule name> as <condition>
Sp_bindrule <rule name>, <object name>
Drop rule <rule name>

Keys

13.How many types of keys are there? What is the importance of those keys?
14.What is the difference between the primary key and unique?

15.What is the primary key and candidate key and what are there advantages?

16.Is it possible to hide the database?

17. What is the maximum size of a row?

18.What is the maximum number of rows can a table allowed? Then how many columns are allowed in a table?

19.What is normalization?

20.What is the redundancy?

21.What are the normalization forms?

22.What is the difference between the DBMS/RDBMS?

23.What is replication?

Replication:

Definition:

â??Replication is an important and powerful technology for distributing data and the execution of stored procedures across an enterprise. â??

The replication technology allows you to make duplicate copies of your data, move those copies to different locations, and synchronize the data automatically so that all copies have the same data values. Replication can be implemented between databases on the same server or different servers connected by LANs, WANs, or the Internet.

24.What are the types of replication?

Types of the replications:
â?¢ Snapshot Replication
Option: Snapshot, with immediate-updating Subscribers
â?¢ Transactional Replication
Option: Transactional, with immediate-updating Subscribers
â?¢ Merge Replication
Which type of replication you choose for your application depends on your requirements for data consistency, site autonomy, and network resources.
25.Differences between the SQL-server 2000 and SQL-Server 7.0.

26.What is the sql using by the SQL-Server and oracle?

SQL-Server: Transact-SQL
Oracle: ANSI-SQL

28.Is it possible to create a view with out a base table?

Actually the answer is NO.
But this is possible by using the â??FORCED VIEWSâ??
Syntax:
Create force view XYZ
As
Select * from ZZZ;

29.Index is the only second object, which holds data in the database.

30. â??MODIFYâ?? is a keyword only it is not a clause.

31.What will happen if you add a not null constraint on to a column if that column is already having the null values and what is the status of those null values, which are already present?

An error is given stating that null values are found.

32.I am doing a transaction, I am having four activities in those four fourth activity got some problem, then will be the transaction committed or roll backed?

Automatically it will rollback, because a transaction is said to be committed when all the activities of that transaction is perfectly executed.
Joins
33.What is a join?

34.How many types of joins are there?

35.What is the difference between the outer join and left outer join?

36.How to make a copy of a table (if you have a table with some name X, is it possible to create a table with a name Y by using the table X?

Explanation:

SQL server
Select <columns> into <new table> from <old table>

Oracle
Create table <table name> as select * from <table name>

Write a query to display the details of employees whose salary is more than the â??BLAKEâ?? salary.

Sql> select B. * from EMP A, EMP B
Where A.ename=â??BLAKEâ??
A. Sal < B.sal;
It is also called aliasing.
It is a self-joining concept.

38.What is schema?

Schema:
A description of a database generated by the data definition language (DDL) of the database management system (DBMS). In OLAP Services, a schema is a description of multidimensional objects such as cubes, dimensions, and so forth.
39.Is it possible to create a trigger on multiple tables?

NO.

40.Is it possible to create a single stored procedure on multiple tables?

YES.


What is SQL and where does it come from?

Structured Query Language (SQL) is a language that provides an interface to relational database systems. IBM developed SQL in the 1970s for use in System R. SQL is a de facto standard, as well as an ISO and ANSI standard. SQL is often pronounced SEQUEL.

In common usage SQL also encompasses DML (Data Manipulation Language), for INSERTs, UPDATEs, DELETEs and DDL (Data Definition Language), used for creating and modifying tables and other database structures.

The development of SQL is governed by standards. A major revision to the SQL standard was completed in 1992, called SQL2. SQL3 support object extensions and will be (partially?) Implemented in Oracle8.

How can I eliminate duplicates values in a table?

Choose one of the following queries to identify or remove duplicate rows from a table:

Method 1:

SQL> DELETE FROM table_name A WHERE ROWID > (
2 SELECT min(rowid) FROM table_name B
3 WHERE A.key_values = B.key_values);

Method 2:

SQL> create table table_name2 as select distinct * from table_name1;
SQL> drop table_name1;
SQL> rename table_name2 to table_name1;

Method 3:

SQL> Delete from where rowid not in(
SQL> select max(rowid) from
SQL> group by );

Method 4:

SQL> delete from mytable t1
SQL> where exists (select x from mytable t2
SQL> where t2.key_value1 = t1.key_value1
SQL> and t2.key_value2 = t1.key_value2
SQL> and t2.rowid != t1.rowid);

Note: If you create an index on the joined fields in the inner loop, you for all intensive purposes eliminate N^2 operations (no need to loop through the entire table on each pass by a record).


How can I generate primary key values for my table?

Create your table with a NOT NULL column (say SEQNO). This column can now be populated with unique values:

SQL> UPDATE table_name SET seqno = ROWNUM;
or use a sequences generator:

SQL> CREATE SEQUENCE sequence_name START WITH 1 INCREMENT BY 1;

SQL> UPDATE table_name SET seqno = sequence_name.NEXTVAL;
Finally, create a unique index on this column.

How can I get the time difference between two date columns

select floor((date1-date2)*24*60*60)/3600)
|| HOURS ||
floor((((date1-date2)*24*60*60) -
floor(((date1-date2)*24*60*60)/3600)*3600)/60)
|| MINUTES ||
round((((date1-date2)*24*60*60) -
floor(((date1-date2)*24*60*60)/3600)*3600 -
(floor((((date1-date2)*24*60*60) -
floor(((date1-date2)*24*60*60)/3600)*3600)/60)*60)))
|| SECS time_difference from ...

How does one count different data values in a column?

select dept, sum( decode(sex,M,1,0)) MALE,
sum( decode(sex,F,1,0)) FEMALE,
count(decode(sex,M,1,F,1)) TOTAL
from my_emp_table
group by dept;

How does one select every n th row from a table?

Method 1: Using a subquery
SELECT *
FROM emp
WHERE (ROWID,0) IN (SELECT ROWID, MOD(ROWNUM,4)
FROM emp);
Method 2: Use dynamic views (available from Oracle7.2):
SELECT *
FROM ( SELECT rownum rn, empno, ename
FROM emp
) temp
WHERE MOD(temp.ROWNUM,4) = 0;

How does one select the top n rows from a table?

SELECT *
FROM TableX a
WHERE 10 >= (SELECT COUNT(DISTINCT maxcol)
FROM tableX b
WHERE b.maxcol >= a.maxcol)
ORDER BY maxcol DESC;

How to implement if-then-else in a select statement?

The Oracle decode function acts like a procedural statement inside an SQL statement to return different values or columns based on the values of other columns in the select statement.

Example:
select decode(sex, M, Male,
F, Female,
Unknown
)
from employees;

Note: The decode function is not ANSI SQL and are rarely implemented in other RDBMS offerings. It is one of the good things about Oracle, but use it sparingly if portability is required.

How can one dump/ examine the exact content of a database column?

SELECT DUMP(col1)
FROM tab1
WHERE cond1 = val1;

DUMP(COL1)
-------------------------------------
Typ=96 Len=4: 65,66,67,32

For this example the type is 96, indicating CHAR, and the last byte in the column is 32, which is the ASCII code for a space. This tells us that this column is blank-padded.

Can one drop a column from a table?

Oracle does not provide a way to DROP a column.

1. update t1 set column_to_drop = NULL;
rename t1 to t1_base;
create view t1 as select <specific columns> from t1_base;
2. create table t2 as select <specific columns> from t1;
drop table t1;
rename t2 to t1;

Can one rename a column in a table?

No
1. rename t1 to t1_base;
create view t1 <column list with new name> as select * from t1_base;
2. create table t2 <column list with new name> as select * from t1;
drop table t1;
rename t2 to t1;

How can I change my Oracle password?

Issue the following SQL command: ALTER USER <username> IDENTIFIED BY <new_password>
/
From Oracle8 you can just type "password" from SQL*Plus, or if you need to change another users password, type "password user_name".

Workaround for snapshots on tables with LONG columns

You can use the SQL*Plus COPY command instead of snapshots if you need to copy LONG and LONG RAW variables from one location to another. Eg:

COPY TO SCOTT/TIGER@REMOTE -
CREATE IMAGE_TABLE USING -
SELECT IMAGE_NO, IMAGE -
FROM IMAGES;

Note: If you run Oracle8, convert your LONGs to LOBs, as it can be replicated.

Download the word file of the above post.

Related Posts by Categories

0 comments:

Post a Comment