1 / 25

oracle training in hyderabad

Oracle 11g Institutes : kelly technologies is the best Oracle 11g Training Institutes in Hyderabad. Providing Oracle 11g training by real time faculty in Hyderabad.

Download Presentation

oracle training in hyderabad

An Image/Link below is provided (as is) to download presentation Download Policy: Content on the Website is provided to you AS IS for your information and personal use and may not be sold / licensed / shared on other websites without getting consent from its author. Content is provided to you AS IS for your information and personal use only. Download presentation by click this link. While downloading, if for some reason you are not able to download a presentation, the publisher may have deleted the file from their server. During download, if you can't get a presentation, the file might be deleted by the publisher.

E N D

Presentation Transcript


  1. Oracle Architecture Presented By Kelly Technologies www.kellytechno.com Overview

  2. 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

  3. Oracle Architecture • database vs. instance Database Instance Parameter files* Control files** Data files Redo Log files System Global Area (SGA) Background Processes Memory Disk * 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

  4. 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

  5. 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

  6. 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 schema 2. 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_objects User_constraints User_cons_columns And lots more… www.kellytechno.com

  7. Oracle Odds and Ends • Dual table • % - the SQL wildcard • inserting apostrophes • Case sensitive string matching SELECT 1+1*400 FROM DUAL; SELECT ename FROM emp WHERE ename like ‘%neil%’; INSERT INTO emp (name) VALUES (‘O’’Neill); UPDATE emp SET ename=UPPER(ename) WHERE ename='O''Neill'; www.kellytechno.com

  8. 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’; ADATE 17-FEB-00 www.kellytechno.com

  9. 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.FFFFF • Oracle 8: OOOOOO.FFF.BBBBBB.RRR • Called pseudo-column since can be selected www.kellytechno.com

  10. Outer joins in Oracle • Add (+) to table where nulls are acceptable SELECT * FROM emp, dept WHERE emp.deptno(+)=dept.id; www.kellytechno.com

  11. 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

  12. 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

  13. 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

  14. 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

  15. 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

  16. Constraints • Oracle naming of constraints is NOT intuitive! • enabling and disabling disable constraint constraint_name; • the EXCEPTIONS table • run utlexcpt.sql to create EXCEPTIONS table then • alter SQL statement: SQL_queryEXCEPTIONS into EXCEPTIONS; www.kellytechno.com

  17. More objects • Sequences • creating the sequence create sequence CustomerID increment by 1 start with 1000; • selecting from the sequence insert into customer (name, contact, ID) values (‘TManage’,’KristinChaffin’,CustomerID.NextVal); • CurrVal is used after NextVal for related inserts • Synonyms • provide location and owner transparency • Can be public or private www.kellytechno.com

  18. 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 triggers • row level (use FOR EACH ROW clause) • statement level (default) • Before and After triggers • Referencing old and new values www.kellytechno.com

  19. Trigger example SQL> descall_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

  20. Trigger example (cont.) SQL> select trigger_name from all_triggers where owner='SCOTT'; TRIGGER_NAME ------------------------------ AFTER_INS_UPD_ON_EMP set lines 120 col trigger_name format a20 col triggering_event format a18 col table_name format a10 col description format a26 col trigger_body format a35 select trigger_name, trigger_type, triggering_event, table_name, status, description, trigger_body from all_triggers where trigger_name='AFTER_INS_UPD_ON_EMP'; www.kellytechno.com

  21. 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 row begin :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

  22. 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

  23. Understanding Indexes • Index overhead • impact on inserts, updates and deletes • batch inserts can be slowed by indexes - may want to drop, then recreate • rebuilding indexes • Use indexes when query will return less than 5% of rows in a large table • Determining what to index • All primary and foreign keys • Examine SQL and index heavily hit, selective columns (columns often found in where clauses) www.kellytechno.com

  24. 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

  25. THANK YOU www.kellytechno.com

More Related