DML Transact SQL Sesión VI Trabajando con subconsultas.

Slides:



Advertisements
Presentaciones similares
Consultas en Visual FoxPro
Advertisements

Base de Datos II.
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.
integridad referencial
VISTAS (VIEWS) DEFINICIÓN Y OBJETIVO DE LAS VISTAS.
Rocio Contreras Aguila Primer Semestre Para poder ejecutar esto SQL Server nos permite definir datos y nos entrega herramientas para poder exigir.
BASE DE DATOS OBJETO RELACIONAL
Curso de Microsoft® Access® 2010
EN EXCEL SE PUEDE REALIZAR FILTROS EN CUYO FIN ES UNA FORMA RAPIDA Y FACIL DE BUSCAR UN SUBCONJUNTO EN SUB TOTALES SON CON UNA FUNCION DE RESUMEN COMO.
Aprendizaje de Microsoft® Access® 2010
Consultas anidadas.
Lenguaje de consulta de Hibernate
La función BUSCAR devuelve un valor de un rango de una fila o una columna o de una matriz. Forma matricial: Buscar el valor especificado en la primera.
Universidad del Cauca – FIET – Departamento de Sistemas CAPITULO 5 Agregando Datos Usando Funciones de Grupo.
Como empezar en Access 2000 Abrir Access 2000 Pulsamos INICIO
SQL el Structured Query Language no es mas que un lenguaje estándar de comunicación con bases de datos.
Subconsultas Avanzadas
Consultas - Querys La sentencia SELECT.
6 Copyright © 2010, Oracle y/o sus filiales. Todos los derechos reservados. Visualización de Datos de Varias Tablas Utilizando Uniones.
Una base de datos es un “almacén” que nos permite guardar grandes cantidades de información de forma organizada para que luego podamos encontrar y utilizar.
F Copyright © 2010, Oracle y/o sus filiales. Todos los derechos reservados. Sintaxis de Unión en Oracle.
Universidad del Cauca – FIET – Departamento de Sistemas CAPITULO 6 Subconsultas.
Universidad del Cauca – FIET – Departamento de Sistemas CAPITULO 11 Creando Vistas.
Material de apoyo Unidad 4 Estructura de datos
COMANDOS SQL.
COMANDOS DML DML son las siglas de Data Manipulation Language y se refiere a los comandos que permiten a un usuario manipular los datos en un repositorio,
Diseñando la arquitectura de aplicaciones empresariales. Acceso al SQL Server.- Autenticación de usuario:
IBD CLASE 15. SQL Lenguaje de Consultas Estruturado (SQL) ◦Lenguaje de trabajo estándard para modelo relacional ◦Componentes ◦DDL: Data Definition Language.
EXPRESIONES Y SENTENCIAS
CAPITULO 4 Despliegue de Datos Desde Múltiples Tablas
CONSULTAS SENCILLAS A LA BASE DE DATOS
Autora: Francisca Montañez Muñoz
Consultas SQL (Base de Datos)
LENGUAJE SQL.
Bases de Datos Sql.
Universidad del Cauca – FIET – Departamento de Sistemas CAPITULO 14 Uso de Operadores de Conjuntos.
Bases de Datos en Excel Microsoft Excel aporta al usuario la posibilidad de trabajar con tablas de información: nombres, direcciones, teléfonos, zonas,
PROCEDIMIENTOS ALMACENADOS Es una consulta almacenada en la base de datos en un servidor. Los P.A. Mejoran el Rendimiento Disminuyen el tráfico. Los P.A.
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.
LENGUAJE ESTRUCTURADO DE CONSULTAS
Lenguaje Estructurado de Consulta
COMANDOS DML DML son las siglas de Data Manipulation Language y se refiere a los comandos que permiten a un usuario manipular los datos en un repositorio,
Para crear una vista debemos utilizar la sentencia CREATE VIEW, debiendo proporcionar un nombre a la vista y una sentencia SQL SELECT válida. CREATE.
Introducir Fórmulas y Funciones:
CONBINACION DE CORRESPONDENCIA
 La sentencia SELECT recupera todas las columnas o un subconjunto de ellas de una tabla. Esto afecta a todas las filas de la tabla, a menos que especifiquemos.
