Location via proxy:   [ UP ]  
[Report a bug]   [Manage cookies]                
0% found this document useful (0 votes)
30 views

Maa Corporate Training Center: Given by Mr. Loknadh

The document provides an overview of SQL fundamentals and concepts including: - SQL statements are categorized into data manipulation language, data definition language, transaction control, and session control. - Oracle supports various data types including CHAR, VARCHAR2, NUMBER, and DATE. - Queries can use comparison operators, logical operators, and other clauses like WHERE, ORDER BY, CASE to filter and sort data. - The LIKE operator is used for pattern matching with wildcards, and NULL values require IS NULL instead of equality operators.

Uploaded by

Irfan Ahmad
Copyright
© © All Rights Reserved
Available Formats
Download as DOC, PDF, TXT or read online on Scribd
0% found this document useful (0 votes)
30 views

Maa Corporate Training Center: Given by Mr. Loknadh

The document provides an overview of SQL fundamentals and concepts including: - SQL statements are categorized into data manipulation language, data definition language, transaction control, and session control. - Oracle supports various data types including CHAR, VARCHAR2, NUMBER, and DATE. - Queries can use comparison operators, logical operators, and other clauses like WHERE, ORDER BY, CASE to filter and sort data. - The LIKE operator is used for pattern matching with wildcards, and NULL values require IS NULL instead of equality operators.

Uploaded by

Irfan Ahmad
Copyright
© © All Rights Reserved
Available Formats
Download as DOC, PDF, TXT or read online on Scribd
You are on page 1/ 25

MAA CORPORATE TRAINING CENTER

1. SQL Fundamentals

SQL is the basic Language used for retrieve and manipulate data from database.

SQL is non procedural Language , does not contains Programming constructs like Loops.

SQL is 4th generation language , request-response kind of language.

ANSI has standards for SQL , Oracle Supports there standards of SQL and extended its SQL to
support it.

2. SQL Statements Categories

1. Data Manipulation Language (DML)

Used to access, create, modify, or delete data in the existing structures of the database.

Statements Include:

INSERT,INSERT,UPDATE,DELETE,MERGE

2. Data Definition Language (DDL)

Used to define, alter, or drop database objects and their privileges.

Statements Include :

CREATE, ALTER,DROP,RENAME,TRUNCATE, GRANT,REVOKE,AUDIT,NOAUDIT

3. Transaction Control

Used to group a set of DML statements as a single transaction.

COMMIT,ROLLBACK,SAVEPOINT,SET TRANSACTION

4. Session Control

Used to control the properties of a user session.

Includes : ALTER SESSION, SET ROLE

5. System Control

Used to Manage the Properties of the Database

ALTER SYSTEM

Given by Mr. Loknadh


MAA CORPORATE TRAINING CENTER
3. Oracle Built-In Data Types

CHAR ( <size> ) : Default 1 , Maximum : 2KB

-Fixed-Length, Alpha Numeric

-Space-padded to fill maximum Length

VARACHAR2(<size>) : Default : NA : Maximum: 4K

: Variable-Length, Alpha Numeric

: ONLY required amount of space is used for columns.

