Presentation on theme: "Oracle Academy Egypt Virtual training week 8 Sections from 7 to 9."— Presentation transcript:
Oracle Academy Egypt Virtual training week 8 Sections from 7 to 9
Oracle Academy Egypt Create table copy_departments As (select * from departments) This syntax used to create table with same structure and same data type and all rows of the originL Table with other name. _____________________________________________ Create table sales_reps As (select * from employees Where 1 = 2) This syntax used to create table with same structure and same data type but without any row.
Multi-table inserts can be unconditional or conditional. In an unconditional multitable insert Oracle will insert all rows returned by the subquery into all table insert clauses found in the statement. In a conditional multi-table insert you can specify either ALL or FIRST. ALL If you specify ALL, the default value, then the database evaluates each WHEN clause regardless of the results of the evaluation of any other WHEN clause. For each WHEN clause whose condition evaluates to true, the database executes the corresponding INTO clause list. FIRST If you specify FIRST, then the database evaluates each WHEN clause in the order in which it appears in the statement. For the first WHEN clause that evaluates to true, the database executes the corresponding INTO clause and skips subsequent WHEN clauses for the given row. ELSE clause For a given row, if no WHEN clause evaluates to true, then: If you have specified an ELSE clause, then the database executes the INTO clause list associated with the ELSE clause. If you did not specify an else clause, then the database takes no action for that row.
Oracle Academy Egypt INSERT ALL INTO all_calls VALUES (caller_id, call_timestamp, call_duration, call_format) INTO police_record_calls VALUES (caller_id, call_timestamp, recipient_caller) SELECT caller_id, call_timestamp, call_duration, call_format, recipient_caller) FROM calls WHERE TRUNC(call_timestamp ) = TRUNC(SYSDATE ) Multitable insert Unconditional
Oracle Academy Egypt Multi-Table Inserts Conditional INSERT ALL WHEN call_ format IN (tlk,txt,pic) THEN INTO all_calls VALUES (caller_id, call_timestamp, call_duration, call_format) WHEN call_ format IN (tlk,txt) THEN INTO police_record_calls VALUES (caller_id, call_timestamp, recipient_caller) WHEN call_duration < 50 AND call_type = tlkTHEN INTO short_calls VALUES (caller_id, call_timestamp, call_duration) WHEN call_duration > = 50 AND call_type = tlkTHEN INTO long_calls VALUES (caller_id, call_timestamp, call_duration) SELECT caller_id, call_timestamp, call_duration, call_format, recipient_caller) FROM calls WHERE TRUNC(call_timestamp ) = TRUNC(SYSDATE )
0 If you dont enter any value a 0 will be entered, same time any other number (value) can be entered The length of the character is up to 10 characters
Oracle Academy Egypt In this case 0 will be added
Oracle Academy Egypt External Tables an external table would be used to store data migrated from older versions of the databases used by a company. The syntax to create an external table Same syntax for creating table in addition to the following ….. ORGANIZATION EXTERNAL -- tells Oracle to create an external table (TYPE ORACLE_LOADER -- of type Oracle Loader (an Oracle Product) DEFAULT DIRECTORY def_dir1 -- what is the name of the directory where the file exists ACCESS PARAMETERS -- how to read the file (RECORDS DELIMITED BY NEWLINE -- how to identify a new row starts FIELDS – the start of the external file field name and datatype specification... LOCATION – name of the actual file containing the data
Oracle Academy Egypt Data dictionary contains what is called meta data (data of data)
Oracle Academy Egypt Show all available views in your schema Show the names of all tables in your schema Show all objects available in your schema Show the names of the objects and their titles in your schema
Flashback This command can be used to restore a table, a view or an index that was dropped in error. Also used to view row data at specific points in time, so we can compare different versions of a row over time. (We can use this facility to look at what the rows looked like BEFORE those changes were applied)
Oracle Academy Egypt FLASHBACK TABLE FLASHBACK TABLE tablename TO BEFORE DROP; Note/ As the owner of a table you can issue the flashback command, and if the table that you are restoring had any indexes, then these are also restored.
Oracle Academy Egypt FLASHBACK QUERY A typical flashback query might look like this: SELECT versions_starttime AS "START_DATE", versions_endtime AS "END_DATE", salary FROM employees VERSIONS BETWEEN SCN MINVALUE AND MAXVALUE WHERE department_id = 90;
FLASHBACK QUERY SELECT versions_starttime "START_DATE", versions_endtime "END_DATE", salary FROM employees VERSIONS BETWEEN SCN MINVALUE AND MAXVALUE WHERE department_id=90 Rows from the oldupdated version are in red in the output table below:
Oracle Academy Egypt NOTE Oracle is getting the FLASHBACK QUERY data from the before images held in the database in the UNDO tablespace. Typically, this UNDO data is only available for up to 15 minutes after the transaction was committed. Once the UNDO data has been overwritten by Oracle, Flashback queries are no longer possible, so if you want to use this functionality, you will have to do it quickly after the changes were committed.
clients_client_num_pk SYS_C00585417. When the constraint is created, it can be given a name, such as clients_client_num_pk, or given no name, in which case the system gives the constraint a name, such as SYS_C00585417. Note: If the word CONSTRAINT is used in the CREATE TABLE definition, you must give the constraint a name. It is best to name constraints yourself. Why? The system-generated names are not intuitive. You can do better than the database when it comes to naming!