SQL (Lenguaje de Consulta estructurado)

37
SQL (Lenguaje de Consulta estructurado) Ing. Liliana Minsero

Transcript of SQL (Lenguaje de Consulta estructurado)

Page 1: SQL (Lenguaje de Consulta estructurado)

SQL (Lenguaje de Consulta estructurado)

Ing. Liliana Minsero

Page 2: SQL (Lenguaje de Consulta estructurado)

MÓDULO 1Fundamentos de Programación y

SQL

Page 3: SQL (Lenguaje de Consulta estructurado)

¿Qué es SQL?

Page 4: SQL (Lenguaje de Consulta estructurado)

¿Qué es SQL?El lenguaje de consulta estructurado (SQL) es un lenguaje de base de datos normalizado,utilizado por los diferentes motores de bases de datos para realizar determinadasoperaciones sobre los datos o sobre la estructura de los mismos.

Según Wikipedia:

SQL es un lenguaje específico del dominio que da acceso a un sistema de gestión debases de datos relacionales que permite especificar diversos tipos de operaciones en ellos.Una de sus características es el manejo del álgebra y el cálculo relacional que permitenefectuar consultas con el fin de recuperar, de forma sencilla, información de bases dedatos, así como hacer cambios en ellas.

Originalmente basado en el álgebra relacional y en el cálculo relacional, SQL consiste en unlenguaje de definición de datos, un lenguaje de manipulación de datos y un lenguaje decontrol de datos. El alcance de SQL incluye la inserción de datos, consultas, actualizacionesy borrado, la creación y modificación de esquemas y el control de acceso a los datos.También el SQL a veces se describe como un lenguaje declarativo, también incluyeelementos procesales.

Consultado en: https://es.wikipedia.org/wiki/SQL

Page 5: SQL (Lenguaje de Consulta estructurado)

¿Qué es SQL?SQL fue uno de los primeros lenguajes comerciales para el modelo relacional de

Edgar Frank Codd como se describió en su papel de 1970 El modelo relacional de datospara grandes bancos de datos compartidos. A pesar de no adherirse totalmente al modelorelacional descrito por Codd, pasó a ser el lenguaje de base de datos más usado.

SQL pasó a ser el estándar del Instituto Nacional Estadounidense de Estándares(ANSI) en 1986 y de la Organización Internacional de Normalización (ISO) en 1987. Desdeentonces, el estándar ha sido revisado para incluir más características. A pesar de laexistencia de ambos estándares, la mayoría de los códigos SQL no son completamenteportables entre sistemas de bases de datos diferentes sin ajustes.

Page 6: SQL (Lenguaje de Consulta estructurado)

Evolución de SQL

Page 7: SQL (Lenguaje de Consulta estructurado)

Evolución de SQLLos orígenes de SQL están ligados a las bases de datos de las computadoras o

móvil aun a los de las bases de datos relacionales. En 1970 E. F. Codd propone el modelo

relacional y asociado a este un sublenguaje de acceso a los datos basado en el cálculo de

predicados. Basándose en estas ideas, los laboratorios de IBM definieron el lenguaje

SEQUEL (Structured English Query Language) que más tarde fue ampliamente

implementado por el sistema de gestión de bases de datos (SGBD) experimental System R,

desarrollado en 1977 también por IBM. Sin embargo, fue Oracle quien lo introdujo por

primera vez en 1979 en un producto comercial.

El SEQUEL terminó siendo el predecesor de SQL, que es una versión evolucionada

del primero. SQL pasa a ser el lenguaje por excelencia de los diversos sistemas de gestión

de bases de datos relacionales surgidos en los años siguientes y fue por fin estandarizado

en 1986 por el ANSI, dando lugar a la primera versión estándar de este lenguaje, "SQL-86"

o "SQL1". Al año siguiente este estándar es también adoptado por ISO.

Page 8: SQL (Lenguaje de Consulta estructurado)

Evolución de SQLSin embargo, este primer estándar no cubría todas las necesidades de los

