chapter 3 selected single-row functions and advanced dml & ddl
Post on 09-Jan-2016
55 Views
Preview:
DESCRIPTION
TRANSCRIPT
Chapter Objectives
• Use the UPPER, LOWER, and INITCAP functions to change the case of field values and character strings
• Extract a substring using the SUBSTR function
• Determine the length of a character string using the LENGTH function
Chapter Objectives
• Use the LPAD and RPAD functions to pad a string to a desired width
• Use the LTRIM and RTRIM functions to remove specific characters strings
• Round and truncate numeric data using the ROUND and TRUNC functions
• Calculate the number of months between two dates using the MONTHS_BETWEEN function
Chapter Objectives
• Identify and correct problems associated with calculations involving null values using the NVL function
• Display dates and numbers in a specific format with the TO_CHAR function
• Determine the current date setting using the SYSDATE keyword
• Nest functions inside other functions• Identify when to use the DUAL table
Terminology
• Function – predefined block of code that accepts arguments
• Single-row Function – returns one row of results for each record processed
• Multiple-row Function – returns one result per group of data processed
Character Manipulation Functions
Manipulates data by extracting substrings, counting number of characters, replacing strings, etc.
TO_DATE Function
Converts various date formats to the internal format (DD-MON-YYYY) used by Oracle9i
Nesting Functions
• One function is used as an argument inside another function
• Must include all arguments for each function • Inner function is resolved first, then outer
function
Summary of functions
Single-Row Functions• Text Functions
lpad, rpad, lower, upper, initcap, length, substr, instr, trim, concat
• Arithmetic Functionsabs, round, ceil, floor, mod, sign, sqrt, trunc, vsize
• List Functionsgreatest, least, decode
• Date Functionsadd_months, last_day, months_between, new_time, next_day, round, trunc
• Conversion Functionsto_char, to_number, to_date
DUAL Table
• Dummy table• Consists of one column and one row• Can be used for table reference in the FROM
clause
Ex: select sysdate from dual
Advanced Data Selection in Oracle
Using a Subquery
Multiple-Row Subqueries
SELECT ename, job, salFROM empWHERE sal = (SELECT MIN(sal)
FROM emp);
SELECT empno, ename, job, salFROM empWHERE sal < ANY (SELECT sa FROM emp WHERE job = 'SALESMAN')AND job <> 'SALESMAN';
multiple-row comparison operators – IN, ANY,ALL
Manipulating Oracle Data
Inserting Rows with Null Values and Special Values
Copying Rows from Another Table
INSERT INTO emp (empno, ename, hiredate, job, sal,comm, mgr, deptno) VALUES (113,'Louis', SYSDATE, 'MANAGER', 6900,NULL, NULL, 30);
INSERT INTO sales_reps(id, name, salary, com)SELECT empno, ename, sal, commFROM empWHERE job LIKE '%SALES%';
Creating and Managing Database Objects (Tables)
Creating a Table by Using a Subquery
CREATE TABLE dept30AS
SELECT empno, ename, sal*12 ANNSAL, hiredate
FROM empWHERE deptno = 30;
Creating and Managing Database Objects (Tables)
Common Datatypes
Datatype Description
VARCHAR2(size)
Variable-length character data, can up to 4,000 bytes.
CHAR(size) Fixed-length character data, can up to 2,000 bytes.
NUMBER(p.s) Variable-length numeric data, can up to 38 digits. E.g. Number(5.2) 999.99
DATE Date and time values, 7 bytes.
Other data types included: LONG, CLOB, RAW, LONG RAW, BLOB, BFILE, ROWID … etc.
Creating and Managing Database Objects (Tables)
The Drop Table Statement
DROP TABLE table;
Dropping a Table
DROP TABLE dept30;
Other Database Objects (Views, Sequences) Views
CREATE [OR REPLACE] [FORCE|NOFORCE] VIEW view[(alias[, alias]...)]AS subquery[WITH CHECK OPTION [CONSTRAINT constraint]][WITH READ ONLY [CONSTRAINT constraint]];
DROP VIEW view;
To restrict data accessTo make complex queries easyTo provide data independenceTo present different views of the same dataYou can retrieve data from a view as from a table.
Other Database Objects (Views, Sequences)
Modifying a ViewCREATE OR REPLACE VIEW empv30
(id_no, name, salary)AS SELECT empno, ename, sal
FROM empWHERE deptno = 30;
Drop a View
DROP VIEW empv30
Creating a ViewCREATE VIEW empv30AS SELECT empno, ename, sal
FROM empWHERE deptno = 30;
Other Database Objects (Views, Sequences)
Sequences
CREATE SEQUENCE sequence[INCREMENT BY n][START WITH n][{MAXVALUE n | NOMAXVALUE}][{MINVALUE n | NOMINVALUE}][{CYCLE | NOCYCLE}][{CACHE n | NOCACHE}];
Automatically generates unique numbersIs typically used to create a primary keyReplaces application code
Other Database Objects (Views, Sequences)
Creating a Sequence
NEXTVAL and CURRVAL Pseudocolumns
CREATE SEQUENCE deptid_seqINCREMENT BY 10START WITH 5MAXVALUE 9999;
NEXTVAL returns the next available sequence value. It returns a unique value every time it is referenced, even for different usersCURRVAL obtains the current sequence value. NEXTVAL must be issued for that sequence before CURRVAL contains a value
Other Database Objects (Views, Sequences)
Using a Sequence
View the current value
Removing a Sequence
INSERT INTO dept(deptno, dname, loc)VALUES (deptid_seq.NEXTVAL,'Support',
' HONG KONG' );
SELECT deptid_seq.CURRVALFROM dual;
DROP SEQUENCE deptid_seq;
Appendix B: Useful link
• Try these with SQL
http://www.cse.cuhk.edu.hk/~csc3170/tutorial/index.html• http://db00.cse.cuhk.edu.hk• http://www.db.cs.ucdavis.edu/teaching/sqltutorial• http://www.w3schools.com/sql
top related