HERRAMIENTAS OFIMÁTICAS M.S.C. IVETTE HERNÁNDEZ DÁVILA
Devuelve el valor lógico FALSO. Sintaxis: FALSO( ) Observación: También puede escribir la palabra FALSO directamente en la hoja de cálculo o en la fórmula.
SQL (Structured Query Language) Lenguaje orientado a bases de datos y sobre todo, al manejo de consultas; el objetivo principal de SQL es la realización.
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.
MSSQL SERVER CURSO BÁSICO 1. DESCRIPCIÓN DEL CURSO. Sesión 4: Sentencia Insert,Transacciones,Insert general, Insert Select * From, Sentencia Update,Update.
Marzo de 2010Dos Ideas - La visión de Sistemas desde el Desarrollo SQL en PL/SQL Conceptos básicos.
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.
Bases de Datos SQL.
SQL STRUCTURED QUERY LANGUAGE
Introducción a DAX, problema vs solución
Curso de Excel Intermedio Dr. Pedro Salcedo Lagos Mail: Web: Ref:
DLM Transact SQL Sesión I Introducción al SQL Server Uso de las herramientas de consultas del Transact SQL.
Copyright  Oracle Corporation, All rights reserved. 1 Escritura de sentencias SQL SELECT básicas.
INTEGRACION DE LAS TECNOLOGIAS DE LA INFORMACION Y COMUNICACION Implementación de base de datos (Lenguaje de manipulación de datos) Ing. Linda Masias Morales.
Bases de datos II Universidad del Cauca Ing. Wilson Ortega.
Structure Query Languaje SQL. Introducción a SQL El lenguaje de consulta estructurado (SQL) es un lenguaje de base de datos normalizado, utilizado por.
Copyright  Oracle Corporation, All rights reserved. 2 Restricción y ordenación de datos.
JOB_HISTORY EMPLOYEE_ID (PK,FK) START_DATE (PK) END_DATE JOB_ID (FK) DEPARTMENT_ID (FK) EMPLOYEES EMPLOYEE_ID (PK) FIRST_NAME LAST_NAME.
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 V Consultando múltiples tablas.
DML Transact SQL Sesión III Agrupando y resumiendo información.
Selección Condicionada de Filas Uso de la cláusula WHERE La cláusula WHERE restringe las columnas que retorna una consulta según la condición que se imponga.
Copyright  Oracle Corporation, All rights reserved. 6 Subconsultas.
Transcripción de la presentación:

DML Transact SQL Sesión VI Trabajando con subconsultas

Introducción El hecho de poder realizar consultas que permitan el acceso a la vez de varias tablas implica el crecimiento de la complejidad, un ocasiones el filtrado de información depende de el resultado de otra consulta, es por ello que en esta sección el usuario manejará las subconsultas.

Uso de alias para los nombres de las tablas. Una subconsulta es una sentencia SELECT que aparece dentro de otra sentencia SELECT que se puede llamar consulta principal. Se puede encontrar en la lista de selección, en la cláusula WHERE o en la cláusula HAVING de la consulta principal

Uso de alias para los nombres de las tablas. Una subconsulta tiene la misma sintaxis que una sentencia SELECT normal exceptuando que aparece encerrada entre paréntesis, no puede contener la cláusula ORDER BY si no se incluye la cláusula TOP n, ni puede ser la UNION de varias sentencias SELECT.

Uso de alias para los nombres de las tablas. Se puede disponer de hasta 32 niveles de anidamiento, aunque el límite varía dependiendo de la memoria disponible y de la complejidad del resto de las expresiones de la consulta.

Uso de alias para los nombres de las tablas. Cuando se ejecuta una consulta que contiene una subconsulta, la subconsulta se ejecuta por cada fila de la consulta principal. Se aconseja no utilizar campos calculados en las subconsultas, ralentizan la consulta. Las consultas que utilizan subconsultas suelen ser más fáciles de interpretar por el usuario.

Usando subconsultas.

A menudo, es necesario, dentro del cuerpo de una subconsulta, hacer referencia al valor de una columna en la fila actual de la consulta principal, ese nombre de columna se denomina referencia externa

Usando subconsultas. Ejemplo: Select *, (select min(price) from titles t where t.pub_id = p.pub_id ) as price from publishers p

Usando subconsultas. En este ejemplo la consulta principal es SELECT... FROM publishers p La subconsulta es (select min(price) from titles t where t.pub_id = p.pub_id ) as price. En esta subconsulta tenemos una referencia externa ( price ) es un campo de la tabla titles

Usando subconsultas. ¿Qué pasa cuando se ejecuta la consulta principal?  se toma el primer publisher y se calcula la subconsulta  se toma el segundo publisher y se calcula la subconsulta...  Al final se obtiene una lista con el los datos de Publisher y el precio más bajo

Usando subconsultas. Anidar subconsultas Select * from titles where pub_id in (Select pub_id from publishers where pub_id in ( Select pub_id from employee))

Usando subconsultas. Subconsulta en la lista de selección Cuando la subconsulta aparece en la lista de selección de la consulta principal, en este caso la subconsulta, no puede devolver varias filas ni varias columnas, de lo contrario se da un mensaje de error.

Usando subconsultas. Muchos SQLs no permiten que una subconsulta aparezca en la lista de selección de la consulta principal pero eso no es ningún problema ya que normalmente se puede obtener lo mismo utilizando como origen de datos las tablas

Usando subconsultas. El ejemplo anterior se puede obtener de la siguiente forma: Select distinct t.* from titles t, publishers p, employee e where t.pub_id = p.pub_id and e.pub_id = p.pub_id