desarrolladores e incluía funcionalidades de definición de almacenamiento que seconsideró suprimirlas. Así que, en 1992, se lanzó un nuevo estándar ampliado y revisadode SQL llamado "SQL-92" o "SQL2".

En la actualidad SQL es el estándar de facto de la inmensa mayoría de los SGBDcomerciales. Y, aunque la diversidad de añadidos particulares que incluyen las distintasimplementaciones comerciales del lenguaje es amplia, el soporte al estándar SQL-92 esgeneral y muy amplio.

Page 9: SQL (Lenguaje de Consulta estructurado)

Evolución de SQLAño Nombre Alias Característica resaltante

1986 SQL-86 SQL-87 Primera publicación hecha por ANSI. Confirmada por ISO en 1987.

1989 SQL-89 ------------------------- Revisión menor.

1992 SQL-92 SQL2 Revisión mayor.

1999 SQL:1999 SQL2000 Se agregaron expresionesregulares, consultas recursivas (para relaciones jerárquicas), algunas características orientadas a objetos.

2003 SQL:2003 -------------------------- Introduce algunas características de XML, cambios en las funciones, estandarización del objeto sequence y de las columnas autonuméricas.

Page 10: SQL (Lenguaje de Consulta estructurado)

Evolución de SQLAño Nombre Alias Característica resaltante

2005 SQL:2005 ----------------- ISO/IEC 9075-14:2005 Define las maneras en las cuales SQL se puede utilizar conjuntamente con XML. Define maneras de importar y guardar datos XML en una base de datos SQL, manipulándolos dentro de la base de datos y publicando el XML y los datos SQL convencionales en forma XML. Además, proporciona facilidades que permiten a las aplicaciones integrar dentro de su código SQL el uso de XQuery, lenguaje de consulta XML publicado por el W3C (World Wide Web Consortium) para acceso concurrente a datos ordinarios SQL y documentos XML.

Page 11: SQL (Lenguaje de Consulta estructurado)

Evolución de SQLAño Nombre Alias Característica resaltante

2008 SQL:2008 ---------------- Permite el uso de la cláusula ORDER BY fuera de las definiciones de los cursores. Incluye los disparadores del tipo INSTEAD OF. Añade la sentencia TRUNCATE.

2011 SQL:2011 ----------------Datos temporales (PERIOD FOR). Mejoras en las funciones de ventana y de la cláusula FETCH.

2016 SQL:2016 ---------------

Permite búsqueda de patrones, funciones de tabla polimórficas y compatibilidad con los ficheros JSON.

Consultado en: https://es.wikipedia.org/wiki/SQL

Page 12: SQL (Lenguaje de Consulta estructurado)

Características de SQL

Page 13: SQL (Lenguaje de Consulta estructurado)

Características de SQL• SQL es un lenguaje de acceso a bases de datos que explota la flexibilidad y potencia de

los sistemas relacionales y permite así gran variedad de operaciones.

• Es un lenguaje declarativo de "alto nivel" o "de no procedimiento" que, gracias a sufuerte base teórica y su orientación al manejo de conjuntos de registros —y no aregistros individuales— permite una alta productividad en codificación y la orientación aobjetos. De esta forma, una sola sentencia puede equivaler a uno o más programas quese utilizarían en un lenguaje de bajo nivel orientado a registros.

SQL también tiene las siguientes características:

• Lenguaje de definición de datos: El LDD de SQL proporciona comandos para la definiciónde esquemas de relación, borrado de relaciones y modificaciones de los esquemas derelación.

• Lenguaje interactivo de manipulación de datos: El LMD de SQL incluye lenguajes deconsultas basado tanto en álgebra relacional como en cálculo relacional de tuplas.

• Integridad: El LDD de SQL incluye comandos para especificar las restricciones deintegridad que deben cumplir los datos almacenados en la base de datos.

Page 14: SQL (Lenguaje de Consulta estructurado)

Características de SQL• Definición de vistas: El LDD incluye comandos para definir las vistas.

• Control de transacciones: SQL tiene comandos para especificar el comienzo y el final deuna transacción.

