UNIDAD 1.- PARTE 1 MANIPULACIÓN AVANZADA DE DATOS CON SQL. BASES DE DATOS PARA APLICACIONES. Xochitl Clemente Parra Armando Méndez Morales



Documentos relacionados
Consultas con combinaciones

Sub consultas avanzadas

LAS SUBCONSULTAS SQL SERVER Manual de Referencia para usuarios. Salomón Ccance CCANCE WEBSITE

1. DML. Las subconsultas

CONSULTAS CON SQL. 3. Hacer clic sobre el botón Nuevo de la ventana de la base de datos. Aparecerá el siguiente cuadro de diálogo.

A.1. Definiciones de datos en SQL

SQL (Structured Query Language)

Tutorial de SQL - El comando SELECT

MANUAL BÁSICO DEL LENGUAJE SQL

CONSULTAS DE RESUMEN SQL SERVER Manual de Referencia para usuarios. Salomón Ccance CCANCE WEBSITE

SQL (DML) Carlos A. Olarte Gestión y Modelación de SQL Datos (DML)

Unidad III: Lenguaje de manipulación de datos (DML) 3.1 Inserción, eliminación y modificación de registros

Consulta y manipulación de datos. El lenguaje SQL

CONSULTAS BASICAS EN SQL SERVER

El lenguaje SQL es un lenguaje estándar para el acceso y

5- Uso de sentencias avanzadas

select nombre from profesores where categoria='aso6';

SQL. Lenguaje de Consulta Estructurado. Curso básico de SQL (Leire Urcola Carrera)

Procedimientos para agrupar y resumir datos

Entrarás a formar parte de nuestra bolsa de empleo a la que acuden las empresas en busca de nuestros alumnos.

Tema 4. Manipulación de datos con SQL

Taller SQL - SUP. Introducción al Lenguaje SQL. Claúsula Where. Sentencia Select Sentencia Insert Sentencia Update Sentencia Delete

Primeramente estudiaremos la forma básica de la sentencia SELECT, que esta formado por:

COMANDOS DE SQL, OPERADORES, CLAUSULAS Y CONSULTAS SIMPLES DE SELECCIÓN

SQL Server FEMEPA SQL Server 2000

SINTAXIS DE SQL-92. <definición de esquema >::= CREATE SCHEMA <cláusula de nombre de esquema> [ <elemento de esquema>... ]

DML SQL II. Comparaciones con relaciones

Boletín de Problemas de la Asignatura II18 Bases de Datos. Ingeniería Informática Universitat Jaume I

Unidad. Lenguaje SQL. (Structured Query Language)

SENTENCIAS Y CONSULTAS EN SQL SERVER

Ing. Santiago C. Pérez Laura Noussan Lettry Carlos Campos

8 SQL SERVER 2008 RA-MA

FUNCIONES EN SQL SERVER

Tecnología de la Información y la Comunicación. Base de datos. Consultas

Structured Query Language (SQL) Fundamentos de Bases de Datos InCo

8 MICROSOFT SQL SERVER 2008 R2. CURSO PRÁCTICO RA-MA

OPERACIONES FUNDAMENTALES DEL ÁLGEBRA RELACIONAL. Bases de Datos Ingeniería de Sistemas y Computación Universidad Nacional de Colombia 2007

Tema 4. SQL. Juan Ignacio Rodríguez de León

S.Q.L. (Lenguaje de Consulta Estructurada)

CONSULTAS MULTITABLAS SQL SERVER Manual de Referencia para usuarios. Salomón Ccance CCANCE WEBSITE

Tema 3. El modelo Relacional

Operaciones en el Modelo Relacional. Relacional. Relacional. Índice. Lenguajes de Consulta

6- Combinación de tablas

Bases de Datos SQL 1 SQL. Jorge Pérez R. Universidad de Talca, II Semestre 2006

Bases de Datos 2. Teórico

BREVE INTRODUCCIÓN AL SQL Aplicación al Programa Escuela Última actualización: 17/10/2000

Dependiendo de las tareas, podemos clasificar las sentencias SQL en dos tipos:

Aplicaciones de las vistas Concepto de vista Vistas en SQL Vistas en SQL.

LENGUAJE SQL. En Mysql se utiliza un subconjunto de SQL (update, insert into, delete, select, truncate,etc).

LENGUAJE DE CONSULTA ESTRUCTURADO - SQL CONTENIDO

Lenguaje de Consulta Estructurado S Q. Lenguaje de Consulta Estructurado. Wael Najjar /

Vistas en postgresql

DML en SQL. Consultas sencillas usando el DML de SQL

