Postgraduate Diploma in Oracle SQL & PL/SQL Database Development (PG Dip. Oracle) via Online Distance Learning

Enrolment date: 25 August 2017

Our Postgraduate Diploma in Oracle Programming course provides you with the skillset you will need to develop and manage high performance Oracle Databases to a professional standard using PL/SQL.

 

As you progress through the course you will also learn to master the issues database administrators and developers deal with every day enabling you to become a highly proficient Oracle Developer This course covers the objectives for the current and prior version of the following Oracle exams:

• PL/SQL Developer OCA

• Oracle Database SQL Expert exam.

 

This course is designed to help novices become literate in Oracle Programming and experienced programmers become highly-skilled Oracle Developers.This course is certified by the Institute of Commercial Management and the Diploma qualification is recognised in over 140 countries worldwide.

Installing the Oracle Database Server and Other Software

Installing Oracle, Installing Oracle SQL Developer, Configuring Oracle, Logging on, Creating a Database, Running and SQL Script.

Using Oracle SQL Developer, SQL Plus and iSQL Plus

SQL and iSQL*Plus Interaction, SQL Statements versus iSQL*Plus Commands, Overview of iSQL*Plus, Logging In to iSQL*Plus, The iSQL*Plus Environment, Displaying Table Structure, Interacting with Script Files

Introduction to Relational Databases and Database Design

Writing Basic SQL SELECT Statements

Capabilities of SQL SELECT Statements, Basic SELECT Statement, Selecting All Columns, Selecting Specific Columns, Writing SQL Statements, Column Heading Defaults, Arithmetic Expressions, Using Arithmetic Operators, Operator Precedence, Using Parentheses, Defining a Null Value, Null Values in Arithmetic Expressions, Defining a Column Alias, Using Column Aliases, Concatenation Operator, Using the Concatenation Operator, Literal Character Strings, Using Literal Character Strings, Duplicate Rows, Eliminating Duplicate Rows

Restricting and Sorting Data

Limiting Rows Using a Selection, Limiting the Rows Selected, Using the WHERE Clause, Character Strings and Dates, Comparison Conditions, Using Comparison Conditions, Other Comparison Conditions, Using the BETWEEN Condition, Using the IN Condition, Using the LIKE Condition, Using the NULL Conditions, Logical Conditions, Using the AND Operator, Using the OR Operator, Using the NOT Operator, Rules of Precedence, ORDER BY Clause, Sorting in Descending Order, Sorting by Column Alias, Sorting by Multiple Columns

Single-Row Functions

SQL Functions, Two Types of SQL Functions, Single-Row Functions, Character Functions, Case Manipulation Functions, Using Case Manipulation Functions, Character-Manipulation Functions, Using the Character-Manipulation Functions, Number Functions, Using the ROUND Function, Using the TRUNC Function, Using the MOD Function, Working with Dates, Arithmetic with Dates, Using Arithmetic Operators with Dates, Date Functions, Using Date Functions, Overview, Conversion Functions, Implicit Data-Type Conversion, Explicit Data-Type Conversion, Using the TO_CHAR Function with Dates, Elements of the Date Format Model, Using the TO_CHAR Function with Dates, Using the TO_CHAR Function with Numbers, Using the TO_NUMBER and TO_DATE Functions, RR Date Format, Example of RR Date Format, Nesting Functions, General Functions, NVL Function, Using the NVL Function, Using the NVL2 Function, Using the NULLIF Function, Using the COALESCE Function, Conditional Expressions, The CASE Expression, Using the CASE Expression, The DECODE Function, Using the DECODE Function

Displaying Data from Multiple Tables

Obtaining Data from Multiple Tables, Cartesian Products, Generating a Cartesian Product, Types of Joins, Joining Tables Using Oracle Syntax, What Is an Equijoin?, Retrieving Records with Equijoins, Additional Search Conditions Using the AND Operator, Qualifying Ambiguous Column Names, Using Table Aliases, Joining More than Two Tables, Nonequijoins, Retrieving Records with Nonequijoins, Outer Joins, Outer Joins Syntax, Using Outer Joins, Self Joins, Joining a Table to Itself, Joining Tables Using SQL: 1999 Syntax, Creating Cross Joins, Creating Natural Joins, Retrieving Records with Natural Joins, Creating Joins with the USING Clause, Retrieving Records with the USING Clause, Creating Joins with the ON Clause, Retrieving Records with the ON Clause, Creating Three-Way Joins with the ON Clause, INNER versus OUTER Joins, LEFT OUTER JOIN, RIGHT OUTER JOIN, FULL OUTER JOIN,