• SQL incorporado y dinámico: Esto quiere decir que se pueden incorporar instruccionesde SQL en lenguajes de programación como: C++, C, Java, PHP, Cobol, Pascal y Fortran.

• Autorización: El LDD incluye comandos para especificar los derechos de acceso a lasrelaciones y a las vistas.

• SQL, el lenguaje relacional casi universalmente aplicado, es diferente de otros lenguajescomputacionales como C, COBOL y Java, los cuales son de procedimiento. Un lenguaje deprocedimiento define cómo las operaciones de una aplicación deben realizarse y el ordenen el cual se realizan. Un lenguaje de no procedimiento, por otro lado, se refiere a losresultados de una operación; el entorno fundamental del software determina cómo seprocesan las operaciones. Esto no quiere decir que SQL respalda a la funcionalidad de noprocedimiento

Consultado en: https://es.wikipedia.org/wiki/SQL

Page 15: SQL (Lenguaje de Consulta estructurado)

Características de SQL• SQL aún carece de muchas de las capacidades básicas de programación de la mayoría de

los lenguajes computacionales. Por esta razón, a menudo SQL se considera como unsublenguaje de datos porque se utiliza con frecuencia en asociación con la aplicación delenguajes de programación como C y Java, lenguajes que no fueron diseñados para lamanipulación de datos almacenados en una base de datos. Como resultado, SQL seutiliza en conjunto con la aplicación del lenguaje para proporcionar un medio eficaz deacceder a los datos, razón por la cual se considera a SQL como un sublenguaje.

Consultado en: https://es.wikipedia.org/wiki/SQL

Page 16: SQL (Lenguaje de Consulta estructurado)

Tipos de datos de SQLAlgunos de los tipos de datos básicos de SQL son:

• Varchar: Recibe cadena de palabras compuestas de letras, números y caracteresespeciales.

• Date: una fecha de calendario que contiene el año (de cuatro cifras), el mes y eldía.

• Time: La hora del día en horas minutos segundos (el valor predeterminado es 0).

• Datetime: la combinación de Date y Time.

Consultado en: https://es.wikipedia.org/wiki/SQL

Page 17: SQL (Lenguaje de Consulta estructurado)

Tipos de datos de SQL

Consultado en: https://elbauldelprogramador.com/componentes-del-lenguaje-sql-sql/

Page 18: SQL (Lenguaje de Consulta estructurado)

Operadores de SQL

Consultado en: https://elbauldelprogramador.com/componentes-del-lenguaje-sql-sql/

Page 19: SQL (Lenguaje de Consulta estructurado)

Objeto de modelo relacional con SQL

Page 20: SQL (Lenguaje de Consulta estructurado)

Objeto de modelo relacional con SQL• El lenguaje SQL se basa en el modelo relacional, y hasta SQL-92, también el estándar SQL.

Sin embargo, comenzando con SQL:1999, el estándar SQL se extendió más allá delmodelo relacional puro para incluir construcciones orientadas a objetos en el lenguaje.Estas construcciones se basan en los conceptos inherentes de programación orientada aobjetos, una programación metodológica que define colecciones autónomas deestructura de datos y rutinas (llamadas objetos). En los lenguajes orientados a objetoscomo Java y C++, los objetos interactúan entre sí de manera que permiten al lenguajeabordar problemas complejos que no serían fáciles de resolver en lenguajestradicionales.

• Con la llegada de la programación orientada a objetos (junto con los avancestecnológicos en el hardware y software y la creciente complejidad de aplicaciones) sehizo cada vez más evidente que un lenguaje puramente relacional era insuficiente parasatisfacer las demandas del mundo real.

• De preocupación específica fue el hecho que SQL no podía respaldar tipos de datoscomplejos y definidos por el usuario ni la extensibilidad requerida para aplicaciones máscomplejas

Consultado en: https://pedrobeltrancanessa-biblioteca.weebly.com/uploads/1/2/4/0/12405072/fundamentos_de_sql_3edi_oppel.pdf

Page 21: SQL (Lenguaje de Consulta estructurado)

