SQL

En esta sección encontrara temas relacionados al Lenguaje SQL (Structure Query Language). Todo el contenido aquí presentado tiene el fin de educar al lector en lo referente al manejo de datos en una Base de Datos Relacionar mediante el uso de buenas prácticas que aseguren la optimalidad y el buen desempeño.

Se trató de presentar los temas de manera secuencial (de lo más Básico a temas Riguroso) para así facilitar la comprensión. En cada entrada podrá encontrar ejemplos prácticos que facilitan la familiarización con las sentencias y cláusulas del lenguaje.

Es prudente señalar que el lector puede en todo momento exponer cualquier duda/sugerencia que tenga, la misma será atendida en la brevedad de lo posible.

Temas de SQL.

Contenido:
• La Sentencia SELECT
• Las Expresiones Aritméticas
• Los Alias de Columna
• Los Operadores de Concatenación
• Las Cadenas de Literales
• La cláusula DISTINCT

Contenido:
• Las Conversiones Explícitas
• Funciones: TO_CHAR, TO_NUMBER y TO_DATE
• Anidando Funciones
• Funciones Generales
• Las Expresiones Condicionales

Contenido:
• La cláusula WHERE
• Los Operadores de Comparación
• Los Operadores Logicos
• La cláusula ORDER BY
• Las variables de Sustitución (&&)
• El comando VERIFY

Contenido:
• La cláusula GROUP BY
• Funciones: AVG, MIN, MAX, COUNT, SUM...
• Grupos dentro de Grupos
• La cláusula HAVING
• Anidando las Funciones de Grupo

Contenido:
• Las Funciones de Caracteres
• Las Funciones Numéricas

Contenido:
• Consultando datos de varias tablas
• La cláusula NATURAL JOIN
• La cláusula USING
• Los cualificadores de columna
• La cláusula ON
• Las Uniones no Igualitarias
• Los OUTER JOIN
• Los CROSS JOIN

Contenido:
• Manejo de las Fechas
• Usando Funciones de Fecha


Contenido:
• Las Sentencias SELECT Anidadas
• Las SubConsultas de una sola fila
• Las SubConsultas de varias filas
       Operador IN
       Operador ANY
       Operador ALL
• Los Valores Nulos en SubConsultas

El Diccionario de Datos


Contenido:
• El operador UNION
• El operador UNION ALL
• El operador INTERSECT
• El operador MINUS
• Hacer corresponder las consultas con Operados SET


Contenido:
• Estructura de Diccionario de Datos
       Prefijos USER, ALL, DBA, V$
• Las Vistas: USER_OBJECTS, USER_TABLES,USER_CONSTRAINTS, USER_CONS_COLUMNS...

Manipulando de Datos

Funciones Útiles, SQL


Contenido:
• Las Sentencias DML:
       Sentencia INSERT
       Sentencia UPDATE
       Sentencia DELETE
• La Sentencia TRUNCATE
• Las Transacciones
       Sentencia COMMIT
       Sentencia ROLLBACK
       Sentencia SAVEPOINT
• La Consistencia en la Lectura


Contenido:
• Función SIGN
• Función POWER
• Función GREATEST
• Función TRANSLATE
• Función ASCIISTR
• Función UNISTR

Creando Tablas, Sentencias DDL

Control de Acceso a Usuarios


Contenido:
• Los Objetos de Base de Datos
• La Sentencia CREATE TABLE
• Los Tipos de Datos
• Los CONSTRAINTs
       NOT NULL
       UNIQUE
       PRIMARY KEY
       FOREIGN KEY
       CHECK

• Creando Tablas con SubConsultas
• La sentencia DROP TABLE


Contenido:
• Los Tipos de Privilegios
• Privilegios de DBA
       CREATE USER
       DROP USER
       DROP ANY TABLE

       ...
• Privilegios de Usuario
       CREATE SESSION
       CREATE TABLE

       ...
• Los ROLES
• Las Sentencias GRANT y REVOKE

Vistas, Secuencias, Índices etc...

Gestionando Objetos de Esquema


Contenido:
• Las Vistas (VIEW)
       Operaciones DML con Vistas
       La cláusula WITH CHECK OPTION
       La cláusula WITH READ ONLY
• La Sentencia DROP VIEW
• Las Secuencias (SEQUENCE )
Las pseudocolumnas NEXTVAL y CURRVAL
       Sentencia ALTER SEQUENCE
• Los Indices(INDEX)
• Los Sinónimos (SYNONYM)


Contenido:
• Sentencia ALTER TABLE
       ADD
/MODIFY/DROP
       SET UNUSED
       DISABLE
/ENABLE CONSTRAINT
• Visión General de Índices
• La cláusula PURGE
• Sentencia FLASHBACK TABLE

Subconsultas Avanzadas


Contenido:
• Manipular Datos con SubConsultas
• La cláusula DEFAULT
• Sentencia INSERT de varias Tablas
       INSERT incondicional.
       ALL INSERT condicional.
       FIRST INSERT condicional.
       INSERT de pivoting.
• Sentencia MERGE


Contenido:
• SubConsultas de Varias Columnas
       Comparaciones entre Pares y entre No Pares
       Subconsultas Escalares
• Subconsultas Correlacionadas
• Operador EXISTS
• Cláusula WITH

Tablas Externas

Recuperación Jerárquica


