Search This Blog

30 October 2011

SQL concepts - 4. SELECT Statement and where condition


Use a SELECT statement or subquery to retrieve data from one or more tables, object tables, views, object views, or materialized views

For example to retrieve all rows from emp table.
SQL> select  empno, ename, sal  from emp;

          Or (if you want to see all the columns values
You can also give * which means all columns)

SQL> select * from emp;

Suppose you want to see only employee names and their salaries then you can type the following statement

SQL> select name, sal from emp;

Filtering Information using Where Conditions


            You can filter information using where conditions like suppose you want to see only those employees whose salary is above 5000 then you can type the following query with where condition

SQL>select * from emp where sal > 5000;
To see those employees whose salary is less than 5000 then the query will be
SQL> select * from emp where sal < 5000;

Logical Conditions

A logical condition combines the results of two component conditions to produce a single result based on them or to invert the result of a single condition. Table below lists logical conditions.
Condition 
Operation 
Example 
NOT

Returns TRUE if the following condition is FALSE. ReturnsFALSE if it is TRUE. If it is UNKNOWN, it remains UNKNOWN
SELECT *
  FROM emp
  WHERE NOT (sal IS NULL);
SELECT *
  FROM emp
  WHERE NOT
  (salary BETWEEN  1000 AND 2000);

AND

Returns TRUE if both component conditions are TRUE. Returns FALSE if either is FALSE. Otherwise returnsUNKNOWN
SELECT *
  FROM employees
  WHERE ename ='SAMI'
  AND sal=3000;

OR

Returns TRUE if either component condition is TRUE. ReturnsFALSE if both are FALSE. Otherwise returns UNKNOWN
SELECT *
  FROM emp
  WHERE ename = 'SAMI'
  OR sal >= 1000;

 Membership Conditions
A membership condition tests for membership in a list or subquery
The following table lists the membership conditions.
Condition 
Operation 
Example 
IN

"Equal to any member of" test. Equivalent to "= ANY". 
SELECT * FROM emp
  WHERE deptno IN
  (10,20);
SELECT * FROM emp
  WHERE deptno IN (SELECT deptno FROM dept WHERE city=’HYD’)

NOT IN


Equivalent to "!=ALL". Evaluates to FALSEif any member of the set is NULL
SELECT * FROM emp
  WHERE ename NOT IN  ('SCOTT', 'SMITH');

 

Null Conditions

NULL condition tests for nulls.
What is null?
If a column is empty or no value has been inserted in it then it is called null. Remember 0 is not null and blank string ‘ ’ is also not null.
The following example lists the null conditions.

Condition 
Operation 
Example 
IS [NOT]
NULL

Tests for nulls. This is the only condition that you should use to test for nulls.


SELECT ename
  FROM emp
  WHERE deptno
  IS NULL;

SELECT * FROM emp WHERE ename IS NOT NULL;

EXISTS Conditions

An EXISTS condition tests for existence of rows in a subquery.
The following example shows the EXISTS condition.
Condition 
Operation 
Example 
EXISTS

TRUE if a subquery returns at least one row. 
SELECT deptno
  FROM dept d
  WHERE EXISTS
  (SELECT * FROM emp e
    WHERE d.deptno
    = e.deptno);
  

 

LIKE Conditions

The LIKE conditions specify a test involving pattern matching. Whereas the equality operator (=) exactly matches one character value to another, the LIKE conditions match a portion of one character value to another by searching the first value for the pattern specified by the second. LIKE calculates strings using characters as defined by the input character set.
For example you want to see all employees whose name starts with S char. Then you can use LIKE condition as follows
SQL> select * from emp where ename like ‘S%’ ;
Similarly you want to see all employees whose name ends with “d”
SQL>select * from emp where ename like ‘%d’;
You want to see all employees whose name starts with ‘A’ and ends with ‘d’ like ‘Abid’, ’Adward’, ’Arnold’.
SQL>select * from emp where ename like ‘A%d’;
You want to see those employees whose name contains character ‘a’ anywhere in the string.
SQL> select * from emp where ename like ‘%a%’;
To see those employees whose name contains ‘a’ in second position.
SQL>select * from emp where ename like ‘_a%’;
To see those employees whose name contains ‘a’ as last second character.
SQL>select * from emp where ename like ‘%a_’;
To see those employees whose name contain ‘%’ sign.  i.e. ‘%’ sign has to be used as literal not as wild char.
SQL> select * from emp where ename like ‘%\%%’ escape ‘\’;

No comments:

Post a Comment