Objeto de modelo relacional con SQL• Impulsados por la competencia natural de la industria, los proveedores RDBMS se

encargaron de aumentar sus productos e incorporar la funcionalidad orientada a objetosen sus sistemas.

• El estándar SQL:2006 sigue el ejemplo y extiende el modelo relacional con capacidadesorientadas a objetos, como métodos, encapsulación, y tipos de datos complejos ydefinidos por el usuario, lo que hace a SQL un lenguaje de base de datos relacional aobjeto. (SQL/XML) se amplió considerablemente y se reeditó con SQL:2006, y todas lasdemás partes se tomaron de SQL:2003.

Consultado en: https://pedrobeltrancanessa-biblioteca.weebly.com/uploads/1/2/4/0/12405072/fundamentos_de_sql_3edi_oppel.pdf

Page 22: SQL (Lenguaje de Consulta estructurado)

Tipos de instrucciones de SQL

Page 23: SQL (Lenguaje de Consulta estructurado)

Tipos de instrucciones de SQL• Aunque SQL se considera un sublenguaje debido a su naturaleza de no procesamiento,

aun así es un lenguaje completo que le permite crear y mantener objetos en una base dedatos, asegurar esos objetos y manipular la información dentro de los objetos. Unmétodo común usado para categorizar las instrucciones SQL es dividirlas de acuerdo conlas funciones que realizan. Basado en este método, SQL se separa en tres tipos deinstrucciones:

• Lenguaje de definición de datos (DDL, Data Definition Language) Las instrucciones DDLse usan para crear, modificar o borrar objetos en una base de datos como tablas, vistas,esquemas, dominios, activadores, y almacenar procedimientos. Las palabras clave en SQLmás frecuentemente asociadas con las instrucciones DDL son CREATE, ALTER y DROP. Porejemplo, se usa la instrucción CREATE TABLE para crear una tabla, la instrucción ALTERTABLE para modificar las características de una tabla, y la instrucción DROP TABLE paraborrar la definición de la tabla de la base de datos.

Consultado en: https://pedrobeltrancanessa-biblioteca.weebly.com/uploads/1/2/4/0/12405072/fundamentos_de_sql_3edi_oppel.pdf

Page 24: SQL (Lenguaje de Consulta estructurado)

Tipos de instrucciones de SQL• Lenguaje de control de datos (DCL, Data Control Language) Las instrucciones DCL

permiten controlar quién o qué (un usuario en una base de datos puede ser una personao un programa de aplicación) tiene acceso a objetos específicos en la base de datos. ConDCL, puede otorgar o restringir el acceso usando las instrucciones GRANT o REVOKE, losdos comandos principales en DCL. Las instrucciones DCL también permiten controlar eltipo de acceso que cada usuario tiene a los objetos de una base de datos. Por ejemplo,puede determinar cuáles usuarios pueden ver un conjunto de datos específico y cuálesusuarios pueden manipular esos datos.

• Lenguaje de manipulación de datos (DML, Data Manipulation Language) Lasinstrucciones DML se usan para recuperar, agregar, modificar o borrar datosalmacenados en los objetos de una base de datos. Las palabras clave asociadas con lasinstrucciones DML son SELECT, INSERT, UPDATE y DELETE, las cuales representan los tiposde instrucciones que probablemente son más usadas. Por ejemplo, puede usar lainstrucción SELECT para recuperar datos de una tabla y la instrucción INSERT paraagregar datos a una tabla.

Consultado en: https://pedrobeltrancanessa-biblioteca.weebly.com/uploads/1/2/4/0/12405072/fundamentos_de_sql_3edi_oppel.pdf

Page 25: SQL (Lenguaje de Consulta estructurado)

Tipos de ejecución de Instrucciones

Page 26: SQL (Lenguaje de Consulta estructurado)

Tipos de ejecución de Instrucciones El estándar SQL proporciona detalles de cómo las instrucciones SQL son ejecutadas. Estemétodo de ejecución, conocido como estilos de unión, no sólo afecta la naturaleza de laejecución, sino también determina cuáles instrucciones, como mínimo, deben sersoportadas por un estilo de unión particular.