Aggregating Data Using Group Functions

What Are Group Functions?, Types of Group Functions, Group Functions Syntax, Using the AVG and SUM Functions, Using the MIN and MAX Functions, Using the COUNT Function, Using the DISTINCT Keyword, Group Functions and Null Values, Using the NVL Function with Group Functions, Creating Groups of Data, Creating Groups of Data: GROUP BY Clause Syntax, Using the GROUP BY Clause, Grouping by More Than One Column, Using the GROUP BY Clause on Multiple Columns, Illegal Queries Using Group Functions, Excluding Group Results, Excluding Group Results: The HAVING Clause, Using the HAVING Clause, Nesting Group Functions

Subqueries

Using a Subquery to Solve a Problem, Subquery Syntax, Using a Subquery, Guidelines for Using Subqueries, Types of Subqueries, Single-Row Subqueries, Executing Single-Row Subqueries, Using Group Functions in a Subquery, The HAVING Clause with Subqueries, What Is Wrong with This Statement?, Will This Statement Return Rows?, Multiple-Row Subqueries, Using the ANY Operator in Multiple-Row Subqueries, Using the ALL Operator in Multiple-Row Subqueries, Null Values in a Subquery

Producing Readable Output with iSQL*Plus and SQL Plus

Substitution Variables, Using the & Substitution Variable, Character and Date Values with Substitution Variables, Specifying Column Names, Expressions, and Text, Defining Substitution Variables, DEFINE and UNDEFINE Commands, Using the DEFINE Command with & Substitution Variable, Using the VERIFY Command, Customizing the iSQL*Plus Environment, SET Command Variables, iSQL*Plus Format Commands, The COLUMN Command, Using the COLUMN Command, COLUMN Format Models, Using the BREAK Command, Using the TTITLE and BTITLE Commands, Creating a Script File to Run a Report

Manipulating Data

Data Manipulation Language, Adding a New Row to a Table, The INSERT Statement Syntax, Inserting New Rows, Inserting Rows with Null Values, Inserting Special Values, Inserting Specific Date Values, Creating a Script, Copying Rows from Another Table, Changing Data in a Table, The UPDATE Statement Syntax, Updating Rows in a Table, Updating Two Columns with a Subquery, Updating Rows Based on Another Table, Updating Rows: Integrity Constraint Error, Removing a Row from a Table, The DELETE Statement, Deleting Rows from a Table, Deleting Rows Based on Another Table, Deleting Rows: Integrity Constraint Error, Using a Subquery in an INSERT Statement, Using the WITH CHECK OPTION Keyword on DML Statements, Overview of the Explict Default Feature, Using Explicit Default Values, The MERGE Statement, MERGE Statement Syntax, Merging Rows, Database Transactions, Advantages of COMMIT and ROLLBACK Statements, Controlling Transactions, Rolling Back Changes to a Marker, Implicit Transaction Processing, State of the Data Before COMMIT or ROLLBACK, State of the Data After COMMIT, Committing Data, State of the Data After ROLLBACK, Statement-Level Rollback, Read Consistency, Implementation of Read Consistency, Locking, Implicit Locking

Creating and Managing Tables

Database Objects, Naming Rules, The CREATE TABLE Statement, Referencing Another Userís Tables, The DEFAULT Option, Creating Tables, Tables in the Oracle Database, Querying the Data Dictionary, Data Types, Datetime Data Types, TIMESTAMP WITH TIME ZONE Data Type, TIMESTAMP WITH LOCAL TIME Data Type, INTERVAL YEAR TO MONTH Data Type, Creating a Table by Using a Subquery Syntax, Creating a Table by Using a Subquery, The ALTER TABLE Statement, Adding a Column, Modifying a Column, Dropping a Column, The SET UNUSED Option, Dropping a Table, Changing the Name of an Object, Truncating a Table, Adding Comments to a Table

Including Constraints