Usando subconsultas. En la cláusula FROM En la cláusula FROM se puede encontrar una sentencia SELECT encerrada entre paréntesis pero más que subconsulta sería una consulta ya que no se ejecuta para cada fila de la tabla origen sino que se ejecuta una sola vez al principio

Usando subconsultas. Subconsulta en las cláusulas WHERE y HAVING Ejemplo: Select fname + ' '+ lname employee from employee where job_id = (Select job_id from jobs where job_desc='Publisher')

Usando subconsultas. En una cláusula WHERE / HAVING se tiene siempre una condición y la subconsulta actúa de operando dentro de esa condición.

Condiciones de Selección

En Transact-SQL se tienen tres condiciones:  el test de comparación con subconsulta  el test de pertenencia a un conjunto  el test de existencia

Condiciones de Selección El test de comparación con subconsulta. Es el equivalente al test de comparación simple. Se utiliza para comparar un valor de la fila que se está examinado con un único valor producido por la subconsulta. La subconsulta debe devolver una única columna, sino se produce un error.

Condiciones de Selección Por ejemplo, si supone que cada editor se encuentra en una sola ciudad, y desea encontrar el nombre de los autores que viven en la ciudad en la que se encuentra Algodata Infosystems, puede escribir una instrucción con una subconsulta presentada con el operador de comparación simple =.

Condiciones de Selección SELECT au_lname, au_fname FROM authors WHERE city = (SELECT city FROM publishers WHERE pub_name = 'Algodata Infosystems')

Condiciones de Selección Test de pertenencia a conjunto (IN). Examina si el valor de la expresión es uno de los valores incluidos en la lista de valores producida por la subconsulta. La subconsulta debe generar una única columna y las filas que sean. Si la subconsulta no produce ninguna fila, el test da falso.

Condiciones de Selección En esta consulta se buscan los nombres de los editores que han publicado libros de empresa. SELECT pub_name FROM publishers WHERE pub_id IN (SELECT pub_id FROM titles WHERE type = 'business' )

Condiciones de Selección Esta consulta busca los nombres de los editores que no han publicado libros de empresa. SELECT pub_name FROM publishers WHERE pub_id NOT IN (SELECT pub_id FROM titles WHERE type = 'business')

Condiciones de Selección La consulta es exactamente la misma que la de las subconsultas con IN, excepto en que NOT IN se sustituye por IN.

Condiciones de Selección El test de existencia EXISTS. Examina si la subconsulta produce alguna fila de resultados. Si la subconsulta contiene filas, el test adopta el valor verdadero, si la subconsulta no contiene ninguna fila, el test toma el valor falso, nunca puede tomar el valor nulo. Con este test la subconsulta puede tener varias columnas, no importa ya que el test se fija no en los valores devueltos sino en si hay o no fila en la tabla resultado de la subconsulta.

Condiciones de Selección Una subconsulta presentada con EXISTS tiene la siguiente sintaxis: WHERE [NOT] EXISTS (subquery)

Condiciones de Selección En esta consulta se busca el nombre de todos los editores que publican libros de empresa. SELECT pub_name FROM publishers WHERE EXISTS (SELECT * FROM titles WHERE pub_id = publishers.pub_id AND type = 'business')

Condiciones de Selección La lista de selección de una subconsulta presentada por EXISTS casi siempre consta de un asterisco (*). No hay razón para enumerar los nombres de las columnas porque simplemente se está comprobando la existencia de filas que cumplan las condiciones especificadas en la subconsulta.

Condiciones de Selección Estas dos consultas buscan títulos de libros publicados por algún editor que se encuentre en una ciudad que comience con la letra B.

Condiciones de Selección SELECT title FROM titles WHERE pub_id IN (SELECT pub_id FROM publishers WHERE city LIKE 'B%')

Condiciones de Selección SELECT title FROM titles WHERE EXISTS (SELECT * FROM publishers WHERE pub_id = titles.pub_id AND city LIKE 'B%')

Condiciones de Selección NOT EXISTS funciona igual que EXISTS, salvo por el hecho de que la cláusula WHERE en la que se utiliza se cumple si la subconsulta no devuelve ninguna fila.

Condiciones de Selección En esta consulta se buscan los títulos de los que no ha habido ninguna venta. USE pubs SELECT title FROM titles WHERE NOT EXISTS (SELECT title_id FROM sales WHERE title_id = titles.title_id)

Condiciones de Selección NOTA. Cuando se trabaja con tablas muy voluminosas el test EXISTS suele dar mejor rendimiento que el test IN.

Condiciones de Selección A lo largo de este curso se han tomado los elementos necesarios para la obtención de información, el uso de las subconsultas es otra posibilidad que el participante ha desarrollado con ellas puede filtrar. Ahora puede realizar el instrumento correspondiente a la sesión y agregarlo a la carpeta de evidencias.