S.Q.L. (Lenguaje de Consulta Estructurada) Consultas Avanzadas. Sistemas de Bases de Datos II - ITS EMT CETP

Base de Datos Oracle 10g: Introducción a SQL Código: D Duración: 5 días (40 horas)

SQL Los fundamentos del lenguaje

OPTIMIZACIÓN DE CONSULTAS EN SQL. Análisis de Consultas y Transacciones Ajuste de Indices Ajuste de Consultas

Bases de Datos SQL - Ejemplos

Trabajo con Subconsultas

4. Modelo Relacional: Manipulación de los datos.

CENTRO UNIVERSITARIO DE CIENCIAS EXACTAS E INGENIERÍAS DIVISIÓN DE ELECTRÓNICA Y COMPUTACIÓN

ÍNDICE. Introducción... Capítulo 1. Novedades de Access

UNIDAD DE TRABAJO 2: BASES DE DATOS RELACIONALES

ACERCA DE LOS AUTO RES... III AGRADECIMIENTOS... xi INTRODUCCION... Xl

Base de datos I Facultad de Ingeniería. Escuela de computación.

Guía práctica de SQL

Restricciones de Integridad

SQL (Structured Query Language)- DML

3 Consultas y subconsultas

BASES DE DATOS. TEMA 7. SQL. EL LENGUAJE DE CONSULTA.

Tema: Uso de sentencias SQL

CONSULTAS SIMPLES SQL SERVER Manual de Referencia para usuarios. Salomón Ccance CCANCE WEBSITE

INSTITUTO DE EDUCACIÓN SUPERIOR TECNOLÓGICO IBEROTEC SEMESTRE ACADÉMICO: 2014-II SÍLABO

Base de datos Lenguaje SQL

Manual de ACCESS Intermedio

TEMA 6: MODIFICACIÓN DE LA BASE DE DATOS EN SQL

: COMPUTACIÓN E INFORMATICA : Ingeniería de Software Ingeniería de Redes y Comunicaciones : Administración de Bases de Datos I : T-INF127

Curso SQL Nivel Avanzado 1. Miguel Jurado García

Introducción al álgebra relacional. Con ejemplos en SQL

TEMA 10. INTRODUCCCIÓN A SQL. CONSULTAS BASADAS EN UNA TABLA

Qué es una subconsulta?.

CURSO DE SQL SERVER 2005

PROGRAMAS DE ESTUDIO FORMATO 7 INTRODUCCIÓN A SQL. Área de Formación Profesional

Documento Informativo

m046a Curso Consultando SQL Server 2005/2008 con Transact-SQL, 15 h

UNIVERSIDAD AUTONOMA DE LOS ANDES UNIANDES LENGUAJE SQL. SQL es un estándar un lenguaje estructurado para consultas

Bases de Datos: Structured Query Language (SQL)

Universidad Capitán General Gerardo Barrios. Facultad de Ciencia y Tecnología

Tema 4. Lenguajes de consulta comerciales

Bases de Datos Relacionales

T12 Vistas y tablas temporales

Sistemas de Datos Curso: Ernesto Chinkes. SQL Básico Algebra Relacional

Práctica 3. Consultas SQL

Práctica A: Trabajo con subconsultas

EXISTS y NOT EXISTS. Empleados que no trabajan en el proyecto 527.

UNION, INTERSECCION Y DIFERENCIA. SELECT TABLE Expresión con operador de reunión (SELECT * FROM PROFESOR) UNION (SELECT * FROM ESTUDIANTE)

Bases de datos en Excel

MÓDULO 1: ORGANIZACIÓN Y ESTRUCTURA DE LA INFORMACIÓN. Tema 3: Interrogación y explotación de datos. Leire Aldaz, Begoña Eguía y Leire Urcola

1.264 Tema 7. Introducción a SQL

Bases de datos: Sistemas de bases de datos:

Transcripción:

UNIDAD 1.- PARTE 1 MANIPULACIÓN AVANZADA DE DATOS CON SQL. BASES DE DATOS PARA APLICACIONES Xochitl Clemente Parra Armando Méndez Morales Práctica preliminar Crear la siguiente base de datos de prácticas en SQL Server. 1

