• No se han encontrado resultados

SQL (Lenguaje de Consulta estructurado) Ing. Liliana Minsero

N/A
N/A
Protected

Academic year: 2022

Share "SQL (Lenguaje de Consulta estructurado) Ing. Liliana Minsero"

Copied!
37
0
0

Texto completo

(1)

SQL (Lenguaje de Consulta estructurado)

Ing. Liliana Minsero

(2)

MÓDULO 1

Fundamentos de Programación y

SQL

(3)

¿Qué es SQL?

(4)

¿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 determinadas operaciones 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 de bases 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 permiten efectuar consultas con el fin de recuperar, de forma sencilla, información de bases de datos, así como hacer cambios en ellas.

Originalmente basado en el álgebra relacional y en el cálculo relacional, SQL consiste en un lenguaje de definición de datos, un lenguaje de manipulación de datos y un lenguaje de control de datos. El alcance de SQL incluye la inserción de datos, consultas, actualizaciones y 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 incluye elementos procesales.

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

(5)

¿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 datos para grandes bancos de datos compartidos. A pesar de no adherirse totalmente al modelo relacional 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. Desde entonces, el estándar ha sido revisado para incluir más características. A pesar de la existencia de ambos estándares, la mayoría de los códigos SQL no son completamente portables entre sistemas de bases de datos diferentes sin ajustes.

(6)

Evolución de SQL

(7)

Evolución de SQL

Los 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.

(8)

Evolución de SQL

Sin embargo, este primer estándar no cubría todas las necesidades de los desarrolladores e incluía funcionalidades de definición de almacenamiento que se consideró suprimirlas. Así que, en 1992, se lanzó un nuevo estándar ampliado y revisado de SQL llamado "SQL-92" o "SQL2".

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

(9)

Evolución de SQL

Añ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 expresiones

regulares, 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.​

(10)

Evolución de SQL

Añ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.

(11)

Evolución de SQL

Añ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

(12)

Características de SQL

(13)

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 su fuerte base teórica y su orientación al manejo de conjuntos de registros —y no a registros individuales— permite una alta productividad en codificación y la orientación a objetos. De esta forma, una sola sentencia puede equivaler a uno o más programas que se 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ón de esquemas de relación, borrado de relaciones y modificaciones de los esquemas de relación.

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

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

(14)

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 de una transacción.

• SQL incorporado y dinámico: Esto quiere decir que se pueden incorporar instrucciones de 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 las relaciones y a las vistas.

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

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

(15)

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 un sublenguaje de datos porque se utiliza con frecuencia en asociación con la aplicación de lenguajes de programación como C y Java, lenguajes que no fueron diseñados para la manipulación de datos almacenados en una base de datos. Como resultado, SQL se utiliza en conjunto con la aplicación del lenguaje para proporcionar un medio eficaz de acceder a los datos, razón por la cual se considera a SQL como un sublenguaje.

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

(16)

Tipos de datos de SQL

Algunos de los tipos de datos básicos de SQL son:

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

• Date: una fecha de calendario que contiene el año (de cuatro cifras), el mes y el dí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

(17)

Tipos de datos de SQL

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

(18)

Operadores de SQL

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

(19)

Objeto de modelo relacional con

SQL

(20)

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á del modelo relacional puro para incluir construcciones orientadas a objetos en el lenguaje.

Estas construcciones se basan en los conceptos inherentes de programación orientada a objetos, una programación metodológica que define colecciones autónomas de estructura de datos y rutinas (llamadas objetos). En los lenguajes orientados a objetos como Java y C++, los objetos interactúan entre sí de manera que permiten al lenguaje abordar problemas complejos que no serían fáciles de resolver en lenguajes tradicionales.

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

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

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

(21)

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 objetos en sus sistemas.

• El estándar SQL:2006 sigue el ejemplo y extiende el modelo relacional con capacidades orientadas a objetos, como métodos, encapsulación, y tipos de datos complejos y definidos por el usuario, lo que hace a SQL un lenguaje de base de datos relacional a objeto. (SQL/XML) se amplió considerablemente y se reeditó con SQL:2006, y todas las demá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

(22)

Tipos de instrucciones de SQL

(23)

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 de datos, asegurar esos objetos y manipular la información dentro de los objetos. Un método común usado para categorizar las instrucciones SQL es dividirlas de acuerdo con las funciones que realizan. Basado en este método, SQL se separa en tres tipos de instrucciones:

• Lenguaje de definición de datos (DDL, Data Definition Language) Las instrucciones DDL se 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 SQL más frecuentemente asociadas con las instrucciones DDL son CREATE, ALTER y DROP. Por ejemplo, se usa la instrucción CREATE TABLE para crear una tabla, la instrucción ALTER TABLE para modificar las características de una tabla, y la instrucción DROP TABLE para borrar 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