What Are Constraints?, Constraint Guidelines, Defining Constraints, The NOT NULL Constraint, The UNIQUE Constraint, The PRIMARY KEY Constraint, The FOREIGN KEY Constraint, FOREIGN KEY Constraint Keywords, The CHECK Constraint, Adding a Constraint Syntax, Adding a Constraint, Dropping a Constraint, Disabling Constraints, Enabling Constraints, Cascading Constraints, Viewing Constraints, Viewing the Columns Associated with Constraints

Creating Views

Database Objects, What Is a View?, Why Use Views?, Simple Views and Complex Views, Creating a View, Retrieving Data from a View, Querying a View, Modifying a View, Creating a Complex View, Rules for Performing DML Operations on a View, Using the WITH CHECK OPTION Clause, Denying DML Operations, Removing a View, Inline Views, Top-n Analysis, Performing Top-n Analysis, Example of Top-n Analysis

Other Database Objects

Database Objects, What Is a Sequence?, The CREATE SEQUENCE Statement Syntax, Creating a Sequence, Confirming Sequences, NEXTVAL and CURRVAL Pseudocolumns, Using a Sequence, Modifying a Sequence, Guidelines for Modifying a Sequence, Removing a Sequence, What Is an Index?, How Are Indexes Created?, Creating an Index, When to Create an Index, When Not to Create an Index, Confirming Indexes, Function-Based Indexes, Removing an Index, Synonyms, Creating and Removing Synonyms

Controlling User Access

Controlling User Access, Privileges, System Privileges, Creating Users, User System Privileges, Granting System Privileges, What Is a Role?, Creating and Granting Privileges to a Role, Changing Your Password, Object Privileges, Granting Object Privileges, Using the WITH GRANT OPTION and PUBLIC Keywords, Confirming Privileges Granted, How to Revoke Object Privileges, Revoking Object Privileges, Database Links

Using SET Operators

The SET Operators, Tables Used in This Lesson, The UNION SET Operator, Using the UNION Operator, The UNION ALL Operator, Using the UNION ALL Operator, The INTERSECT Operator, Using the INTERSECT Operator, The MINUS Operator, SET Operator Guidelines, The Oracle Server and SET Operators, Matching the SELECT Statements, Controlling the Order of Rows

Oracle Datetime Functions

TIME ZONES, Oracle Datetime Support, CURRENT_DATE, CURRENT_TIMESTAMP, LOCALTIMESTAMP, DBTIMEZONE and SESSIONTIMEZONE

Enhancements to the GROUP BY Clause

GROUP BY with ROLLUP and CUBE Operators, ROLLUP Operator,ROLLUP Operator Example, CUBE Operator, CUBE Operator: Example,GROUPING Function, GROUPING Function: Example, GROUPING SETS,GROUPING SETS: Example, Composite Columns,Composite Columns: Example, Concatenated Groupings, Concatenated Groupings Example

Advanced Subqueries

What Is a Subquery?,Subqueries,Using a Subquery,Multiple-Column Subqueries, Column Comparisons, Pairwise Comparison Subquery,Nonpairwise Comparison Subquery, Using a Subquery in the FROM Clause,Scalar Subquery Expressions,Correlated Subqueries, Using Correlated Subqueries,Using the EXISTS Operator,Using the NOT EXISTS Operator,Correlated UPDATE,Correlated DELETE,The WITH Clause,WITH Clause: Example

Hierarchical Retrieval

Sample Data from the EMPLOYEES Table, Natural Tree Structure, Hierarchical Queries, Walking the Tree, Walking the Tree: From the Bottom Up,Walking the Tree: From the Top Down, Ranking Rows with the LEVEL Pseudocolumn,Formatting Hierarchical Reports Using LEVEL and LPAD, Pruning Branches

Oracle Extensions to DML and DDL Statements

Review of the INSERT Statement,Review of the UPDATE Statement,Overview of Multitable INSERT Statements, Types of Multitable INSERT Statements,Multitable INSERT Statements,Unconditional INSERT ALL,Conditional INSERT ALL,Conditional FIRST INSERT,Pivoting INSERT,External Tables,Creating an External Table, Example of Creating an External Table,Querying External Tables, CREATE INDEX with CREATE TABLE Statement

PL/SQL

Declaring Variables