NUMBER((<p>. <s>) : P 1-38 , S -84 – 127

: NUMBER(5,2) : 5-2 = 3 , Integer Part : 3 Decimal Part 2

It can store -999.99 to 999.99

Oracle rounds the values in the scale part is smaller than inserted number.

Ex : NUMBER(4,2) : 12.124 Stored as 12.12

If Scale is Negative, rounded to left of the decimal.

Given by Mr. Loknadh


MAA CORPORATE TRAINING CENTER
Examples

Given by Mr. Loknadh


MAA CORPORATE TRAINING CENTER

Date : 7 Bytes

Date stores Date and Time information

Functions are applied to convert this data type.

Occupies 7-Bytes

Century:Year:Month:Day:Hour:Minute:Second

Default Date Format : DD-MON-YY

Given by Mr. Loknadh


MAA CORPORATE TRAINING CENTER
SYSDATE Function returns Current system date in Database server

Arithmetic Operators and Precedence

+ - (Unary)

+, - ,* /

Precedence

1 -+ Unary operators, negation

2 */ Multiplication, division

3 + - || Addition, subtraction, concatenation

Example : 1+2*3 , (1+2) * 3

Concatenation: Joins two Character Strings

‘’ ||’’

SET Operators

UNION Returns all rows from either queries; no duplicate rows


UNION ALL Returns all rows from either query, including duplicates
INTERSECT Returns distinct rows that are returned by both queries
MINUS Returns distinct rows that are returned by the first query
but not returned by the second.

Literals :

Text : ‘I am ‘||name ||’ DBA’

Integer /Numbers : 50 , 43.21

Interval : Specify Period of Times in terms of Years or Months, Days to Seconds

INTERVAL YEAR TO MONTH, INTERVAL DAY TO SECOND

Write Simple Queries

Query is to request Database for Information

Given by Mr. Loknadh


MAA CORPORATE TRAINING CENTER

SELECT Statement

SELECT * FROM <Tables>

“*” represents all columns

Column Alias

SQL> SELECT job_title AS Title,


min_salary AS "Minimum Salary" FROM jobs
SQL> /

DISTINCT /UNIQUE

Uniqueness is verified against complete row.

SQL> SELECT DISTINCT department_id FROM employees;

SQL> SELECT DISTINCT department_id, job_id FROM employees;

DUAL Table

Dummy table available to users in the database.

Contains one row and one column

Used to Select SYSTEM Varibles and evaluate Expressions

Limiting Rows

WHERE Clause is used to limit the number rows retrieved

SQL>SELECT first_name ||''||last_name "Name",


2 department_id
3 FROM employees
4 WHERE department_id =90;

Comparison Operators

=, !=, <,> ,=<,=>

NULL Does not participate in Comparison

Given by Mr. Loknadh


MAA CORPORATE TRAINING CENTER

Logical Operators

AND TRUE FLASE NULL

TRUE TRUE FALSE NULL

FALSE FALSE FALSE FALSE

NULL NULL FLASE NULL

OR TRUE FLASE NULL

TRUE TRUE TRUE TRUE

FALSE TRUE FALSE NULL

NULL TRUE NULL NULL

NOT

TRUE FALSE

FALSE TRUE

NULL NULL

Examples :

SQL> SELECT first_name, department_id


2 FROM employees
3* WHERE not (department_id >= 30);

SQL> SELECT first_name, salary


2 FROM employees
3 WHERE last_name = 'Smith'
4* AND salary > 7500;

SQL> SELECT first_name, last_name


2 FROM employees
3 WHERE first_name = 'Kelly'
4* OR last_name = 'Smith';

Given by Mr. Loknadh


MAA CORPORATE TRAINING CENTER
Other Operators

IN and NOT IN Operators: Test for membership condition

SQL> SELECT first_name, last_name, department_id


2 FROM employees
3 WHERE department_id IN (10, 20, 90);

SQL> SELECT first_name, last_name, department_id


2 FROM employees
3 WHERE department_id NOT IN
4* (10, 30, 40, 50, 60, 80, 90, 110, 100)
SQL> /

BETWEEN : Used to test a range Inclusively of boundaries

SQL> SELECT first_name, last_name, salary


2 FROM employees
3* WHERE salary BETWEEN 5000 AND 6000;

SQL> SELECT first_name, last_name, salary


2 FROM employees
3* WHERE first_name BETWEEN ‘A’ AND ‘G’;

EXISTS: The EXISTS operator is always followed by a sub query in parenthesis.

EXISTS evaluates to TRUE if sub query returns at least one row

SQL> SELECT last_name, first_name, department_id


2 FROM employees e
3 WHERE EXISTS (select 1 FROM departments d
4 WHERE d.department_id = e.department_id
5* AND d.department_name = 'Administration');

IS NULL and IS NOT NULL

= and != operators does not work with NULL Values.

IS NULL is used evaluate them.

SQL> SELECT last_name, department_id


2 FROM employees
3 WHERE department_id IS NULL;
LAST_NAME DEPARTMENT_ID
------------------------- -------------
Grant
SQL>

Given by Mr. Loknadh


MAA CORPORATE TRAINING CENTER
LIKE

Used for Pattern Matching

% Is used match any character and number of characters

_ used to match any character but one character

Escape : Using ESCAPE Keyword

SQL> SELECT first_name, last_name


2 FROM employees
3 WHERE first_name LIKE 'Su%'
4* AND last_name NOT LIKE 'S%';

SQL> SELECT job_id, job_title


2 FROM jobs
3 WHERE job_id like 'AC\_%' ESCAPE '\';

Sorting Rows

ORDER BY ASC, DESC

NULLS FIRST/LAST

SQL> SELECT first_name, hire_date, salary, manager_id mid


2 FROM employees
3 WHERE department_id IN (110,100)
4* ORDER BY mid ASC, salary DESC, hire_date;

Given by Mr. Loknadh


MAA CORPORATE TRAINING CENTER
SQL> SELECT DISTINCT 'Region ' || region_id
2 FROM countries
3 ORDER BY region_id;
ORDER BY region_id
*
ERROR at line 3:
ORA-01791: not a SELECTed expression

SQL> SELECT DISTINCT 'Region ' || region_id


2 FROM countries
3 ORDER BY 'Region ' || region_id;

SQL> SELECT first_name, hire_date, salary, manager_id mid


2 FROM employees
3 WHERE department_id IN (110,100)
4* ORDER BY 4, 2, 3;

SQL> SELECT last_name, commission_pct


2 FROM employees
3 WHERE last_name LIKE 'R%'
4* ORDER BY commission_pct ASC, last_name DESC;

SQL> SELECT last_name, commission_pct


2 FROM employees
3 WHERE last_name LIKE 'R%'
4* ORDER BY commission_pct ASC NULLS FIRST, last_name
DESC;

CASE Statement

Case statement is used to derive IF-THEN-ELSE Logic

SQL> SELECT country_name, region_id,


2 CASE region_id WHEN 1 THEN 'Europe'
3 WHEN 2 THEN 'America'
4 WHEN 3 THEN 'Asia'
5 ELSE 'Other' END Continent
6 FROM countries
7* WHERE country_name LIKE 'I%';

SQL> SELECT first_name, department_id, salary,


2 CASE WHEN salary < 6000 THEN 'Low'
3 WHEN salary < 10000 THEN 'Medium'
4 WHEN salary >= 10000 THEN 'High' END Category
5 FROM employees
6 WHERE department_id <= 30

Given by Mr. Loknadh


MAA CORPORATE TRAINING CENTER

2. SQL*Plus Overview
SQL*Plus is widely used tool by DBAs and Developers to access database.

SQL*Plus is Installed with Client Software

Automatically installed when Server software is installed.

Connect SQLPlus Session

Sqlplus username/password@connectstring

SQL> connect USERNAME/Password

SQL>DISCONNECT

SQL> Password SCOTT : To Change Scott Password

Entering SQL Statements

Statements can be entered in multiple Lines

End of statements denoted by semicolon

Previously executed Statements are stored SQL Buffer

/ or RUN is used to re execute the statement in the buffer

Edit the Buffer

DEFINE _EDITOR=vi

SQL>LIST (L) : Shows Statements in the buffer

SQL>APPEND (A) WHERE EMPLOYEE_NUMBER=110 : Appends at the end of the line

SQL> CHANGE (C) / <> /= : Changes <> to =

SQL>I

7777 AND

EMP_NO=110

SQL> 3

SQL > DEL Deletes Current Line

SQL> CLEAR BUFFER

SQL>CLEAR SCREEN

Given by Mr. Loknadh


MAA CORPORATE TRAINING CENTER
Using Script Files

SQL> SAVE filename : Saves statement in buffer to file

SQL>@filename : Runs the File , @@ to Run from within a file

SQL>EDIT : Edit the Buffer

SQL>GET filename : Gets file content to buffer

Saving Results to File

SPOOL filename

Comments

“—“ Line Comment

/* */ Single/Multiline Comments

Customize SQL*Plus Environment

SHOW variable/ALL: Shows the environment

SET Command : To Modify the values

Important Variables

SET LINESIZE

SET AUTOCOMMIT OFF

SET SCAN OFF

SET TIME ON

Formatting output

COL colname for a23

COL colname for 999

Given by Mr. Loknadh


MAA CORPORATE TRAINING CENTER

3. Functions

Functions are programs that take zero or more arguments and returns a single value

Types of Functions:

Single Row Functions

Group Functions

Analytics Functions

3.1 Single Row Functions

Single row Functions can be incorporated into SELECT, WHERE, ORDER BY Clauses

NULL and Single Row Functions

NVL , NVL2

SELECT first_name, last_name, salary, bonus


,salary + bonus total_comp
FROM employees;

SELECT first_name, last_name, salary, bonus


,salary + NVL(bonus,0) total_comp
FROM employees;

SELECT first_name, last_name, salary, bonus


,NVL2(bonus,salary + bonus,salary) total_comp
FROM employees;

Given by Mr. Loknadh


MAA CORPORATE TRAINING CENTER
Single Row Character Functions

Given by Mr. Loknadh


MAA CORPORATE TRAINING CENTER

INSTR(<c1>,<c2>[,<i>[,<j>]])

I : Starting Position

J : J th Occurance

SELECT INSTR('Mississippi', 'i',3,3) test1


,INSTR('Mississippi', 'i',1,3) test1
,INSTR('Mississippi', 'i',-2,3) test3
FROM dual;

LENGTH

SELECT LENGTH('The Three Musketeers') title_length


FROM dual;

LOWER

SELECT colorname, LOWER(colorname)


FROM itemdetail
WHERE LOWER(colorname) LIKE '%white%';

UPPER

SELECT ename, job, hiredate


FROM emp
WHERE UPPER(ename) LIKE 'KIN%';

LTRIM

SELECT LTRIM('Mississippi','Mis') test1


,LTRIM('Rpadded ') test2
,LTRIM(' Lpadded') test3
,LTRIM(' Lpadded', 'Z') test4
FROM dual;

RTRIM

SELECT RTRIM('Mississippi','ip') test1


,RTRIM('Rpadded ') test2
,RTRIM('Rpadded ', 'Z') test3
,RTRIM(' Lpadded') test4
FROM dual;

LPAD

SELECT LPAD(answer,7,'.') dot_padded


,LPAD(answer,7, ' ') space_padded
,answer unpadded
FROM questions;

RPAD

Given by Mr. Loknadh


MAA CORPORATE TRAINING CENTER
SELECT RPAD(table_name,38,'.') table_name
,num_rows
FROM user_tables;

REPLACE

SELECT REPLACE('uptown','up','down') FROM dual;

SUBSTR

SELECT SUBSTR('The Three Musketeers',1,3) Part1


,SUBSTR(‘The Three Musketeers’,5,5) Part2
,SUBSTR(‘The Three Musketeers’,11) Part3
,SUBSTR(‘The Three Musketeers’,-10) Part3a
FROM dual;

Single Row Numeric Functions

Given by Mr. Loknadh


MAA CORPORATE TRAINING CENTER

CEIL

SELECT CEIL(9.8) ,CEIL(-32.85) ,CEIL(0),CEIL(5) FROM dual;

FLOOR

SELECT FLOOR(9.8),FLOOR(-32.85),FLOOR(137) FROM dual;

ROUND
SELECT ROUND(12345,-2) test1 ,ROUND(12345.54321,2) test2 FROM dual;

Given by Mr. Loknadh


MAA CORPORATE TRAINING CENTER
TRUNC

SELECT TRUNC(123.456,2) pos ,TRUNC(123.456,-1) neg FROM dual;

SIGN
SELECT SIGN(-2.3) ,SIGN(0) ,SIGN(47) FROM dual;

Date Functions

Given by Mr. Loknadh


MAA CORPORATE TRAINING CENTER

ADD_MONTHS

SELECT SYSDATE ,ADD_MONTHS(SYSDATE,3) plus_3 ,ADD_MONTHS(SYSDATE,-2) minus_2


FROM dual;

CURRENT_DATE

SELECT SYSDATE ,CURRENT_DATE ,SESSIONTIMEZONE FROM dual;

CURRENT_TIMESTAMP

SELECT CURRENT_TIMESTAMP FROM dual;

DBTIMEZONE

SELECT DBTIMEZONE FROM dual;


ALTER DATABASE SET TIME_ZONE='-06:00';

EXTRACT ( <c> FROM <date> )

Extracts c from date


c Can be YEAR, MONTH, DAY,
HOUR, MIN, SECOND, TIMEZONE_HOUR, TIMEZONE_MINUTE, TIMEZONE_REGION

Given by Mr. Loknadh


MAA CORPORATE TRAINING CENTER
SELECT SYSDATE ,EXTRACT(YEAR FROM SYSDATE ) YEAR
,EXTRACT(MONTH FROM SYSTIMESTAMP) MONTH
,EXTRACT(TIMEZONE_HOUR FROM SYSTIMESTAMP) TZH
FROM dual;

LAST_DAY

SELECT SYSDATE ,LAST_DAY(SYSDATE) END_OF_MONTH ,LAST_DAY(SYSDATE)+1


NEXT_MONTH FROM dual;

MONTHS_BETWEEN

SELECT MONTHS_BETWEEN('19-Dec-2002','19-Mar-2003') test1


,MONTHS_BETWEEN('19-Dec-2002','19-Mar-2002') test2
FROM dual

NEXT_DAY

SELECT NEXT_DAY('01-Jan-2000','Monday') "1st Monday"


,NEXT_DAY('01-Nov-2004','Tuesday')+7 "2nd Tuesday"
FROM dual;

ROUND
SELECT SYSDATE,ROUND(SYSDATE,'HH24') FROM dual;

TRUNC
SELECT TRUNC(last_analyzed,'HH') FROM user_tables
WHERE table_name='TEST_CASE';

SYSTEMTIMESTAMP/SYSDATE

SELECT SYSTIMESTAMP ,SYSDATE from dual;

Conversion Functions

Given by Mr. Loknadh


MAA CORPORATE TRAINING CENTER

TO_CHAR(<x>,[,<frmt>])

Given by Mr. Loknadh


MAA CORPORATE TRAINING CENTER

Given by Mr. Loknadh


MAA CORPORATE TRAINING CENTER

SELECT SYSDATE
,TO_CHAR(SYSDATE,'Mmspth') Month
,TO_CHAR(SYSDATE,'DDth') Day
,TO_CHAR(SYSDATE,'Yyyysp') Year
FROM dual;

SELECT TO_CHAR(SYSDATE,'MONTH') upperCase


,TO_CHAR(SYSDATE,'Month') mixedCase
,TO_CHAR(SYSDATE,'month') lowerCase
FROM dual;

Given by Mr. Loknadh


MAA CORPORATE TRAINING CENTER
TO_DATE

INSERT INTO demo (demo_key, date_col)


VALUES (1,TO_DATE('04-Oct-1957','DD-Mon-YYYY') );

Other Functions

DECODE

SELECT sid ,serial# ,username


,DECODE(command
,0,'None'
,2,'Insert'
,3,'Select'
,6,'Update'
,7,'Delete'
,8,'Drop'
,'Other') cmd from v$session;

GREATEST

SELECT GREATEST('19','24',9) string FROM dual;

LEAST
SELECT LEAST(SYSDATE,'15-MAR-2002','17-JUN-2002') oldest
FROM dual;

NULLIF(x1,x2)
Returns NULL if x1=x2 otherwise returns x1;

Group Functions

AVG : Returns the statistical mean


COUNT :Returns number of non-NULL rows
MAX : Returns largest Value
MIN : Return smallest value
SUM : Return Sum of all values

AVG([{DISTINCT | ALL}] <n>),

SELECT job_id, AVG(salary)


FROM hr.employees
WHERE job_id like ‘AC%’
GROUP BY job_id;

COUNT

SELECT COUNT(*) emp_count


,COUNT(DISTINCT department_id) dept_count
,COUNT(ALL department_id) non_null_dept_count
FROM hr.employees

Given by Mr. Loknadh


MAA CORPORATE TRAINING CENTER
MIN
SELECT MIN(hire_date)
,MIN(salary)
,MIN(last_name)
FROM hr.employees;

SUM

SELECT SUM(blocks)
FROM user_tables;

GROUP BY

SELECT cust_state_province, count(*) customer_count


FROM sh.customers
GROUP BY cust_state_province;

HAVING

SELECT t.fiscal_month_desc ,s.channel_id


,SUM(s.quantity_sold)
,SUM(s.amount_sold)
FROM sh.times t
,sh.sales s
WHERE t.time_id = s.time_id
AND s.promo_id <> 9999
GROUP BY t.fiscal_month_desc, s.channel_id
HAVING SUM(S.amount_sold) > 2000000;

Given by Mr. Loknadh

You might also like