Quick SQL nos permite diseñar rápidamente y prototipar modelos de datos utilizando una sintaxis abreviada tipo markdown que expande el Oracle SQL. Podemos crear fácilmente relaciones maestro/detalle, comprobar restricciones e incluso generar datos de muestra.

Podemos utilizar esta aplicación en forma gratuita para generar SQL y usarlo en cualquier base de datos Oracle. Todo lo que necesitamos para comenzar a utilizarla es una cuenta de Oracle.com u Oracle Technology Network (OTN). También podemos crear prototipos de forma gratuita utilizando Oracle Live SQL o suscribiéndonos a un espacio de trabajo gratuito en apex.oracle.com.
Para acceder a la herramienta lo podemos hacer desde este enlace Quick SQL
Hacemos clic en el botón Lunch Quick SQL e ingresamos nuestras credenciales de Oracle y podemos empezar a usarlo gratuitamente!

Para aprender a generar los códigos podemos cargar un ejemplo que trae la herramienta, por ejemplo, hacemos clic en el botón Load Samples y selecccionamos Departments and Employees.

Podemos también ver el diagrama Entidad-Relación del Sample, para ello hacemos clic en View Diagram.
Cargamos el Sample, y vemos como en el cuadrante de la izquierda tenemos la sintaxis para generar las sentencias SQL de lo que se visualiza en el cuadrante de la derecha.
Vemos el siguiente código:
departments /insert 4
   name /nn
   location
   country
   employees /insert 14
      name /nn vc50
      email /lower
      cost center num
      date hired
      job

view emp_v departments employees
Genera el siguiente Script de SQL:
— create tables
create table departments (
    id                             number not null constraint departments_id_pk primary key,
    name                           varchar2(255) not null,
    location                       varchar2(4000),
    country                        varchar2(4000)
)
;

create table employees (
    id                             number not null constraint employees_id_pk primary key,
    department_id                  number
                                   constraint employees_department_id_fk
                                   references departments on delete cascade,
    name                           varchar2(50) not null,
    email                          varchar2(255),
    cost_center                    number,
    date_hired                     date,
    job                            varchar2(4000)
)
;


— triggers
create or replace trigger departments_biu
    before insert or update 
    on departments
    for each row
begin
    if :new.id is null then
        :new.id := to_number(sys_guid(), ‘XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX’);
    end if;
end departments_biu;
/

create or replace trigger employees_biu
    before insert or update 
    on employees
    for each row
begin
    if :new.id is null then
        :new.id := to_number(sys_guid(), ‘XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX’);
    end if;
    :new.email := lower(:new.email);
end employees_biu;
/


— indexes
create index employees_i1 on employees (department_id);

— create views
create or replace view emp_v as 
select 
    departments.id                                     department_id,
    departments.name                                   department_name,
    departments.location                               location,
    departments.country                                country,
    employees.id                                       employee_id,
    employees.name                                     employee_name,
    employees.email                                    email,
    employees.cost_center                              cost_center,
    employees.date_hired                               date_hired,
    employees.job                                      job
from 
    departments,
    employees
where
    employees.department_id(+) = departments.id
/

— load data
insert into departments (
    id,
    name,
    location,
    country
) values (
    135967744744040754238869082872543466836,
    ‘Business Development’,
    ‘Tanquecitos’,
    ‘United States’
);
………

Y sigue aqui insertando filas en las tablas Departamento y Empleados, 4 registros en la tabla Departamentos y 14 registros en la tabla Empleados.

Para aprender la sintaxis que se usa en la herramienta podemos acceder desde el cuadrante de la derecha y hacer clic en el botón Sintaxis, de esa forma se abre una ventana modal con la ayuda.


Podemos descargar el Script para usarlo en nuestros desarrollos.

La muy buena noticia es que en la versión que se viene de Oracle APEX 5.2 vamos a tener acceso a esta aplicación desde el mismo módulo del Taller de SQL dentro de SQL Scripts.

Y con ella será mucho más facil generar los scripts que necesitamos para nuestra aplicación en APEX.