Estructura básica de las consultas La estructura básica de una consulta consiste en 3 clausulas: Select: corresponde a la operación proyección del algebra relacional. Se utiliza para listar los atributos deseados del resultado de una consulta. From: corresponde a la operación producto cartesiano del algebra relacional. Lista las relaciones que deben ser analizadas en la evaluación de la expresión Where: engloba los atributos de las relaciones que aparecen en la clausula from. Distinct Id Nombre Direccion Telefono 1 Juan Perez Calle 3 No. 34 938-2343-322 2 Juan Lopez 2 pte nte 98 765-8356-224 3 Rosa Gómez 13 sur ote 383 675-4567-211 4 Juan Lopez Calle Amapolas 10 978-5976-435 SQL permite duplicados en la relaciones, pero si se quiere eliminar duplicados, se emplea la palabra clave distinct después del select. Select distinct nombre from Datos Select nombre from Datos 2

All Id Nombre Direccion Telefono 1 Juan Perez Calle 3 No. 34 938-2343-322 2 Juan Lopez 2 pte nte 98 765-8356-224 3 Rosa Gómez 13 sur ote 383 675-4567-211 4 Juan Lopez Calle Amapolas 10 978-5976-435 También se puede emplear la palabra all para especificar explícitamente que no se eliminan duplicados. Select all nombre from Datos * y operadores Id Nombre Dirección Teléfono Salario 1 Juan Perez Calle 3 No. 34 938-2343-322 4,500 2 Juan Lopez 2 pte nte 98 765-8356-224 6,500 3 Rosa Gómez 13 sur ote 383 675-4567-211 13,200 4 Juan Lopez Calle Amapolas 10 978-5976-435 12,100 El símbolo * se puede utilizar para denotar todos los atributos. también puede contener expresiones aritméticas que contengan los operadores +, -, * y / operando sobre constantes o atributos de las tuplas. Select salario * 0.15 from Datos 3

Prácticas Escriba las siguiente consultas: Seleccionar a los alumnos que se encuentren inscritos en el segundo ciclo. Seleccionar el nombre y dirección de los alumnos, concatenando la direccion con el siguiente formato: direccion, Poblacion. Seleccionar nombre y numero de hermanos de los alumnos, agregando después del numero del campo, la palabra hermano(s). Seleccione el tipo de materia, de la tabla materias, mostrando únicamente los valores únicos. where Especifica una condición de búsqueda para restringir el número de filas devueltas. Restringe el número de filas devueltas en el conjunto de resultados mediante el uso de predicados. Puede utilizar las conectivas and, or y not. Las expresiones que contengan pueden tener operadores de comparación. También se puede emplear el operador de comparación between para simplificar las clausulas where select nombre,salario from Datos where salario between 4000 and 6000 4

Renombramiento SQL proporciona un mecanismo para renombrar tanto relaciones como atributos. Para ello utiliza la clausula as La clausula as puede aparecer tanto en el select como en el from select salario * 0.10 as ISR from Datos select salario * 0.10 as ISR from Datos as datitos where datitos.salario >6000 Operaciones sobre cadenas SQL especifica las cadenas encerrándolas entre comilla simple. La operación mas empleada sobre cadenas es el encaje de patrones, para el que se usa el operador like. Para la descripción de patrones, se utilizan los 2 caracteres especiales: % : encaja con cualquier subcadena _ : encaja con cualquier carácter select nombre from Datos where nombre like 'Juan%' select nombre from Datos where nombre like 'J_' 5

Orden de la presentación de tuplas SQL ofrece control sobre el orden en que se presentan las tuplas de una relación utilizando la clausula order by. Para especificar el tipo de ordenación se puede incluir la clausula desc para orden descendente y asc para ascendente. Además, se puede ordenar con respecto a mas de un atributo. select nombre, salario from Datos where nombre like 'J%' order by nombre desc select nombre, salario from Datos where nombre like 'J%' order by nombre desc,salario desc Prácticas Seleccionar a los alumnos que tengan hermanos Seleccionar a los alumnos que tengan hermanos y se encuentren en el primer ciclo Seleccionar a los alumnos que este cursando la materia de Dibujo. Seleccionar las materias que sean de modalidad u optativas. Seleccionar a los alumnos que no se encuentren en primer nivel Seleccionar a los alumnos que tengan de 1 a 2 hermanos cursando el segundo ciclo. Seleccionar a los alumnos que tengan como apellido GARCÍA y que estén en el nivel 1 del primer ciclo. Mostrar a los alumnos del ejercicio anterior ordenados por población forma descendente. de Seleccionar a los alumnos cuyo primer apellido comience con M del segundo ciclo y que no tengan hermanos. Seleccionar las materias optativas ordenadas de forma ascendente, indicando el nombre de los alumnos inscritos. 6