Objectives, PL/SQL Block Structure, Executing Statements and PL/SQL Blocks, Block Types, Program Constructs, Use of Variables, Handling Variables in PL/SQL, Types of Variables, Using iSQL*Plus Variables Within PL/SQL Blocks, Types of Variables, Declaring PL/SQL Variables, Guidelines for Declaring PL/SQL Variables, Naming Rules, Variable Initialization and Keywords, Scalar Data Types, Base Scalar Data Types, Scalar Variable Declarations, The %TYPE Attribute, Declaring Variables with the %TYPE Attribute, Declaring Boolean Variables, Composite Data Types, LOB Data Type Variables, Bind Variables, Using Bind Variables, Referencing Non-PL/SQL Variables, DBMS_OUTPUT.PUT_LINE

Writing Executable Statements

Objectives, PL/SQL Block Syntax and Guidelines, Identifiers, PL/SQL Block Syntax and Guidelines, Commenting Code, SQL Functions in PL/SQL, SQL Functions in PL/SQL: Examples, Data type Conversion, Nested Blocks and Variable Scope, Identifier Scope, Qualify an Identifier, Determining Variable Scope, Operators in PL/SQL, Programming Guidelines, Indenting Code

Interacting with the Oracle Server

SQL Statements in PL/SQL, SELECT Statements in PL/SQL, Retrieving Data in PL/SQL, Naming Conventions, Manipulating Data Using PL/SQL, Inserting Data, Updating Data, Deleting Data, Merging Rows, Naming Conventions, SQL Cursor, SQL Cursor Attributes, Transaction Control Statements

Writing Control Structures

Objectives, Controlling PL/SQL Flow of Execution, IF Statements, Simple IF Statements, Compound IF Statements, IF-THEN-ELSE Statement Execution Flow, IF-THEN-ELSE Statements, CASE Expressions, CASE Expressions: Example, Handling Nulls, Logic Tables, Boolean Conditions, Iterative Control: LOOP Statements, Basic Loops, WHILE Loops, FOR Loops, Guidelines While Using Loops, Nested Loops and Labels

Working with Composite Data Types

Objectives, Composite Data Types, PL/SQL Records, Creating a PL/SQL Record, PL/SQL Record Structure, The %ROWTYPE Attribute, Advantages of Using %ROWTYPE, The %ROWTYPE Attribute, INDEX BY Tables, Creating an INDEX by Table, INDEX BY Table Structure, Creating an INDEX BY Table, Using INDEX BY Table Methods, INDEX BY Table of Records, Example of PL/SQL Table of Records

Writing Explicit Cursors

Objectives, About Cursors, Explicit Cursor Functions, Controlling Explicit Cursors, Declaring the Cursor, Opening the Cursor, Fetching Data from the Cursor, Closing the Cursor, Explicit Cursor Attributes, The %ISOPEN Attribute, Controlling Multiple Fetches, The %NOTFOUND and %ROWCOUNT Attributes, Example, Cursors and Records, Cursor FOR Loops, Cursor FOR Loops Using Subqueries

Advanced Explicit Cursor Concepts

Objectives, Cursors with Parameters, The FOR UPDATE Clause, The WHERE CURRENT OF Clause, Cursors with Subqueries

Handling Exceptions

Objectives, Handling Exceptions with PL/SQL, Handling Exceptions, Exception Types, Trapping Exceptions, Trapping Exceptions Guidelines, Trapping Predefined Oracle Server Errors, Predefined Exceptions, Trapping Nonpredefined Oracle Server Errors, Nonpredefined Error, Functions for Trapping Exceptions, Trapping User-Defined Exceptions, User-Defined Exception, Calling Environments, Propagating Exceptions, RAISE_APPLICATION_ERROR Procedure, RAISE_APPLICATION_ERROR

Creating Procedures

Objectives, PL/SQL Program Constructs, Overview of Subprograms, Block Structure for Anonymous PL/SQL Blocks, Block Structure for PL/SQL Subprograms, PL/SQL Subprograms, Developing Subprograms by Using iSQL*Plus, What Is a Procedure?, Syntax for Creating Procedures, Developing Procedures, Formal Versus Actual Parameters, Procedural Parameter Modes, Creating Procedures with Parameters, IN Parameters: Example, OUT Parameters: Example, Viewing OUT Parameters, IN OUT Parameters, Viewing IN OUT Parameters, Methods for Passing Parameters, DEFAULT Option for Parameters, Examples of Passing Parameters, Declaring Subprograms, Invoking a Procedure from an Anonymous PL/SQL Block, Invoking a Procedure from Another Procedure, Handled Exceptions, Unhandled Exceptions, Removing Procedures, Benefits of Subprograms

