Bản quyền thuộc COMMIT., JSC.
Oracle Database 10g:
SQL Fundamentals – Review
1-2
Bản quyền thuộc COMMIT., JSC.
SQL Statements
•
SELECT
•
Data Manipulation Language – DML
•
Transaction Control Language – TCL
•
Data Definition Language – DDL
•
Data Control Language – DCL
SELECT Statements
•
Syntax
–
SELECT * | {[DISTINCT] col|expr [[AS] alias],…}
–
FROM table | view | subquery
–
[WHERE {condition(s)}]
–
[GROUP BY col, ]
–
[HAVING {condition(s)}]
–
[ORDER BY {col, expr, alias} [ASC|DESC]]
1-3
Bản quyền thuộc COMMIT., JSC.
Single-Row Functions
Character Functions
•
Case-manipulation Functions
–
LOWER(col|expr)
–
UPPER(col|expr)
–
INITCAP(col|expr)
•
Character-manipulation Functions
–
CONCAT(col1|expr1, col2|expr2)
–
SUBSTR(col|expr, [m], [n])
–
LENGTH(col|expr)
–
INSTR(col|expr, ‘string’, [m], [n])
–
LPAD | RPAD (col|expr, n, ‘string’)
–
TRIM(leading|trailing|both ‘char’
FROM ‘source_string’)
–
REPLACE(text, search_str, replacement_str)
1-4
Bản quyền thuộc COMMIT., JSC.
Single-Row Functions
Number Functions
•
ROUND(col|expr, [n])
•
TRUNC(col|expr, [n])
•
MOD(m, n)
1-5
Bản quyền thuộc COMMIT., JSC.
Single-Row Functions
Date Functions
•
SYSDATE
•
MONTHS_BETWEEN(date1, date2)
•
ADD_MONTHS(date, n)
•
NEXT_DAY(date, ‘char’)
•
LAST_DAY(date)
•
ROUND(date[,’format_model’])
•
TRUNC(date[,’format_model’])
1-6
Bản quyền thuộc COMMIT., JSC.
Single-Row Functions
Conversion Functions
•
Date Character
–
TO_CHAR(date, ‘format_model’)
•
Number Character
•
TO_CHAR(number, ‘format_model’)
•
Character Date
–
TO_DATE(char, ‘format_model’)
•
Character Number
–
TO_NUMBER(char, ‘format_model’)
1-7
Bản quyền thuộc COMMIT., JSC.
Single-Row Functions
General Functions
•
NVL(expr1, expr2)
•
NVL2(expr1, expr2, expr3)
•
NULLIF(expr1, expr2)
•
COALESCE(expr1, expr2, , exprn)
1-8
Bản quyền thuộc COMMIT., JSC.
CASE Expression
–
CASE expr
–
WHEN comparison_expr1 THEN return_expr1
–
[WHEN comparison_expr2 THEN return_expr2
–
–
WHEN comparison_exprn THEN return_exprn
–
ELSE return_expr]
1-9
Bản quyền thuộc COMMIT., JSC.
DECODE Function
DECODE(col|expr,
search1, result1
[, search2, result2, ]
[, default]
1-10
Bản quyền thuộc COMMIT., JSC.
Group Functions
AVG([DISTINCT|ALL] col|expr)
COUNT({*|[DISTINCT|ALL] col|expr})
MAX([DISTINCT|ALL] col|expr)
MIN([DISTINCT|ALL] col|expr)
SUM([DISTINCT|ALL] col|expr)
STDDEV([DISTINCT|ALL] col|expr)
VARIANCE([DISTINCT|ALL] col|expr)
1-11
Bản quyền thuộc COMMIT., JSC.
Join Statements
Cross Join
•
SQL: 1999 Syntax
SELECT <select_clause>
FROM table1
CROSS JOIN table2
•
Oracle Syntax
SELECT <select_clause>
FROM table1, table2
1-12
Bản quyền thuộc COMMIT., JSC.
Join Statements
Natural Join
•
SQL: 1999 Syntax
SELECT <select_clause>
FROM table1
NATURAL JOIN table2
•
Oracle Syntax
SELECT <select_clause>
FROM table1, table2
WHERE {join_conditions}
1-13
Bản quyền thuộc COMMIT., JSC.
Join Statements
Join USING
•
SQL: 1999 Syntax
SELECT <select_clause>
FROM table1
JOIN table2 USING (column)
•
Oracle Syntax
SELECT <select_clause>
FROM table1, table2
WHERE {join_conditions}
1-14
Bản quyền thuộc COMMIT., JSC.
Join Statements
Join ON
•
SQL: 1999 Syntax
SELECT <select_clause>
FROM table1
JOIN table2 ON (conditions)
•
Oracle Syntax
SELECT <select_clause>
FROM table1, table2
WHERE {join_condition}
1-15
Bản quyền thuộc COMMIT., JSC.
Join Statements
Outer Joins
•
SQL: 1999 Syntax
SELECT <select_clause>
FROM table1
LEFT|RIGHT|FULL OUTER JOIN table2
ON (condition)
•
Oracle Syntax
SELECT <select_clause>
FROM table1, table2
WHERE table1.col1[(+)] = table2.col2[(+)]
1-16
Bản quyền thuộc COMMIT., JSC.
Join Statements
Self Join
SELECT <select_clause>
FROM table alias1, table alias2
WHERE alias1.col1 = alias2.col2
1-17
Bản quyền thuộc COMMIT., JSC.
Sub-Query
•
Syntax
SELECT <select_list>
FROM table
WHERE expr operator
(SELECT select_list
FROM table)
•
Classification
–
Single-row
–
Multiple-row
1-18
Bản quyền thuộc COMMIT., JSC.
Single-row Subquery
•
Return only one row
•
Operator:
=
>
<
>=
<=
<>
1-19
Bản quyền thuộc COMMIT., JSC.
Multiple-row Subquery
•
Return more than one row
•
Operator
IN
ALL
ANY
1-20
Bản quyền thuộc COMMIT., JSC.
Top-N Analysis
•
Syntax
SELECT ROWNUM, [column_list]
FROM (SELECT [column_list]
FROM table
ORDER BY top-N_column ASC|DESC)
WHERE ROWNUM <= N;
•
Notes:
–
ROWNUM: assigns a sequential value starting with 1 to each of
the rows returned from the query
–
A WHERE clause specifies the n rows to be returned. The
comparison operator must be < or <=
1-21
Bản quyền thuộc COMMIT., JSC.
Set Operator
•
UNION
•
UNION ALL
•
INTERSECT
•
MINUS
1-22
Bản quyền thuộc COMMIT., JSC.
DML Statements
•
INSERT INTO table[(column_list)]
VALUES (value_list)
•
UPDATE table
SET column = value
[,column = value…]
WHERE conditions
•
DELETE [FROM] table
WHERE conditions
1-23
Bản quyền thuộc COMMIT., JSC.
DML Statements
•
MERGE INTO table1
USING table2 ON (condition)
WHEN MATCHED THEN
UPDATE SET
column = value
[, column = value…]
DELETE WHERE conditions
WHEN NOT MATCHED THEN
INSERT [(column_list)]
VALUES (value_list)
1-24
Bản quyền thuộc COMMIT., JSC.
Transaction Control
•
COMMIT
•
ROLLBACK
•
SAVEPOINT [name]
•
ROLLBACK TO SAVEPOINT [name]
1-25
Bản quyền thuộc COMMIT., JSC.