Operaciones sobre conjuntos Las operaciones de SQL union, intersect y except operan sobre relaciones y se corresponden con las operaciones del algebra relacional. Al igual que la unión, intersección y la diferencia del algebra relacional, las relaciones que participan han de ser compatibles, es decir, deben tener el mismo conjunto de atributos. union Nos permite unir los resultados de varias consultas. Elimina los valores duplicados. Si se desean conservar todos los duplicados, es necesario escribir union all select nombre from datos union select nombre from datosexternos select nombre from datos union all select nombre from datosexternos 7

intersect Muestra los valores que se encuentran en ambos lados de la consulta. select nombre from datos intersect select nombre from datosexternos except Muestra los valores que se encuentran en la primera consulta, pero no están en la segunda. select nombre from datos Except select nombre from datosexternos 8

Funciones de agregación Son funciones que toman una colección (un conjunto o multiconjunto) de valores de entrada y devuelven un solo valor. Las 5 funciones de agregación son: Promedio (avg): aplicable a valores numéricos, calcula el promedio de los valores obtenidos Mínimo (min): retorna el menor elemento no nulo dentro de las tuplas para ese atributo Máximo (max): retorna el mayor elemento no nulo dentro de las tuplas para ese atributo Total (sum): aplicable a valores numéricos, realiza la suma matemática Cuenta (count): cuenta las tuplas resultantes. Avg,min,max select avg(salario) from datos where salario>5000 select min(salario) from datos where salario>5000 select max(salario) from datos where salario>5000 9

Sum, count select sum(datos.salario)+ sum(datosexternos.salario) from datos,datosexternos where datos.nombre like 'Juan%' and datos.nombre=datosexternos.nombre select nombre,count(salario) as NoSalarios from datos group by nombre Group by, having La clausula group by nos sirve para formar grupos de tuplas con el mismo valor. Para establecer condiciones a las agrupaciones creadas con group by, utilizamos la clausula having. Si en la misma consulta aparecen where y having, primero se aplica el criterio de where y sobre esas tuplas, se aplica el criterio de having. select datos.nombre,sum(datos.salario)+ sum(datosexternos.salario) from datos,datosexternos where datos.nombre like 'Juan%' and datos.nombre=datosexternos.nombre group by datos.nombre select D.nombre, sum(d.salario)+ sum(de.salario) from Datos as D, DatosExternos as DE where D.nombre=DE.nombre group by D.nombre having D.nombre not like '%Juan%' 10

Valores nulos SQL permite el uso de valores nulos para indicar la ausencia de valor. Para hacer esto, emplea la palabra null. El predicado is not null comprueba la ausencia de valores nulos. select nombre, direccion from Datos where telefono is null select nombre, salario from Datos where direccion is not null and salario<5000 Prácticas I Seleccionar a todos los alumnos de primer ciclo y calcular el promedio de cada uno de todas las materias. Contar el numero de alumnos que hay inscritos por materia Buscar a los alumnos que tienen mas materias cursadas. Sumar el numero de hermanos que tienen todos los alumnos Buscar al alumno con al más bajo promedio del segundo ciclo Buscar al alumno con el promedio mas alto de toda la institución. Buscar a los alumnos con los promedios mas altos de cada nivel Contar el numero de materias por tipo. Listar los promedios de los alumnos del segundo ciclo del promedio mas alto al mas bajo Contar a los alumnos con la misma calificación en informática 11

Prácticas II Contar al numero de alumnos por turno Promediar las calificaciones de los alumnos por turno Listar los alumnos con promedio aprobatorio del nivel 2 en orden descendente Contar a los alumnos reprobados y aprobados del nivel 3 Unir con una consulta a los alumnos de primer ciclo nivel 1, con los alumnos de primer ciclo nivel2. Seleccionar a los alumnos del primer ciclo que no estén cursando lenguas. Contar a los alumnos que cursan dibujo, pero no cursan informática. Contar cuantos alumnos sin hermanos hay en toda la institución, agrupándolos por nivel. Contar a los alumnos por población de origen. Incluir el calculo de su promedio. Calcular el promedio de los alumnos que tengan como en algún apellido García. Subconsultas anidadas Una sub consulta es una sentencia SELECT que es incrustada en una cláusula de otra sentencia SQL, llamada sentencia padre. La sub consulta (consulta interna) obtiene un valor que es usado por la sentencia padre. Usar una sub consulta anidada es equivalente a ejecutar dos consultas secuenciales y utilizar el resultado de la consulta interna como valor de búsqueda en la consulta externa (consulta principal). 12

