4/2/16. Ltrim() is used to remove leading occurrences of characters. If we dont specify a character,...
-
Upload
leslie-dixon -
Category
Documents
-
view
217 -
download
0
Transcript of 4/2/16. Ltrim() is used to remove leading occurrences of characters. If we dont specify a character,...
Lecture 44/2/16
2
Ltrim() is used to remove leading occurrences of characters.• If we don’t specify a character, Oracle will remove leading spaces.• For exampleRunning ltrim(‘ Oracle’)Will remove the leading spaces.
Ltrim(‘spacious’,’s’)Will returnpacious (the leading s has been removed)
Ltrim()
5
select Ltrim('spacious','p')from sys.dual;Will return ????
• The order specified for the leading characters is not important. For example,Ltrim(‘spacious’,’ps’) Is the same as Ltrim(‘spacious’,’sp’)
select Ltrim('spacious','sp')from sys.dual;
select Ltrim('spacious','ps')from sys.dual;
RTRIMIs the same as LTRIM, except it trims from the right.
select rtrim('spacious','su')from sys.dual;Output - Spacio
select rtrim('spacious','soui')from sys.dual;Output - spac
Ltrim() Continued..
7
select ltrim(emp_name, 'H') from employee;
EARNEBYRNEWALSHARTEDOHERTYMARTIN;
Another Example
select ltrim(ename, 'M') from emp;
8
SELECT LTRIM(ename, 'M' ) "Employee Name" FROM emp WHERE ename LIKE 'M%';
Employee NameILLERARTIN
Another example
9
Another example SELECT product_name, LTRIM(product_name, 'Monitor ') "Short Name" FROM products WHERE product_name LIKE 'Monitor%';
PRODUCT_NAME Short Name-------------------- ---------------Monitor 17/HR 17/HRMonitor 17/HR/F 17/HR/FMonitor 17/SD 17/SDMonitor 19/SD 19/SDMonitor 19/SD/M 19/SD/MMonitor 21/D 21/DMonitor 21/HR 21/HRMonitor 21/HR/M 21/HR/MMonitor 21/SD 21/SDMonitor Hinge - HD Hinge - HDMonitor Hinge - STD Hinge - STD
10
LPAD
• Lpad is used to “pad”
columns/strings to the left.• To see this let us take the
following string.• Let us say that we want the
string to appear as being10 characters in length. If we say that we want it to be padded to the left, it would appear like -
11
If we padded with ‘*’it would look like this • The syntax for this would beLpad(‘diploma’,10,’*’)• Lpad the word ‘diploma’ so that it is 10 characters long, with extra spaces to the left being filled with *’s.
RPAD Rpad, does the same, except
that it pads to the right. What will the following
command do ? Rpad (‘course’,12)
LPAD Continued…
select Lpad('diploma',10,'*')from sys.dual;
***diploma
select rpad('diploma',10,'*')from sys.dual;
diploma***
12
LPAD('tech', 7); ' tech'LPAD('tech', 2); 'te'LPAD('tech', 8, '0'); '0000tech'LPAD('tech on the net', 15, 'z'); 'tech on the net'LPAD('tech on the net', 16, 'z'); 'ztech on the net'
SELECT LPAD('Good',10,'.'), RPAD('Good',10,'.') FROM dual;
.......Good Good.......
Example
14
Length() returns the length of a string. For example
select length('Oracle') from sys.dual;
Length()
Answer 6
16
Translate is used to change characters. select translate('SMITH','I','O') from sys.dual;
Will change all letter I’s to letter O’s in the stringSMITH.
select translate('HEEEEEEEEEEELP','E','A') from sys.dual;
• We can also specify more than 1 character to translate.select translate('HEEEEEEEEEEELP','LP','AA') from sys.dual;
HEEEEEEEEEEEAA
Translate
17
Replace is similar to translate. With translate there must be a match between the number of characters to change and the number of characters to change with. I.e. we can’t replace X with TR. We can only replace 1 character with 1 character, 2 with 2, etc.
For exampleSELECT replace(job,'ANALYST','BUSANALYST') AS NEWTITLE from EMPLOYEE;
Will search the job column and replace all occurrences of ANALYST with BUSANALYST.
NEWTITLECLERKCLERKSALESMANPRESIDENTBUSANALYSTMANAGERMANAGERSALESMANMANAGERSALESMANSALESMANCLERK
REPLACE()
19
DUAL is a table owned by the SYS user that contains a single VARCHAR2 column called DUMMY and a single row with the value 'X' in it.
This table is handy when you want to select a pseudo column such as SYSDATE or simply select an expression and only want to get a single row back.
SQL> DESC sys.dualName Null? Type------------------------------- -------- -----------------------DUMMY VARCHAR2(1)
Dual
20
Number functions take numbers as input, change them, and output the results as numbers.
Number functions
21
This is used to round values up or down and to specify the number of decimal places. To see this, run
Select round(123.4567,2), round(123.4567,3), round(1234.432,1)
from sys.dual;
• This will output
ROUND(123.4567,2) ROUND(123.4567,3) ROUND(1234.432,1)---------------- ----------------- -----------------123.46 123.457 1234.4
Round()
22
Truncating is similar to rounding. We specify therequired number of decimal places but
Oracle doesn’t round up or down. It simply “chops off” extra digits.• To see the difference, examine the following select round(123.456,2), trunc(123.456,2) from sys.dual;Will returnROUND(123.456,2) TRUNC(123.456,2)------------------------- ----------------------------123.46 123.45
Trunc()
23
This is used to show if a value is zero, positive, or negative. 1 is returned if the number is positive� -1 is returned if the number is negative� 0 is returned if the number is zero�• i.e.
select sign(-11421.215) from sys.dualwill return –1.
Sign()
24
• Raises the value of the number to the next highest integer.• For example, Ceil(13213.4214)
Returns13214
CEIL()
25
Lowers the value to the next lowest integer.For exampleFloor(123.89)Returns 123
Floor()
26
• POWERRaises the number given to the power given.Power(12,2)Raises 12 to the power of 2.
select power(12,2)from sys.dual;Answer:
• OthersThere are other numerical functions which Oracle can use.They are straight forward and easy to use. Other functions includeSQRT (square root), ABS (absolute value), MOD (modulus), LOG (logarithmic), SIN (sine value), COS (cosine value), TAN (tangent value).There are several more.
Power() and others
27
The Four Main DBMS Components
Language to create andmodify data
Data Definition Language
Language toprocess and update data
DataManipulation Language
An electronicdocumentthat providesdetailedinformationabout eachand everypiece of datain the database
Data Dictionary
Software thatgenerates reportsand makes the database user-friendly
Reports and Utilities
DBMS
28
Revision Data Manipulation Language (DML) Select *
◦ From Table Name◦ Where◦ Order by◦ Wildcard ‘%’
Single Row Functions◦ Character Functions – Lower(), Upper(), Instr(),
Substr(), Initcap(), Concat()/||, lpad(), rpad(), ; ltrim(), rtrim()
◦ Number Functions – Round(), Trunc(), Ceil(), Floor(), Power()
29
Revision Data Definition
Language (DDL)◦ Create
CREATE TABLE EMP2 (EMP_NO NUMBER(4) NOT NULL,ENAME VARCHAR2(10),JOB VARCHAR2(9), MGR NUMBER(4),HIREDATE DATE, SAL NUMBER(7,2),COMM NUMBER(7,2),DEPTNO NUMBER(2));
◦ Insert INSERT INTO table
(column1, column2, ... ) VALUES (expression1, expression2, ... );
◦ Update UPDATE table SET column1
= expression1, column2 = expression2, ... WHERE conditions;
◦ Delete DELETE FROM table WHERE
conditions;◦ Drop
DROP TABLE Table Name;
30
Date functions
SYSDATE is a pseudo-column. It is used to retrieve the current date and time.
We normally select sysdate from a dummy table called sys.dual.
◦ Select sysdate from sys.dual;
20-JAN-14
31
Arithmetic on dates
We can add and
subtract from dates. The syntax would be, as an example◦ Select hiredate-7
from employee;
This would return the hiredate minus 1 week (7 days)
select hiredate from employee;07-JAN-1120-FEB-0911-OCT-0720-JAN-1228-JUN-1107-SSelect hiredate-7 from employee;31-DEC-1013-FEB-0904-OCT-0713-JAN-1221-JUN-1131-AUG-13EP-13
32
Working with months
MONTHS_BETWEEN This tells us the number of
months between 2 dates. For example, to determine how
many months an employee has worked is the company, we would run
ADD_MONTHS We use this to add a number of
months to a date. What does the following do?
select hiredate, add_months(hiredate,-3), add_months(hiredate,3) from employee;
Select months_between(sysdate,hiredate)"WITH COMPANY", emp_name from employee;
36.43413306451612903225806451612903225806 HEARNE59 BYRNE75.30510080645161290322580645161290322581 WALSH24 HARTE30.75671370967741935483870967741935483871 DOHERTY4.43413306451612903225806451612903225806 MARTIN
33
Select trunc(months_between(sysdate,hiredate))"WITH COMPANY", emp_name from employee;36 HEARNE
59 BYRNE75 WALSH24 HARTE63 CASEY23 MURRAY30 DOHERTY4 MARTIN
34
Continued..select hiredate, add_months(hiredate,3) from employee;07-JAN-1107-APR-1120-FEB-0920-MAY-0911-OCT-07 11-JAN-0820-JAN-1220-APR-1228-JUN-1128-SEP-1107-SEP-1307-DEC-13
select hiredate, add_months(hiredate,-3), add_months(hiredate,3) from employee;
07-JAN-1107-OCT-10 07-APR-1120-FEB-0920-NOV-08 20-MAY-0911-OCT-07 11-JUL-07 11-JAN-0820-JAN-1220-OCT-11 20-APR-1228-JUN-1128-MAR-11 28-SEP-1107-SEP-1307-JUN-1307-DEC-13
35
Working with days
NEXT_DAY To find the next
occurrence of a particular day, we run next_day. For example,◦ select sysdate,
next_day(sysdate,'FRIDAY') from sys.dual;
will tell us next Friday’s date.
20-JAN-1424-JAN-14
LAST_DAY It is common in
companies that pay day is the last day of the month. To determine this, we use last_day.◦ select last_day(sysdate)
from sys.dual; will give us the date of
the last day of this month.
31-JAN-14