oracle training in hyderabad
DESCRIPTION
Oracle 11g Institutes : kelly technologies is the best Oracle 11g Training Institutes in Hyderabad. Providing Oracle 11g training by real time faculty in Hyderabad. - PowerPoint PPT PresentationTRANSCRIPT
ORACLE ARCHITECTURE Overview
Presented ByKelly Technologies
www.kellytechno.com
ORACLE TERMS
Schema – logical collection of user’s objects Tablespace – logical space used for storage Datafile – physical file used for storage Extent – group of contiguous blocks Block – unit of physical storage
www.kellytechno.com
ORACLE ARCHITECTURE
database vs. instance
Parameter files*Control files**
Data filesRedo Log files
System Global Area (SGA)Background Processes
Disk Memory
Database Instance
* Parameter files include the init<SID>.ora and config<SID>.ora files. These are used to set options for the database.** Control files contain information about the db in binary form. They can be backed up to a text file however.
www.kellytechno.com
ORACLE VS. ACCESS AND MYSQL Access
One .mdb file contains all objects Limited roles/permissions
MySQL Three files per table Permissions based on user, database, and host
Oracle Many files Many roles/permissions possible
www.kellytechno.com
THE ORACLE DATA DICTIONARY
Collection of tables and views that show the inner workings and structure of the db
“static” data dictionary views owned by SYS created by catalog.sql script at db creation contain DDL info
dynamic data dictionary views also referred to as V$ views based on virtual tables (X$ tables) provide info about the instance
www.kellytechno.com
MORE DATA DICTIONARY
Create table samples (ID number(3) primary key,Type varchar2(5),Constraint type_ck check (type in (‘photo’,’swatch’))…);
1. Samples table created in user’s schema2. Primary key index created in user’s schema (SYS_C984620)
3. Data dictionary is also updated, with rows being inserted into tables underlying the following data dictionary views:
User_objectsUser_constraintsUser_cons_columnsAnd lots more…
www.kellytechno.com
ORACLE ODDS AND ENDS
Dual table
% - the SQL wildcard
inserting apostrophes
Case sensitive string matchingINSERT INTO emp (name) VALUES (‘O’’Neill);
UPDATE emp SET ename=UPPER(ename) WHERE ename='O''Neill';
SELECT 1+1*400 FROM DUAL;
SELECT ename FROM emp WHERE ename like ‘%neil%’;
www.kellytechno.com
SYSDATE
Sysdate returns current system date AND time use trunc function to remove time piece
Example:select to_char (adate, ‘dd-mon-yy hh24:mi:ss’)
TO_CHAR(ADATE, ‘DD-MON-YY:HH24:MI:SS’)17-feb-00 23:41:50
select adate from samples where trunc(adate)=‘17-feb-00’;
ADATE17-FEB-00
www.kellytechno.com
ROWID
ROWID is an internal number Oracle uses to uniquely identify each row
NOT a primary key! Is the actual location of a row on a disk. Very efficient for retrieval.
Format specifies block, row, and file (and object in 8)Oracle 7: BBBBBBB.RRRR.FFFFFOracle 8: OOOOOO.FFF.BBBBBB.RRR
Called pseudo-column since can be selected
www.kellytechno.com
OUTER JOINS IN ORACLE
Add (+) to table where nulls are acceptable
SELECT *FROM emp, deptWHERE emp.deptno(+)=dept.id;
www.kellytechno.com
ORACLE SQL FUNCTIONS Upper(), lower() Substr(), replace(), rtrim(), concat()
Length() Floor(), sqrt(), min(), max(), stddev()
Add_months(), months_between(), last_day()
To_date(), to_char(), to_lob()
www.kellytechno.com
MORE FUNCTIONS
nvl() If NULL, return this instead…
Nvl(lastname,’Anonymous’)
decode() Sort of like an If/Then statement…
Decode(gender,0,’Male’,1,’Female’,’Unknown’)
www.kellytechno.com
ORACLE ERROR MESSAGES Divided into groups by first three letters (e.g.
ORA or TNS) Number gives more information about error Several messages may be related to only one
problem
oerr facility
www.kellytechno.com
CONSTRAINTS Primary key Foreign key Unique, not null Check Name your constraints User constraints, user_cons_columns
CREATE TABLE test ( id NUMBER(2), col2 VARCHAR2(2), col3 VARCHAR2(3), CONSTRAINT test_pk PRIMARY KEY(id), CONSTRAINT col3_ck CHECK (col3 IN ('yes','no')) );
www.kellytechno.com
SELECT
user_constraints.constraint_name name,
constraint_type type,
user_constraints.search_condition
FROM user_constraints, user_cons_columns
WHERE
user_constraints.table_name=user_cons_columns.table_name
AND user_constraints.constraint_name=user_cons_columns.constraint_name
AND user_constraints.owner=user_cons_columns.owner
AND user_constraints.table_name=‘TEST’;
NAME T SEARCH_CONDITION
--------------- - -------------------------
COL3_CK C col3 IN ('yes','no')
TEST_PK P
www.kellytechno.com
CONSTRAINTS
Oracle naming of constraints is NOT intuitive!
enabling and disablingdisable constraint constraint_name;
the EXCEPTIONS table run utlexcpt.sql to create EXCEPTIONS table then alter SQL statement:
SQL_query EXCEPTIONS into EXCEPTIONS;
www.kellytechno.com
MORE OBJECTS Sequences
creating the sequencecreate sequence CustomerID increment by 1 start with 1000;
selecting from the sequenceinsert into customer (name, contact, ID) values (‘TManage’,’Kristin Chaffin’,CustomerID.NextVal);
CurrVal is used after NextVal for related inserts Synonyms
provide location and owner transparencyCan be public or private
www.kellytechno.com
PL/SQL - TRIGGERS
Executed on insert, update, delete Use to enforce business logic that can’t
be coded through referential integrity or constraints
Types of triggersrow level (use FOR EACH ROW clause)statement level (default)Before and After triggers
Referencing old and new values
www.kellytechno.com
TRIGGER EXAMPLESQL> desc all_triggers; Name Null? Type ------------------------------- -------- ---- OWNER VARCHAR2(30) TRIGGER_NAME VARCHAR2(30) TRIGGER_TYPE VARCHAR2(16) TRIGGERING_EVENT VARCHAR2(75) TABLE_OWNER VARCHAR2(30) BASE_OBJECT_TYPE VARCHAR2(16) TABLE_NAME VARCHAR2(30) COLUMN_NAME VARCHAR2(4000) REFERENCING_NAMES VARCHAR2(128) WHEN_CLAUSE VARCHAR2(4000) STATUS VARCHAR2(8) DESCRIPTION VARCHAR2(4000) ACTION_TYPE VARCHAR2(11) TRIGGER_BODY LONG
www.kellytechno.com
TRIGGER EXAMPLE (CONT.)
SQL> select trigger_name from all_triggers where owner='SCOTT';
TRIGGER_NAME------------------------------AFTER_INS_UPD_ON_EMP
set lines 120col trigger_name format a20col triggering_event format a18col table_name format a10col description format a26col trigger_body format a35select trigger_name, trigger_type, triggering_event, table_name, status, description, trigger_bodyfrom all_triggerswhere trigger_name='AFTER_INS_UPD_ON_EMP';
www.kellytechno.com
TRIGGER EXAMPLE (CONT.)
SQL> /
TRIGGER_NAME TRIGGER_TYPE TRIGGERING_EVENT TABLE_NAME STATUS DESCRIPTION-------------------- ---------------- ------------------ ---------- -------- -----------------------TRIGGER_BODY-----------------------------------AFTER_INS_UPD_ON_EMP BEFORE EACH ROW INSERT OR UPDATE EMP ENABLED scott.after_ins_upd_on_emp
before insert or update on scott.emp for each rowbegin :new.ename := upper(:new.ename);
end;
The above trigger was created with the following statement:
create or replace trigger scott.after_ins_upd_on_emp before insert or update on scott.emp for each row begin :new.ename := upper(:new.ename);end;
www.kellytechno.com
REMEMBER THOSE VIEWS?
Query USER_TRIGGERS to get trigger info Query USER_SOURCE to get source of
procedure, function, package, or package body
Query USER_ERRORS to get error information (or use show errors)
col name format a15
col text format a40
select name, type, text
from user_errors
order by name, type, sequence;
Query USER_OBJECT to get status info
www.kellytechno.com
UNDERSTANDING INDEXES
Index overhead impact on inserts, updates and deletesbatch inserts can be slowed by indexes - may
want to drop, then recreaterebuilding indexes
Use indexes when query will return less than 5% of rows in a large table
Determining what to indexAll primary and foreign keysExamine SQL and index heavily hit, selective
columns (columns often found in where clauses)
www.kellytechno.com
WHAT NOT TO INDEX…PREFERABLY
columns that are constantly updated columns that contain a lot of null values columns that have a poor distribution of data
Examples: yes/no true/false male/female
www.kellytechno.com
THANK YOU
www.kellytechno.com