LENGUAJES DE BASES DE DATOS: SQL

Slides:



Advertisements
Presentaciones similares
Introducción Lenguaje de manipulación de datos (Data Manipulation Language) Permite a los usuarios llevar a cabo las tareas de consulta o manipulación.
Advertisements

Teórico: Structured Query Language
Lenguaje de consulta de Hibernate
Características Objeto Relacionales en Oracle
OPERACIONES DE RECUPERACIÓN. WHERE ciudad =‘Las Palmas’; de los suministradores Obtener el código y la situación de Las Palmas SELECT sn, situacion FROM.
Características Objeto Relacionales en Oracle Francisco Moreno Universidad Nacional.
SQL.
Lenguaje SQL (Structured Query Language)
SQL Básico Prof. Nelliud D. Torres.
SQL el Structured Query Language no es mas que un lenguaje estándar de comunicación con bases de datos.
SQL: Lenguaje de Interrogación Estructurado
Subconsultas Avanzadas
Integrantes: Peter velazques Andres heredia Juan Mendez
SQL: DDL Francisco Moreno & Carlos Mario Zapata. SQL:DDL DDL: Lenguaje de Definición de Datos Permite crear objetos en la Base de Datos Tipos de Objetos:
Diseñando la arquitectura de aplicaciones empresariales. Acceso al SQL Server.- Autenticación de usuario:
Bases de datos con MYSQL
IBD CLASE 15. SQL Lenguaje de Consultas Estruturado (SQL) ◦Lenguaje de trabajo estándard para modelo relacional ◦Componentes ◦DDL: Data Definition Language.
CAPITULO 4 Despliegue de Datos Desde Múltiples Tablas
Programación en Visual Basic Lección #8: SQL Por Antonio F. Huertas.
CONSULTAS SENCILLAS A LA BASE DE DATOS
Consultas SQL (Base de Datos)
Bases de Datos Sql.
SQL: DDL Francisco Moreno. SQL: DDL DDL: Lenguaje de Definición de Datos Permite crear objetos en la BD Tipos de objetos: - Tablas: corresponden a las.
Expresiones algebraicas equivalentes
Más ejemplos en SQL Francisco Moreno. S sn snombre situacion ciudad S1 Salazar 20 Londres S2 Jaramillo 10 París S3 Bernal30 París S4 Caicedo 20 Londres.
Ingeniería de Sistemas y Modelamiento.
Consultas SQL. SQL SQL es un lenguaje de consulta estructurado (Structured Query Languague). Se utiliza para: Eliminar Modificar Consultar La base de.
MSSQL SERVER CURSO BÁSICO 1. CONCEPTOS BASICOS DE SQL. DESCRIPCIÓN DEL CURSO. Sesión 3: Índices Uso, Creación, Tipos, Eliminación LENGUAJE DE CONSULTAS.
SQL es el lenguaje de comunicación entre el programa cliente y programa servidor; Oracle es un programa servidor, en el que está la base de datos propiamente.
Unidad 6. Tema 4. Lenguaje de consultas SQL
DLM Transact SQL Sesión II Recuperación de información.
Querys a bases de datos con MS ACCESS. DEFINAMOS LOS TERMINOS: DML=Lenguaje de manipulación de datos Las sentencias DML permiten generar consultas para.
DML Transact SQL Sesión VI Trabajando con subconsultas.
COMANDOS SQL. ¿QUÉ ES SQL? El lenguaje de consulta estructurado es un lenguaje declarativo que permite la creación, acceso e interacción de bases de datos.
Conferencia 7. Lenguaje SQL Estándar. Ejemplos.
SQL: Structured Query Language
Structured Query Language
Paul Leger Algebra Relacional 2 Paul Leger
Lenguaje de manipulación de datos
MYSQL SQL: Lenguaje de consulta estructurado. Es un lenguaje de programación para trabajar con BD relacionadas, entre las cuales tenemos MYSQL, ORACLE,
Lineamientos informales para un buen diseño
Tipos de datos en MYSQL YEAR: Año. “YYYY” o “YY”
Lineamientos para un buen diseño de base de datos
Base de Datos Introducción
SQL: Structured Query Language
Paul Leger Algebra Relacional 2 Paul Leger
Técnicas y Herramientas de Computación
CONSULTAS SQL POSTGRES.
Structure Query Languaje
SQL 2: Structured Query Language
SQL: structured Query Language
Álgebra relacional.
Lenguajes de programación
Lenguaje Estructurado de Consultas
SQL Lenguaje de Consulta Estructurado
Consultas SQL.
Base de Datos - II . Unidad 1 -SQL.
Structure Query Languaje
4.- Sentencia SELECT simple
Universidad Alonso de Ojeda Facultad de Ingeniería
CONSULTAS SELECT … FROM …. WHERE …. ORDER BY …. FUNCIONES.
Normalmente emparejamos tablas que están relacionadas entre sí y una de las columnas de emparejamiento es clave principal, pues en este caso, Cuando una.
LENGUAJES DE BASES DE DATOS: CÁLCULO RELACIONAL
CC Bases de Datos Otoño Clase 5: El Cálculo Relacional + SQL (I)
Ing. Francisco Rodríguez
ALGEBRA RELACIONAL UNIDAD 3 ALGEBRA RELACIONAL. INTRODUCCIÓN Se forma a partir de la matemática formal Creada por Edgar Frank Codd en 1972 Concede comportamineto.
SQL.
Fundamentos de las Base de Datos. Contenido Que es una Base de Datos. La diferencia entre datos e informacion. Clasificacion de las base de datos. Importancia.
Optimización de consultas en SQL Server Crux Consultores, 2017.
El SQL es el lenguaje estándar ANSI/ISO de definición, manipulación y control de bases de datos relacionales. La sigla que se conoce como SQL corresponde.
Transcripción de la presentación:

LENGUAJES DE BASES DE DATOS: SQL Francisco Moreno 07/04/2019 Curso Bases de Datos

Structured Query Language (SQL) Versión original: San José Research Laboratory de IBM, mediados de 1970 Implementado por primera vez en un prototipo de IBM llamado System R El American National Standard Institute (ANSI) publicó el estándar SQL en 1986 La última versión es SQL:2016 (soporta JSON) Es el lenguaje estándar de los SGBD comerciales 07/04/2019 Curso Bases de Datos

Structured query Language (SQL) Se divide en sublenguajes: DDL: Sublenguaje para crear, modificar y eliminar relaciones, crear y eliminar índices y vistas, permite especificar restricciones de integridad, entre otros aspectos DCL: Sublenguaje para crear usuarios y definir permisos de acceso DML: Sublenguaje de consulta (basado en álgebra y cálculo relacional), actualización, inserción y borrado de tuplas Se ve posteriormente 07/04/2019 Curso Bases de Datos

Consultas: SELECT Su estructura esencial tiene tres elementos: Una cláusula SELECT, que permite especificar los atributos que se desean en el resultado. Corresponde a la operación de Proyección del álgebra relacional. Una cláusula FROM, que permite especificar las relaciones de la consulta. En su forma más simple corresponde a la operación Producto Cartesiano del álgebra. Una cláusula WHERE, que permite especificar las condiciones de la consulta. Corresponde a la operación de Restricción del álgebra. 07/04/2019 Curso Bases de Datos

En forma esquemática, se tiene: SELECT DISTINCT a1,a2,...,an FROM R1,R2,...,Rm WHERE condición; Lo anterior equivale a la siguiente expresión del álgebra:  (scondición(R1 X R2 X ... X Rm)) En la lista de atributos se puede colocar un asterisco (*), para representarlos a todos atributos relaciones a1,a2,…,an 07/04/2019 Curso Bases de Datos

SQL no elimina tuplas repetidas. (si las hay) SQL no elimina tuplas repetidas* (si las hay). Para eliminarlas se usa DISTINCT después de SELECT. Explícitamente se puede indicar que no se desea eliminar las posibles tuplas duplicadas, colocando ALL** después de SELECT. * Es decir, SQL NO es cerrado relacionalmente, por ejemplo, puede producir resultados con tuplas repetidas. ** Es la opción predeterminada, rara vez se usa. 07/04/2019 Curso Bases de Datos

Supóngase la relación EMPLEADO: Sea la consulta: SELECT nombre, edad FROM empleado WHERE edad >= 28; En SQL se prefieren minúsculas para referirse a las relaciones y a los atributos 07/04/2019 Curso Bases de Datos

Oeradores de comparación: La respuesta es: Oeradores de comparación: = (igual), != o <> (diferente), > (mayor que), < (menor que), >= (mayor o igual que), <= (menor o igual que) 07/04/2019 Curso Bases de Datos

Se pueden usar los conectores AND, OR, NOT: Ej: SELECT * FROM empleado WHERE edad < 28 AND depto = 1; Se puede usar el operador BETWEEN, para especificar un rango de valores, por ejemplo: WHERE edad BETWEEN 18 AND 30; BETWEEN se puede expresar por medio de >= y <= 07/04/2019 Curso Bases de Datos

Se puede indicar una lista de valores con el operador IN: SELECT * FROM empleado WHERE nombre IN ('Jorge Campos','Esteban Paz'); La condición anterior equivale a: nombre = 'Jorge Campos' OR nombre = 'Esteban Paz' Tanto IN como BETWEEN se pueden negar con NOT En vez de ser una lista estática de valores también se puede especificar una consulta, ver luego. Ojo: ¿Qué pasaría si se colocase un AND acá? 07/04/2019 Curso Bases de Datos

Las cadenas de caracteres se pueden comparar con (=) y diferente (<>, !=)* También se puede usar el operador LIKE para expresar comparaciones de cadenas de caracteres más complejas: El carácter % remplaza cualquier subcadena El carácter _ remplaza un carácter Ejemplos: atributo LIKE 'amer%' : cadenas que comiencen por 'amer' atributo LIKE '%eri%' : cadenas que contengan 'eri' atributo LIKE '___%' : cadenas que tengan al menos tres letras *También se pueden comparar cadenas con >,<, etc.; según el código ASCII. 07/04/2019 Curso Bases de Datos