El estándar define cuatro métodos de ejecución:

• Invocación directa Mediante el uso de este método, puede comunicarse directamentedesde una aplicación de usuario, como iSQL*Plus en Oracle o Management Studio enMicrosoft SQL Server, en la base de datos. (La aplicación de usuario y la base de datospueden estar en la misma computadora, pero a menudo no lo están.) Simplementeintroduzca su consulta en la ventana de la aplicación y ejecute la instrucción SQL. Losresultados de su consulta se le devolverán tan rápido como el poder del procesador y laslimitaciones de la base de datos lo permitan. Ésta es una forma rápida de comprobardatos, verificar conexiones y ver los objetos en una base de datos. Sin embargo, lasdirectrices del estándar SQL sobre la invocación directa son bastante mínimas; por lotanto, los métodos utilizados y los estándares SQL respaldados pueden variarampliamente de un producto a otro.

Consultado en: https://pedrobeltrancanessa-biblioteca.weebly.com/uploads/1/2/4/0/12405072/fundamentos_de_sql_3edi_oppel.pdf

Page 27: SQL (Lenguaje de Consulta estructurado)

Tipos de ejecución de Instrucciones • SQL incrustado En este método, las instrucciones SQL están codificadas (incrustadas)

directamente en el lenguaje de programación anfitrión. Por ejemplo, las instruccionesSQL se pueden incrustar en el código C de la aplicación. Antes que el código se compile,un preprocesador analiza las instrucciones SQL y las desglosa desde el código C. El códigoSQL se convierte en una forma que RDBMS puede entender, y el código C restante secompila como lo haría normalmente.

• Unión de módulo Este método permite crear bloques de instrucciones SQL (módulos)que están separados del lenguaje de programación anfitrión. Una vez que el módulo escreado, es una combinación entre una aplicación y un vinculador. Un módulo contiene,entre otras cosas, procedimientos, y son los procedimientos los que contienen lasinstrucciones reales.

• Interfaz convocatoria a nivel (CLI, Call-level interface) Una CLI permite invocarinstrucciones SQL a través de una interfaz mediante la aprobación d instrucciones SQLcomo valores argumentativos para las subrutinas. Las instrucciones no estánprecompiladas como en el SQL incrustado y la Unión de módulo. En lugar de eso, sonejecutadas directamente por los RDBMS.

Page 28: SQL (Lenguaje de Consulta estructurado)

¿Qué es un SMDB?

Page 29: SQL (Lenguaje de Consulta estructurado)

¿Qué es un SMBD?Los sistemas manejadores de base de datos (SGBD), en inglés: DataBase ManagementSystem (DBMS), son un tipo de software muy específico, dedicado a servir de interfazentre la base de datos, el usuario y las aplicaciones que la utilizan. El propósito general delos sistemas manejadores de base de datos es el de manejar de manera clara, sencilla yordenada un conjunto de datos que posteriormente se convertirán en informaciónrelevante para una organización.

Es la porción más importante del software de un sistema de base de datos. Un DBMS esuna colección de numerosas rutinas de software interrelacionadas, cada una de las cualeses responsable de alguna tarea específica.

Funciones Principales:

• Establecer y mantener las trayectorias de acceso a la base de datos de tal formaque los datos puedan ser accesados rápidamente.

• Manejar los datos de acuerdo a las peticiones de los usuarios.

Page 30: SQL (Lenguaje de Consulta estructurado)

¿Qué es un SMBD?• Registrar el uso de las bases de datos.

• Interacción con el manejador de archivos. Esto a través de las sentencias en DML alcomando del sistema de archivos. Así el Manejador de base de datos es el responsabledel verdadero almacenamiento de los datos. Respaldo y recuperación.

Page 31: SQL (Lenguaje de Consulta estructurado)

¿Qué es un RDBMS?

Page 32: SQL (Lenguaje de Consulta estructurado)