Creating Functions

Objectives, Overview of Stored Functions, Syntax for Creating Functions, Creating a Function, Creating a Stored Function by Using iSQL*Plus, Creating a Stored Function by Using iSQL*Plus: Example, Executing Functions, Executing Functions: Example, Advantages of User-Defined Functions in SQL Expressions, Invoking Functions in SQL Expressions: Example, Locations to Call User-Defined Functions, Restrictions on Calling Functions from SQL Expressions, Restrictions on Calling from SQL, Removing Functions, Procedure or Function?, Comparing Procedures and Functions, Benefits of Stored Procedures and Functions

Managing Subprograms

Objectives, Required Privileges, Granting Access to Data, Using Invokerís-Rights, Managing Stored PL/SQL Objects, USER_OBJECTS, List All Procedures and Functions, USER_SOURCE Data Dictionary View, List the Code of Procedures and Functions, USER_ERRORS, Detecting Compilation Errors: Example, List Compilation Errors by Using USER_ERRORS, List Compilation Errors by Using SHOW ERRORS, DESCRIBE in iSQL*Plus, Debugging PL/SQL Program Units

Creating Packages

Objectives, Overview of Packages, Components of a Package, Referencing Package Objects, Developing a Package, Creating the Package Specification, Declaring Public Constructs, Creating a Package Specification: Example, Creating the Package Body, Public and Private Constructs, Creating a Package Body: Example, Invoking Package Constructs, Declaring a Bodiless Package, Referencing a Public Variable from a Stand-alone Procedure, Removing Packages, Guidelines for Developing Packages, Advantages of Packages

More Package Concepts

Objectives, Overloading, Overloading: Example, Using Forward Declarations, Creating a One-Time-Only Procedure, Restrictions on Package Functions Used in SQL, User Defined Package: taxes_pack, Invoking a User Defined Package Function from a SQL Statement, Persistent State of Package Variables: Example, Persistent State of Package Variables, Controlling the Persistent State of a Package Cursor, Executing PACK_CUR, PL/SQL Tables and Records in Packages

Oracle Supplied Packages

Objectives, Using Supplied Packages, Using Native Dynamic SQL, Execution Flow, Using the DBMS_SQL Package, Using DBMS_SQL, Using the EXECUTE IMMEDIATE Statement, Dynamic SQL Using EXECUTE IMMEDIATE, Using the DBMS_DDL Package, Using DBMS_JOB for Scheduling, DBMS_JOB Subprograms, Submitting Jobs, Changing Job Characteristics, Running, Removing, and Breaking Jobs, Viewing Information on Submitted Jobs, Using the DBMS_OUTPUT Package, Interacting with Operating System Files, What Is the UTL_FILE Package?, File Processing Using UTL_FILE, UTL_FILE Procedures and Functions, Exceptions Specific to the UTL_FILE Package, The FOPEN and IS_OPEN Functions, Using UTL_FILE, UTL_HTTP Package, Using the UTL_HTTP Package, Using the UTL_TCP Package, Oracle-Supplied Packages

Manipulating Large Objects

Objectives, What Is a LOB?, Contrasting LONG and LOB Data Types, Anatomy of a LOB, Internal LOBs, Managing Internal LOBs, What Are BFILEs?, Securing BFILEs, A New Database Object: DIRECTORY, Guidelines for Creating DIRECTORY Objects, Managing BFILEs, Preparing to Use BFILEs, The BFILENAME Function, Loading BFILEs, Migrating from LONG to LOB, The DBMS_LOB Package, DBMS_LOB.READ and DBMS_LOB.WRITE, Adding LOB Columns to a Table, Populating LOB Columns, Updating LOBs by Using SQL, Updating LOBs by Using DBMS_LOB in PL/SQL, Selecting CLOB Values by Using SQL, Selecting CLOB Values, Using DBMS_LOB, Selecting CLOB Values in PL/SQL, Removing LOBs, Temporary LOBs, Creating a Temporary LOB

Creating Database Triggers

