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