(24)

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 persona o un programa de aplicación) tiene acceso a objetos específicos en la base de datos. Con DCL, puede otorgar o restringir el acceso usando las instrucciones GRANT o REVOKE, los dos comandos principales en DCL. Las instrucciones DCL también permiten controlar el tipo 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áles usuarios pueden manipular esos datos.

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

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

(25)

Tipos de ejecución de Instrucciones

(26)

Tipos de ejecución de Instrucciones

El estándar SQL proporciona detalles de cómo las instrucciones SQL son ejecutadas. Este método de ejecución, conocido como estilos de unión, no sólo afecta la naturaleza de la ejecución, sino también determina cuáles instrucciones, como mínimo, deben ser soportadas 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 directamente desde una aplicación de usuario, como iSQL*Plus en Oracle o Management Studio en Microsoft SQL Server, en la base de datos. (La aplicación de usuario y la base de datos pueden estar en la misma computadora, pero a menudo no lo están.) Simplemente introduzca su consulta en la ventana de la aplicación y ejecute la instrucción SQL. Los resultados de su consulta se le devolverán tan rápido como el poder del procesador y las limitaciones de la base de datos lo permitan. Ésta es una forma rápida de comprobar datos, verificar conexiones y ver los objetos en una base de datos. Sin embargo, las directrices del estándar SQL sobre la invocación directa son bastante mínimas; por lo tanto, los métodos utilizados y los estándares SQL respaldados pueden variar ampliamente de un producto a otro.

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

(27)

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 instrucciones SQL 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ódigo SQL se convierte en una forma que RDBMS puede entender, y el código C restante se compila 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 es creado, 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 las instrucciones reales.

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

(28)

¿Qué es un SMDB?

(29)

¿Qué es un SMBD?

Los sistemas manejadores de base de datos (SGBD), en inglés: DataBase Management System (DBMS), son un tipo de software muy específico, dedicado a servir de interfaz entre la base de datos, el usuario y las aplicaciones que la utilizan. El propósito general de los sistemas manejadores de base de datos es el de manejar de manera clara, sencilla y ordenada un conjunto de datos que posteriormente se convertirán en información relevante para una organización.

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

Funciones Principales:

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

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

(30)

¿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 al comando del sistema de archivos. Así el Manejador de base de datos es el responsable del verdadero almacenamiento de los datos. Respaldo y recuperación.

(31)

¿Qué es un RDBMS?

(32)

¿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.

(33)

¿RDBMS y SQL?

El centro de cualquier RDBMS basado en SQL es, por supuesto, el propio SQL. Sin embargo, el lenguaje utilizado no es SQL puro. Cada producto extiende su lenguaje con el fin de implementar las características definidas por el proveedor y mejorar la funcionalidad basada en SQL. Además, una serie de productos RDBMS lo fabricaron para el mercado antes de que hubiera un estándar.

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

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

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

(34)

¿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

(35)

¿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

(36)

¿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úsculas LOWER LOWER LOWER LOWER

Convierte todos los caracteres a

mayúsculas UPPER UPPER UPPER UPPER

Elimina los blancos del final de la

cadena RTRIM RTRIM RTRIM RTRIM

Elimina los blancos del comienzo

de la cadena LTRIM LTRIM LTRIM LTRIM

Devuelve una subcadena SUBSTR SUBSTRING SUBSTR SUBSTRING

Concatena dos cadenas CONCAT + CONCAT CONCAT

(37)

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

Referencias

Documento similar

[r]

[r]

RIBEIRO, y respecto al comercio exterior su Consejo Regulador nos ha facilitado los datos del 85% de las bodegas inscritas que son las que han suministrado la información al

Se llega así a una doctrina de la autonomía en el ejercicio de los derechos que es, en mi opinión, cuanto menos paradójica: el paternalismo sería siempre una discriminación cuando

La combinación, de acuerdo con el SEG, de ambos estudios, validez y fiabilidad (esto es, el estudio de los criterios de realidad en la declaración), verificada la

De non ser así, as facturas non poderán tramitarse para o pago, e a USC, a través do responsable de asuntos económicos do centro da USC que solicitou os seus servicios Rexeitará

T02.019- Fecha y usuario del pedido, código, nombre, marca, pvp y precio de venta de los artículos solicitados en el pedido número 1 que sean televisores... select cod,nombre,'tiene

Estos planes de recolo- cación deben garantizar a las personas despedi- das un servicio continuado durante un periodo mínimo de seis meses que incluya medidas de formación