Operador de concatenación: || Operador de renombrado, en algunos SGBD no es necesario usarlo Operador de concatenación: || SELECT nombre|| ' ' || edad AS nomyedad FROM empleado; En algunos SGBD se debe usar la función TO_CHAR si se va a concatenar con un NUMBER Un espacio 07/04/2019 Curso Bases de Datos

Para comparar con nulos: IS NULL e IS NOT NULL: SELECT * FROM empleado WHERE depto IS NULL; Para cambiar un nulo por un valor: NVL (en Oracle), COALESCE: SELECT codigo, COALESCE(depto,-1) FROM empleado; 07/04/2019 Curso Bases de Datos

Manejo de joins: Mediante la cláusula INNER JOIN … ON Se puede usar cualquier operador de comparación diferente al de igualdad produciendo theta joins La forma “clásica” para hacer un join es comparar los atributos de join en la cláusula WHERE Otra forma es usar la cláusula NATURAL JOIN 07/04/2019 Curso Bases de Datos

Sean las relaciones: DEPARTAMENTO EMPLEADO 07/04/2019 Curso Bases de Datos

FROM empleado INNER JOIN departamento ON Ejemplos de joins: a) SELECT * FROM empleado INNER JOIN departamento ON empleado.depto = departamento.depto; b) SELECT * FROM empleado, departamento WHERE empleado.depto = departamento.depto; c) Nótese que la siguiente consulta imprime solo una vez el atributo de join: SELECT * FROM empleado NATURAL JOIN departamento; Equivale a EMPLEADO ⋈ DEPARTAMENTO 07/04/2019 Curso Bases de Datos

FROM (t1 INNER JOIN t2 ON t1.a = t2.b) INNER JOIN t3 ON t1.b = t3.c; Los INNER JOINs se pueden anidar para lograr una sucesión de joins. Además los atributos de join no se tienen que llamar igual entre las tablas: SELECT * FROM (t1 INNER JOIN t2 ON t1.a = t2.b) INNER JOIN t3 ON t1.b = t3.c; 07/04/2019 Curso Bases de Datos

Se puede usar la cláusula AS para especificar alias para las tablas. SELECT e.codigo, e.nombre, d.* FROM empleado AS e, departamento AS d WHERE e.depto = d.depto; Nota: AS hace parte del SQL estándar; sin embargo, algunos SGBD como Oracle no lo soportan para dar alias a las tablas (en Oracle se omite). AS también sirve para renombrar atributos (en este sentido SÍ funciona en Oracle, pero su uso es opcional). 07/04/2019 Curso Bases de Datos

Ejemplo: Sean las relaciones: SOCIO (codsocio, nombre, direccion, telefono) PELICULA (codpeli, titulo, genero) COPIA (codcopia, codpeli) PRESTAMO (codsocio, codcopia, fecha_pres, fecha_dev) Nota: Aquí se han subrayado los atributos que forman la CP de cada relación. 07/04/2019 Curso Bases de Datos

Ejemplo de una subconsulta. Ej: Mostrar el título de las películas que nunca se han prestado: SELECT titulo FROM pelicula WHERE codpeli NOT IN (SELECT co.codpeli FROM prestamo AS pr, copia AS co WHERE pr.codcopia = co.codcopia ); ¿Será necesario usar acá DISTINCT? ¿Sería recomendable incluir codpeli acá? 07/04/2019 Curso Bases de Datos

Se pueden usar funciones de agregados: Estas funciones hacen caso omiso de los nulos pero consideran valores repetidos. Se pueden usar funciones de agregados: SUM(atributo): Sumatoria de los valores del atributo. MAX(atributo): Valor máximo del atributo. MIN(atributo): Valor mínimo del atributo. AVG(atributo): Valor promedio del atributo. COUNT(atributo o *): Conteo de tuplas. Se puede usar GROUP BY con estas funciones para consolidar por grupos (operador Ģ del álgebra) Se puede usar HAVING para establecer condiciones para los grupos (HAVING es para los grupos lo que el WHERE es para las tuplas) 07/04/2019 Curso Bases de Datos

Ej: Obtener el número de veces que se ha prestado la película más prestada. SELECT MAX(numero_veces) AS maxnumvec FROM (SELECT COUNT(*) AS numero_veces FROM prestamo AS pr, copia AS co WHERE pr.codcopia = co.codcopia GROUP BY co.codpeli ); 07/04/2019 Curso Bases de Datos

SELECT MAX(COUNT(*)) AS maxnumvec FROM prestamo pr, copia co En esta consulta se puede evitar, en algunos SGBD, el SELECT externo así: SELECT MAX(COUNT(*)) AS maxnumvec FROM prestamo pr, copia co WHERE pr.codcopia = co.codcopia GROUP BY co.codpeli; 07/04/2019 Curso Bases de Datos

En lo posible evite SELECTs innecesarios: SELECT codsocio FROM (SELECT * FROM socio); Esto es simplemente: FROM socio; Lamentablemente, el uso de consultas que son más complejas de lo necesario es muy común y esto puede afectar negativamente el rendimiento de las aplicaciones 07/04/2019 Curso Bases de Datos