Contenido:
• Sentencia CREATE DIRECTORY
• Controladores de Acceso
       ORACLE_DATAPUMP
       ORACLE_LOADER

• La cláusula ORGANIZATION EXTERNAL
• La cláusula LOCATION
• La cláusula REJECT LIMIT


Contenido:
• Consultas Jerárquicas
       La cláusula START WITH
       La cláusula CONNECT BY
       La Pseudocolumna LEVEL
• Desplazamiento por el Árbol

Seguiendo Cambios en los Datos

Expresiones Regulares en SQL


Contenido:
• La cláusula VERSIONS BETWEEN
• Uso de SCN, TIMESTAMP, MINVALUE AND MAXVALUE
• Los ROWID
• Vista FLASHBACK_TRANSACTION_QUERY
• Función TIMESTAMP_TO_SCN
• El Parámetro UNDO_RETENTION


Contenido:
• Lista de Metacaracteres
• Lista de Caracteres POSIX
• Funciones de Expresiones Regulares
       Función REGEXP_LIKE
       Función REGEXP_REPLACE
       Función REGEXP_INSTR
       Función REGEXP_SUBSTR
CONSTRAINTs con Expresiones Regulares

Agrupando Datos Relacionados


Contenido:
• La cláusula GROUP BY con ROLLUP y CUBE
• La Función GROUPING
• La cláusula GROUP BY con GROUPING SETS
• Las columnas Compuestas


Contenido:
• Las Transacciones SQL de Oracle
• Lenguaje de Manipulación de Datos(DML)
• Lenguaje de Definición de Datos(DDL)
• Transacciones de Control
• Lenguaje de Control de Datos(DCL)
• Control de Secciones
• Control del Sistema

Otras Funciones SQL de Oracle


Contenido:
• Función PIVOT
• Función UNPIVOT
• Función SYS_CONTEXT 
      Lista de Parámetros


Contenido:
• Función GROUP_ID
• Funciones ASCII y CHR
• Función ABS
• Funciones CEIL y FLOOR

Las Pseudo-Columnas En Oracle

Funciones Analíticas en Oracle


Contenido:
• Tipos de Pseudocolumnas en Oracle
       -Pseudocolumnas de Secuencias
              Pseudocolumnas NEXTVAL y CURRVAL
       -Version Query Pseudocolumns
       -Pseudocolumnas de consultas jerárquicas
              Pseudocolumna LEVEL
• Pseudocolumna ROWID
• Pseudocolumna ROWNUM


Contenido:
• Funciones Analíticas
       -La Cláusula OVER
       -Función FIRST_VALUE
       -Función LAST_VALUE
       -Función RANK
       -Función ROW_NUMBER
       -Función NTILE










Breve historia del Lenguaje SQL.
El Lenguaje SQL originalmente SEQUEL (Structured English Query Language) fue desarrollado en los laboratorios de investigación de IBM por un equipo de personas encabezadas por Donald D. Chamberlin y Raymond F. Boyce a inicio de la década de 1970. Esta version fue diseñada para manipular y extraer datos almacenados en sistemas de gestión de Base de Datos, IBM System R.

Ya a finales de la década de 1970, Relational Software, Inc. (Ahora Oracle Corporation) vio el gran potencial de los conceptos descritos por los ya mencionados Chamberlin y Boyce, y desarrollaron su propio RDBMS (Relational Database Management System) Basado en SQL con serias intenciones de hacerlo comerciar. Fue entonces en Junio de 1979 cuando Relational Software, Inc. lanzó Oracle V2 (Version2) orientado a computadoras VAX.

IBM de su lado continúo desarrollando sistemas basados en SQL y luego de varias pruebas de utilidad y factibilidad realizadas con clientes y usuarios, decidieron comercializar productos como System/38 (1979), SQL/DS (1981), y DB2 (1983) todas basados en su original sistema IBM System R.

Luego del inminente éxito, en 1986, ANSI adoptó SQL como estándar para los lenguajes relacionales y en 1987 se convirtió en estándar ISO. Esta versión del estándar va con el nombre de SQL/86. En los años siguientes, éste ha sufrido diversas revisiones que han conducido primero a la versión SQL/89 y, posteriormente, a la actual SQL/92.

Al convertirse en un lenguaje estándar para el manejo de Base de Datos Relacionales, SQL abrió paso a la intercomunicabilidad de todos los productos del mercado. Pero es prudente señalar que actualmente cada motor de Base de Datos (MySQL, Oracle, Microsoft SQL Server, PostgreSQL Etc...) adopta e implementa sólo el corazón del Lenguaje SQL, las demás funcionalidades son desarrolladas de acuerdo a la necesidad o vision de cada cual.

Desde hace poco, los comités ANSI e ISO iniciaron un proceso de revisión del lenguaje, el cual concluirá con la definición de lo que en este momento se conoce como SQL3. Las características principales de esta nueva versión de SQL deberían ser su transformación en un lenguaje stand-alone (independiente, con su propio hospedaje) y la introducción de nuevos tipos de datos más complejos que permitan, por ejemplo, el tratamiento de datos multimediales.

Para conocer un poco mas del lenguaje de SQL, les invito a estudiar los temas presentados antes de esta seccion: Breve Historia del Lenguaje SQL.
_____________________________________________________________________________________
Fuentes:
https://en.wikipedia.org/wiki/SQL
http://www.htmlpoint.com/sql/sql_04.htm