Subconsultas anidadas Las sub consultas pueden ser usadas para los siguientes propósitos: Proveer valores para condiciones en cláusulas WHERE, HAVING y START WITH de sentencias SELECT Definir el conjunto de filas a ser insertadas en una tabla de una sentencia INSERT o CREATE TABLE Definir el conjunto de filas a ser incluidas en una vista o snapshot en una sentencia CREATE VIEW o CREATE SNAPSHOT Definir uno o más valores para ser asignados a filas existentes en una sentencia UPDATE Definir una tabla para ser operada por el contenido de una consulta. (Esto se hace colocando la sub consulta en la cláusula FROM. Esto puede hacerse también en sentencias INSERT, UPDATE y DELETE. Nota: Una sub consulta es evaluada en una ocasión para toda la sentencia Padre. Subconsultas anidadas Se pueden construir sentencias poderosas utilizando sub consultas. Las sub consultas pueden ser muy útiles cuando necesites seleccionar filas de una tabla con una condición que dependa de los datos de la misma u otra tabla. Las sub consultas son muy útiles para escribir sentencias SQL que necesiten valores de un o más valores condicionales desconocidos. Donde: operator incluye un operador de comparación como >, = o IN Nota: los operadores de comparación se encuentran en dos clases: operadores de fila única (>, =, >=, <, <>, <=) y operadores de múltiples filas (IN, ANY, ALL) Las sub consultas son a menudo referidas como sentencias SELECT anidadas, sub-select, o SELECT internos. Las consultas internas y externas pueden recuperar datos de la misma tabla o de tablas diferentes. 13

Ejemplo de una subconsulta sencilla Datos Datos Externos select nombre,salario from Datos where salario>(select min(salario) from DatosExternos) Subconsultas de múltiples columnas El ejemplo anterior nos muestra una sub consultas de filas únicas donde solo una columna es obtenida por la sentencia SELECT interna y estas son usadas para evaluar la expresión en la sentencia SELECT padre. Si quieres comparar dos o más columnas, debemos escribir una cláusula WHERE compuesta usando operadores lógicos. El uso de subconsultas de múltiples columnas, puede combinar condiciones WHERE duplicadas en una simple cláusula WHERE. 14

Subconsultas de múltiples columnas Datos Datos Externos select nombre,direccion from Datos where nombre IN (select nombre from DatosExternos where nombre like '%J%') Subconsultas con ANY, SOME,ALL Los operadores de comparación que presentan una subconsulta se pueden modificar mediante las palabras clave ALL o ANY. SOME es un equivalente del estándar de SQL-92 de ANY. Las subconsultas presentadas con un operador de comparación modificado devuelven una lista de cero o más valores. Pueden incluir GROUP BY o HAVING. Para que una fila de una subconsulta con >ALL satisfaga la condición especificada en la consulta externa, el valor de la columna que presenta la subconsulta debe ser mayor que cada valor de la lista de los valores devueltos por la subconsulta. De forma parecida, >ANY significa que, para que una fila satisfaga la condición especificada en la consulta externa, el valor de la columna que presenta la subconsulta debe ser mayor que, como mínimo, uno de los valores de la lista devuelta por la subconsulta. 15

Ejemplo select nombre,salario from datos where id =any (select idusuario from contactos where origenusuario=0) Ejemplo Datos Datos Externos select Nombre,salario from Datos where salario >all(select salario from DatosExternos where salario<10000 ) 16

Subconsultas con EXISTS o NOT EXISTS Cuando una subconsulta se especifica con la palabra clave EXISTS, funciona como una prueba de existencia. La cláusula WHERE de la consulta externa comprueba la existencia de las filas devueltas por la subconsulta. En realidad, la subconsulta no produce ningún dato, devuelve el valor TRUE o FALSE. Una subconsulta que se especifica con EXISTS tiene la sintaxis siguiente: WHERE [NOT] EXISTS (subquery) Ejemplo select nombre from Datos where exists (select contactos.idusuario from Contactos,datos where contactos.idusuario=3 and contactos.idusuario=datos.id) select nombre from Datos where exists (select contactos.idusuario from Contactos,datos where contactos.idusuario=2 and contactos.idusuario=datos.id) 17

Subconsultas usadas en lugar de una expresión En Transact-SQL, una subconsulta se puede usar allí donde se pueda usar una expresión en las instrucciones SELECT, UPDATE, INSERT y DELETE, excepto en una lista ORDER BY. Ejemplo Datos Datos Externos select datos.nombre, salario - (select min(salario) from datosexternos) from datos as difsalariomaspequeño 18

Prácticas Realice las prácticas de las diapositivas 22 y 23 utilizando los diferentes tipos de subconsultas revisados. 19