Types of Triggers, Guidelines for Designing Triggers, Database Trigger: Example, Creating DML Triggers, DML Trigger Components, Firing Sequence, Syntax for Creating DML Statement Triggers, Creating DML Statement Triggers, Testing SECURE_EMP, Using Conditional Predicates, Creating a DML Row Trigger, Creating DML Row Triggers, Using OLD and NEW Qualifiers, Using OLD and NEW Qualifiers: Example Using Audit_Emp_Table, Restricting a Row Trigger, INSTEAD OF Trigger, Creating an INSTEAD OF Trigger, Differentiating between Database Triggers and Stored Procedures, Differentiating between Database Triggers and Form Builder Triggers, Managing Triggers, DROP TRIGGER Syntax, Trigger Test Cases, Trigger Execution Model and Constraint Checking, Trigger Execution Model and Constraint Checking: Example, A Sample Demonstration for Triggers Using Package Constructs, After Row and After Statement Triggers, Demonstration: VAR_PACK Package Specification, Demonstration: Using the AUDIC_EMP Procedure

More Trigger Concepts

Objectives, Creating Database Triggers, Creating Triggers on DDL Statements, Creating Triggers on System Events, LOGON and LOGOFF Trigger Example, CALL Statement, Reading Data from a Mutating Table, Mutating Table: Example, Implementing Triggers, Controlling Security within the Server, Controlling Security with a Database Trigger, Using the Server Facility to Audit Data Operations, Auditing by Using a Trigger, Enforcing Data Integrity within the Server, Protecting Data Integrity with a Trigger, Enforcing Referential Integrity within the Server, Protecting Referential Integrity with a Trigger, Replicating a Table within the Server, Replicating a Table with a Trigger, Computing Derived Data within the Server, Computing Derived Values with a Trigger, Logging Events with a Trigger, Benefits of Database Triggers, Managing Triggers, Viewing Trigger Information, Using USER_TRIGGERS, Listing the Code of Triggers, Summary

Managing Dependencies

Objectives, Understanding Dependencies, Dependencies, Local Dependencies, A Scenario of Local Dependencies, Displaying Direct Dependencies by Using USER_DEPENDENCIES, Displaying Direct and Indirect Dependencies, Displaying Dependencies, Another Scenario of Local Dependencies, A Scenario of Local Naming Dependencies, Understanding Remote Dependencies, Concepts of Remote Dependencies

Methods of Training

Online Lecture Modules, Subject Expert Feedback Sessions after each Module, practical case studies, end of module assignments. etc.

Subject Experts

IT Programming Courses has a panel of Subject Experts.

Who Should Apply

Anyone working in the IT industry in a senior or support position or those who wish to make a career change to IT. The course will also benefit anyone who has Database development as part of their job specification. This course is designed to be flexible and is therefore suitable for those who cannot attend live classes or prefer to study at their own pace.

Qualifications

Successful candidates qualify for the Diploma in Oracle SQL Database Design & Development (Dip. Oracle). The Diploma is awarded at Distinction, Credit or Pass level. The diploma is certified by the Institute of Commercial Management.

On successful completion of this course you will receive a Postgraduate level qualification that is certified and awarded by the ICM (Institute of Commercial Management).

The Institute of Commercial Management was founded in 1979 and is one of the leading Professional Examination and Certification Bodies in the world today. Fitzwilliam Institute have developed and provided practical skills training courses in liaison with the Institute of Commercial Management qualifications and certifications framework for over 25 years. The Institute of Commercial Management certifications and continual professional development training awards are recognised throughout Europe, the USA, Canada, Australia, South Africa and Asia in a total of 140 countries, by leading industries, bodies and professions.

next start date: 25th August 2017

Duration: You will have full access to online resources and subject expert support for two calendar years. However, you can complete the course in as little as 1 year, by dedicating 6-8 hours of study per week.

Course Fees: 1795.00 GPB

To secure your place on the course the full fee is required. All fees must be paid in full before the course begins. Please note, the full course fees are inclusive of all course materials and certification costs.

Enrolment intake is strictly limited on this course. Early application is advised. Places are allocated on a first come first served basis.

Fitzwilliam Institute closes on Bank Holidays and for a number of days at Christmas and New Year. Fitzwilliam Institute reserves the right to postpone, cancel or alter courses without notice or to change any of the details in this brochure. Fees are not refundable unless the course is cancelled by Fitzwilliam Institute. Distance Learning courses are provided by Fitzwilliam Institute BGLS Ltd.

Year on year, we have the pleasure of training students from top UK and international companies. See where our most recent students come from and find out what they have to say.