¿Qué es un RDBMS?• Los sistemas de bases de datos relacionales RDBMS (Relational Database Management

System, por sus siglas en Inglés) tales como Oracle, MySQL, SQL Server, PostgreSQL,Informix, entre otros, le permiten ejecutar las tareas que se mencionan a continuación,de una forma entendible y razonablemente sencilla:

• Le permiten ingresar datos al sistema.

• Le permiten almacenar los datos.

• Le permiten recuperar los datos y trabajar con ellos.

• Le proveen herramientas para capturar, editar y manipular datos.

• Le permiten aplicar seguridad.

• Le permiten crear reportes e informes con los datos.

Page 33: SQL (Lenguaje de Consulta estructurado)

¿RDBMS y SQL?El centro de cualquier RDBMS basado en SQL es, por supuesto, el propio SQL. Sinembargo, el lenguaje utilizado no es SQL puro. Cada producto extiende su lenguaje con elfin de implementar las características definidas por el proveedor y mejorar la funcionalidadbasada en SQL. Además, una serie de productos RDBMS lo fabricaron para el mercadoantes de que hubiera un estándar.

En consecuencia, cada proveedor respalda una variación ligeramente diferente de SQL, loque significa que el lenguaje utilizado en cada producto tiene una aplicación específica. Porejemplo, SQL Server utiliza Transact-SQL, que incluye tanto a SQL como a las extensionesdel proveedor para proporcionar las instrucciones de procedimiento necesarias para losactivadores y los procedimientos almacenados. Por otro lado, Oracle proporcionainstrucciones de procedimiento en un componente de producto separado llamado PL/SQL.

Durante este diplomado se usara SQL Server (con Transact-SQL) u Oracle (conPL/SQL) para los ejemplos.

Consultado en: https://pedrobeltrancanessa-biblioteca.weebly.com/uploads/1/2/4/0/12405072/fundamentos_de_sql_3edi_oppel.pdf

Page 34: SQL (Lenguaje de Consulta estructurado)

¿RDBMS y SQL?Los sistemas de gestión de base de datos con soporte SQL más utilizados son:

DB2 - Firebird - HSQL - Informix - Interbase - MariaDB - Microsoft SQL Server - MySQL -Oracle - PostgreSQL - PervasiveSQL - SQLite - Sybase ASE

Consultado en: https://pedrobeltrancanessa-biblioteca.weebly.com/uploads/1/2/4/0/12405072/fundamentos_de_sql_3edi_oppel.pdf

Page 35: SQL (Lenguaje de Consulta estructurado)

¿RDBMS y SQL?Funciones matemáticas comunes

Consultado en: https://pedrobeltrancanessa-biblioteca.weebly.com/uploads/1/2/4/0/12405072/fundamentos_de_sql_3edi_oppel.pdf

Page 36: SQL (Lenguaje de Consulta estructurado)

¿RDBMS y SQL?Funciones de cadenas

Consultado en: https://pedrobeltrancanessa-biblioteca.weebly.com/uploads/1/2/4/0/12405072/fundamentos_de_sql_3edi_oppel.pdf

Descripción IBM DB2 SQL Server Oracle MySQL

Convierte todos los caracteres a

minúsculasLOWER LOWER LOWER LOWER

Convierte todos los caracteres a

mayúsculasUPPER UPPER UPPER UPPER

Elimina los blancos del final de la

cadenaRTRIM RTRIM RTRIM RTRIM

Elimina los blancos del comienzo

de la cadenaLTRIM LTRIM LTRIM LTRIM

Devuelve una subcadena SUBSTR SUBSTRING SUBSTR SUBSTRING

Concatena dos cadenas CONCAT + CONCAT CONCAT

Page 37: SQL (Lenguaje de Consulta estructurado)

Referencias

https://svo.cab.inta-csic.es/docs/files/svo/Public/Meetings/SVO_thematic_network_First_School/sql_basico-061127.pdf

Consultado en: https://pedrobeltrancanessa-biblioteca.weebly.com/uploads/1/2/4/0/12405072/fundamentos_de_sql_3edi_oppel.pdf