everythingOracle.bizhat.com

 

'Everything you wanted
to know about Oracle'

Training References Syntax Tell A Friend Contact Us

 

 

SQL

01 02 03 04 05 06 07 08 09 10 11 12 13 14 15 16 17 18 19
<< Previous

Chapter # 02

Next >>


 

Selecting Data (SQL)

 

In this section, you will learn how to query an Oracle Table.

Go to MS-DOS and login to "SQLPLUS" as "oracle" password "learning"

SQL> CONNECT oracle/learning@yourhost

 

SELECT statements

The SELECT statement is a DML (Data Manipulation Language) statement. DML statements are SQL commands that allows you to retrieve and manipulate a data in the database. SQL commands are divided to three parts:

DML - Data Manipulation Language are SQL commands that allows you to query and manipulate data such as UPDATE, SELECT, INSERT, and DELETE.

DDL - Data Definition Language are SQL commands that allows you to create, alter, and/or remove an object in the database such as CREATE TABLE, DROP TABLE, ALTER TABLE, etc.

DCL - Data Command Language are SQL commands that allows you to execute a command in the SQLPLUS such as CONNECT, etc.

Query the employee names and their salaries from the employee table.

SQL> SELECT ename, sal FROM emp;

 

Column Heading

As you notice from the above query statement, the columns heading were the columns name as a default. These column names most of the time are meaningless. You use the column heading to make them more meaningful.

For the same above query, now you use the “as” clause for the column heading. Notice that the column heading is changed.

SQL> SELECT ename, sal AS salary FROM emp;

 

Use the same above query without using the “as” clause. The ‘as’ clause is a default option.

SQL> SELECT ename, sal salary FROM emp;

 

Use the same above query to use a double quote for the ename and sal as “Full Name” and “Salary” column headings. You use a double quote if the column headings contain “case sensitive” or “blank” characters.

SQL> SELECT ename “Full Name”, sal "Salary"

FROM emp;

 

Arithmetic Expression

You can use an arithmetic expression in the SELECT statement.

Use an arithmetic expression that calculates a 10 percent salary bonus for all employees.

SQL> SELECT ename, sal salary, sal * .1 bonus

FROM emp;

 

Use the dual table as a dummy table to execute the system's function, user's functions or any other arithmetic expressions.

SQL> SELECT 100+200 total FROM dual;

 

NULL value

A null value means I don’t know. Note that any number that is added, multiplied, divided, or subtracted from NULL will be NULL.

Remember, the result of any arithmetic calculation with a "null" is a "null" value.

SQL> SELECT 100+null “Null + 100”

FROM dual;

 

Query the employee names and their commissions. Notice that the commission column contains the null value.

SQL> SELECT ename, comm commission FROM emp;

 

NVL function

You can use the NVL function to substitute any not NULL value with a NULL column. This way, you will get more control on how to manipulate that column in a WHERE clause.

Use the null value function (NVL) to assign a zero to any null value in the commission column.

SQL> SELECT ename, NVL(comm,0) commission

FROM emp;

 

Concatenation

You will use two vertical bars (||) to concatenate two or more strings or columns together.

Use two vertical bars or pipe line to concatenate a last and first name with the following format (example: Smith, Joe).

SQL> SELECT last_name || ', ' || first_name AS "full name"

FROM customers;

 

ORDER BY clause

You use the ORDER BY clause to sort one or more columns in a query.

Use the "order by" clause to sort a query. Query the employee names sorted by ascending order.

SQL> SELECT ename

FROM emp

ORDER BY ename ASC;

 

Query the employee names sorted by descending order.

SQL> SELECT ename FROM emp

ORDER BY ename DESC;

WHERE clause

You use the WHERE clause to query one or more records selectively.

 

Query the employee information whose employee number is 7788.

SQL> SELECT *

FROM emp

WHERE empno = 7788;

 

LIKE condition

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. The pattern can contain the special pattern-matching characters:

· % matches any string of any length (including length 0)

· _ matches any single character.

To search for the characters % and _, precede them by the escape character. For example, if the escape character is @, then you can use @% to search for %, and @_ to search for _.

Query the employee names whose names start with the letter “M.”

SQL> SELECT ename

FROM emp

WHERE ename LIKE 'M%';

 

Query the employee names whose names end with the letter “R.”

SQL> SELECT ename

FROM emp

WHERE ename LIKE '%R';

 

BETWEEN condition

The BETWEEN conditions specify a test to query all the records between the selection values inclusively.

Query the employees name whose salaries between 2000 and 3000 dollars.

SQL> SELECT ename

FROM emp

WHERE sal BETWEEN 2000 AND 3000;

Query the employees’ name that’s their names start with a letter ‘C’ and end with a letter ‘F’.

SQL> SELECT ename

FROM emp

WHERE upper (ename) BETWEEN ‘C’ AND ‘EZZZ’;

You used the UPPER function in the above query to convert all names to upper case in the case if the employee’s names are case sensitive.

 

DECODE function

The DECODE function is like an IF-THEN-ELSE statement. It compares the content of a column to each of the comparisons. If there is a match, then it replaces the value. If there is no match, then the else action will be performed.

Query the employee names and their department names using the “DECODE” function. Check if the "department no" is 10 then print "accounting", else if the "department no" is 20 then print "research," or if the "department no" is 30 then print "sales". Anything else print "others."

SQL> SELECT ename, DECODE (deptno, 10, 'Accounting',

20, 'Research',

30, 'Sales',

'Others') AS "Department"

FROM emp;

 

Questions:

Q: Query the employee names and their salaries from the employee table.

Q: Do the above query and use an “as” clause for the “salary” column aliases or column headings.

Q: Repeat the previous query and have “Full Name” for the ename’s column heading and “Salary” for the “sal” column heading.

Q: What is the result of 100 + NULL?

Q: Query the employee names with their commissions.

Q: Use the (NVL) the null value function to assign zero to any null value in the commission column for the previous query.

Q: Concatenate the customers’ last name and first name separated by comma.

Q: Query the employees name sorted by ascending order.

Q: Query the employees name sorted by descending order.

Q: Query the employee information whose employee number is 7788.

Q: Query the employees name whose names start with the letter “M.”

Q: Query the employees name whose names end with the letter “R.”

Q: Query the employees name whose salaries between 2000 and 3000 dollars.

Q: Query the employees name and their department name using the “DECODE” function. If the department number is 10 then print "accounting.” If the department number is 20 then print "research," or if the department number is 30 then print "sales." Anything else prints others.

     Reviews and Templates for FrontPage
     

Copyright © everythingOracle.bizhat.com 2006 All Rights Reserved.