EJEMPLOS PRÁCTICOS SQL



Documentos relacionados
T07 Opciones de integridad referencial

Gestión de Usuarios en MySQL

Access SQL: DDL y DML. Una empresa de Ingeniería precisa una base de datos para la gestión de sus proyectos.

Gestión de Usuarios en MySQL

GUÍA DE TRABAJO N 5 GRADO 11 Programación y Diseño de Articulación SENA Software Ing. Néstor Raúl Suarez Perpiñan Página 1 de 6

GUÍA DE TRABAJO N 7 GRADO 11. Ing. Néstor Raúl Suarez Perpiñan Página 1 de 6 GUIA N 7 COMANDOS MYSQL II. CREAR UNA TABLA

Escuela Técnica Superior de Ingeniería Informática Departamento de Lenguajes y Sistemas Informáticos. Triggers

Tipos de datos en SQL. SQL. DDL (Data Definition Language) CREATE DOMAIN CREATE TABLE CREATE TABLE. CREATE TABLE con restricciones de atributo

Unidad III. Bases de Datos

Integridad Referencial. Restricciones (constraints)

MATERIAL SOBRE SENTENCIAS SQL

MANUAL BÁSICO DEL LENGUAJE SQL

Triggers 27/11/2014. Escuela Técnica Superior de Ingeniería Informática Departamento de Lenguajes y Sistemas Informáticos. Triggers en Oracle

SQL - DDL y consultas de actualización. José Muñoz Jimeno Febrero 2015

Diseño de bases de datos

departamento NUMBER(3) FK (DEPARTAMENTOS.CODIGO) salario NUMBER(3) NOT NULL fecha_alta DATE NOT NULL jefe NUMBER(5) FK (EMPLEADOS.

Características del lenguaje SQL

TEMA 6: LENGUAJE DE DEFINICIÓN DE DATOS (LDD)

Está basado en el álgebra y en el cálculo relacional.

Tutorial MySql - 1 -

Introducción a phpmyadmin

EJERCICIO SQL CREACIÓN Y CONSULTAS EN UNA BASE DE DATOS BANCARIA. Pág. 1 de 18

Oracle Express y Toad for Oracle

EJERCICIO TRABAJADORES.

Ejemplo de gestión de datos con SQL

GESTORES GESTORES DE BASES DE DATOS

Triggers 24/12/2016. Escuela Técnica Superior de Ingeniería Informática Departamento de Lenguajes y Sistemas Informáticos. Triggers en Oracle

ORACLE 10g. Descripción A QUIEN VA DIRIGIDO?

Manejo de Tablas y Llaves Foráneas

Conceptos de Bases de Datos Relacionales Triggers

Tablas -SQL Curso Bases de Datos. Por Elizabeth León Guzmán, Ph.D. Profesora Ingeniería de Sistemas Grupo de Investigación MIDAS

Ejercicios SQL - Definición de Datos - Solución

LEA ATENTAMENTE LAS PREGUNTAS Y RESUELVA CADA EJERCICIO COMO SE INDIQUE (EN CASO CONTRARIO EL EJERCICIO NO PUNTUARÁ) CADA EJERCICIO VALE UN PUNTO

RESUMEN DEL LENGUAJE SQL

ÍNDICE. Introducción... Capítulo 1. Características, instalación, inicio y entorno de trabajo... 1

EXAMEN TEMAS 3, 4 y 5. CREACIÓN Y EXPLOTACIÓN DE UNA BASE DE DATOS

Oracle Database 11g: Conceptos Fundamentales de SQL y PL/SQL Nuevo

Departamento de Lenguajes y Sistemas Informáticos

APÉNDICE D. INTRODUCCIÓN A SQL

Manual de Sentencias Básicas en SQL

SQL Sintaxis. Ejemplo de Alumno, Curso, Profesor. Esquemas de Alumno, Curso, Profesor. Andrés Moreno S.

Bases de Datos 1. Teórico: Structured Query Language

Introducción a SQL (DDL)

Práctica 3: El lenguaje SQL (2ª parte). (6ª sesión).

Oracle Database: Conceptos Básicos de SQL y PL/SQL

SQL Sintaxis. OpenOffice. Ejemplo de Alumno, Curso, Profesor. Ejemplo de Alumno, Curso, Profesor. Andrés Moreno S. Nombre. Apellido. RutAlumno.

Capítulo 1. Instalación de MySQL y su software complementario... 1

Una tabla está en 5ta. Forma normal (5FN) o Forma Normal de Proyección-unión si está en 4FN y las únicas dependencias que existen son las

Bases de Datos Relacionales y SQL: Una Introducción

Bases de Datos: Structured Query Language (SQL)

Triggers en PL/SQL. Jonathan Medina Gómez Facultad de Ingeniería Universidad de Antioquia

Un proyecto de IBM llamado Sistem/R construye un prototipo simple llamado SQUARE que después se transformó en SQL.

INTRODUCCION A SQL CARACTERÍSTICAS DEL LENGUAJE ESTRUCTURADO DE CONSULTA SQL COMPONENTES DEL SQL

2.4. Unidades de aprendizaje. Modelo Académico de Calidad para la Competitividad PSGB-02 15/22

Base de datos Lenguaje SQL

SQL: Lenguaje de Interrogación Estructurado

1. DML. Insertar datos

Tema II: El modelo relacional de datos Objetivos:

Ejemplo completo: Empleados.

EJERCICIOS DE CONSULTAS SQL

RICHARD ALEXANDER BETANCUR SIERRA

VISUALIZACIÓN DE DATOS A PARTIR DE VARIAS TABLAS

Carlos A. Olarte Ligaduras de Integridad y Restricciones sobre la BD

Tema 5. Lenguaje de Definición de Datos

Conceptos Avanzados de Programación en Internet

Guía N 5 Tema: Consultas de manipulación de datos

Base de Datos Conjunto de información organizada especialmente para búsqueda y entrada de datos. Base de Datos: Ejemplo Usuarios

Guía de ejercicios de SQL Prof. Mauricio E. Fernández N. Semestre Agosto-Diciembre de 2012

1.4 Creación del esquema de una Base de Datos

SQL. Structured Query Language

Introducción a SQL (DML)

En este curso se presenta un análisis profundo de la base de datos MySQL para los sistemas operativos Windows y Linux.

El lenguaje SQL III: Creación de bases de datos y seguridad. Introducción

Bases de Datos Geográficos

El Modelo Relacional de Bases de Datos

El Lenguaje SQL TEMA V. Grupo de Bas ses de Datos Avanzadas Univ. Carlo os III de Madrid. V.1 SQL como Lenguaje de Definición de Datos

Jair Ospino Ardila -- Guía Sencilla

Proyecto 2 Base de Datos SQL Server y MySQL

Proyecto 1 BASE DE DATOS SQL Server y MySQL

Restricciones de Integridad. Claves Primarias. Protección. Índice. Clave de una Relación. Declaración n de Claves

Tema 1. Introducción a MySQL. José Muñoz Jimeno Octubre 2015

Curso 1º SMR Módulo: AO Actividades 3 (2) Bases de datos:creamos Foreing Keys en BASE

Oracle Fundamentos. Programa de Estudio.

- 1 - Mg. Abril Saire Peralta

Oracle Database y Oracle SQL Developer

SQL. Orígenes y Evolución

ACTUALIZACIÓN DE DATOS SQL SERVER Manual de Referencia para usuarios. Salomón Ccance CCANCE WEBSITE

GBD Diseño físico de DDBB

DISPARADORES EN SQL DISPARADORES EN SQL:1999 SINTAXIS GENERAL DE UN DISPARADOR EN SQL:1999 SINTAXIS GENERAL DE UN DISPARADOR EN SQL:1999

Transcripción:

EJEMPLOS PRÁCTICOS SQL

EJEMPLOS PRÁCTICOS SQL INTEGRIDAD REFERENCIAL

DROP SCHEMA IF EXISTS Tablas1; CREATE SCHEMA Tablas1; USE Tablas1; create table Cliente( Dni VARCHAR(10), Nombre VARCHAR(10), Apellido VARCHAR(10), PRIMARY KEY (Dni) )ENGINE=InnoDB; create table Pedidos( npedido INTEGER, fecha DATE, Cantidad DOUBLE, cliente_dni VARCHAR(10), PRIMARY KEY (npedido), FOREIGN KEY (cliente_dni) REFERENCES Cliente(Dni) )ENGINE=InnoDB; INSERT INTO Cliente VALUES ('7211545v','Carlos','Martinez Lopez'); INSERT INTO Pedidos VALUES ('122','2010/01/05',7, '7211545v');

TABLA: Cliente TABLA: Pedidos

Esto es un ejemplo de intento de borrado de una tupla que tiene un campo que aparece como clave foránea en otra tabla. Por omision se aplica la condición de restrict y no se puede borrar hasta que no borre la tupla de la tabla hija.

Esto es un ejemplo de intento de actualización de una tupla que tiene un campo que aparece como clave foránea en otra tabla. Por omision se aplica la condición de restrict y no se puede actualizar.

DROP SCHEMA IF EXISTS Tablas2; CREATE SCHEMA Tablas2; USE Tablas2; create table Cliente( Dni VARCHAR(10), Nombre VARCHAR(10), Apellido VARCHAR(10), PRIMARY KEY (Dni) )ENGINE=InnoDB; create table Pedidos( npedido INTEGER, fecha DATE, Cantidad DOUBLE, cliente_dni VARCHAR(10), PRIMARY KEY (npedido), FOREIGN KEY (cliente_dni) REFERENCES Cliente(Dni) ON DELETE CASCADE ON UPDATE CASCADE )ENGINE=InnoDB; INSERT INTO Cliente VALUES ('7211545v','Carlos','Martinez Lopez'); INSERT INTO Pedidos VALUES ('122','2010/01/05',7,'7211545v');

TABLA: Cliente TABLA: Pedidos

Para probar la restricción ON UPDATE CASCADE actualizamos el valor p de un DNI. El resultado debe de ser que se actualiza la tabla padre y la hija

Se observa que se han actualizado las tablas padre e hija

Si ahora borramos una tupla de la tabla padre se borra la tupla correspondiente de la tabla hija.

DROP SCHEMA IF EXISTS Tablas3; CREATE SCHEMA Tablas3; USE Tablas3; create table Cliente( Dni VARCHAR(10), Nombre VARCHAR(10), Apellido VARCHAR(10), PRIMARY KEY (Dni) )ENGINE=InnoDB; create table Pedidos( npedido INTEGER, fecha DATE, Cantidad DOUBLE, cliente_dni VARCHAR(10), PRIMARY KEY (npedido), FOREIGN KEY (cliente_dni) REFERENCES Cliente(Dni) ON DELETE RESTRICT ON UPDATE CASCADE )ENGINE=InnoDB; I INSERT INTO Cliente VALUES ('7211545v','Carlos','Martinez Lopez'); INSERT INTO Pedidos VALUES ('122','2010/01/05',7,'7211545v');

La restricción más adecuada en la mayoría de los casos es evitar realizar borrados en cascada y sin embargo si actualizar en cascada

Observamos que la actualización en cascada ha funcionado

A diferencia del ejemplo de la Tablas2 ahora no se puede borrar una tupla de la tabla padre por la restricción ON DELETE RESTRICT.

Nótese una cuestión que a veces es causa de confusión. Aunque es en la tabla hija donde se escribe la restricción de la clave foránea, es decir, que un atributo depende de la clave de otra tabla. Se puede borrar sin ningún problema una tupla de una tabla que contiene una clave foránea sin afectar a la tupla correspondiente de la tabla padre En la figura se ve el ejemplo de borrar una fila en la tabla de pedidos.

Como se ve en la figura la tabla de pedidos está vacía y la tabla de clientes está intacta.

DROP SCHEMA IF EXISTS Tablas4; CREATE SCHEMA Tablas4; USE Tablas4; create table Cliente( Dni VARCHAR(10), Nombre VARCHAR(10), Apellido VARCHAR(10), PRIMARY KEY (Dni) )ENGINE=InnoDB; create table Pedidos( npedido INTEGER, fecha DATE, Cantidad DOUBLE, cliente_dni VARCHAR(10), PRIMARY KEY (npedido), FOREIGN KEY (cliente_dni) REFERENCES Cliente(Dni) ON DELETE RESTRICT ON UPDATE CASCADE )ENGINE=InnoDB; INSERT INTO Cliente VALUES ('7211545v','Carlos','Martinez Lopez'); INSERT INTO Pedidos VALUES ('122','2010/01/05',7,'7211545v');'2010/01/0 ' ' 211 ')

A í t l j l d i t t i fil d Aquí mostramos el ejemplo de intentar incorporar una fila nueva de pedidos de un cliente que no existe en la tabla de clientes. Las reglas de integridad referencial nos lo impiden

Insertamos ahora dos nuevos clientes..

El resultado lo observamos en la figura

Ahora si que podemos incorporar una tupla nueva de pedido con el cliente incorporado en la tabla de clientes

EJEMPLOS PRÁCTICOS SQL MODIFICACIÓN TABLAS

DROP SCHEMA IF EXISTS Tablas5; CREATE SCHEMA Tablas5; USE Tablas5; create table Cliente( Dni VARCHAR(10), Nombre VARCHAR(10), Apellido VARCHAR(10), PRIMARY KEY (Dni) )ENGINE=InnoDB; create table Pedidos( npedido INTEGER, fecha DATE, Cantidad DOUBLE, cliente_dni VARCHAR(10), PRIMARY KEY (npedido), FOREIGN KEY (cliente_dni) REFERENCES Cliente(Dni) ON DELETE RESTRICT ON UPDATE CASCADE )ENGINE=InnoDB; INSERT INTO Cliente VALUES ('7211545v','Carlos','Martinez Lopez'); INSERT INTO Pedidos VALUES ('122' 122, '2010/01/05',7, '7211545v');

Agregamos una columna a la tabla con ALTER ADD

Cambiamos el nombre de una columna a la tabla con ALTER CHANGE

Modificamos el tipo de datos de una columna a la tabla con ALTER MODIFY

Eliminamos una columna a la tabla con ALTER DROP

Estamos tratando de borrar una tabla padre. Las restricciones de la BD no nos permite al tener asociada la tabla una clave ajena

La tabla hija pedidos se puede borrar sin problemas. Es donde se haya la clave ajena

EJEMPLOS PRÁCTICOS SQL INSERCIÓN DATOS EN TABLAS

DROP SCHEMA IF EXISTS Tablas6; CREATE SCHEMA Tablas6; USE Tablas6; create table Cliente( Dni VARCHAR(10), Nombre VARCHAR(10), Apellido VARCHAR(40), PRIMARY KEY (Dni) )ENGINE=InnoDB; create table Pedidos( npedido INTEGER, fecha DATE, Cantidad DOUBLE, cliente_dni VARCHAR(10), PRIMARY KEY (npedido), FOREIGN KEY (cliente_dni) REFERENCES Cliente(Dni) ON DELETE RESTRICT ON UPDATE CASCADE )ENGINE=InnoDB; create table Personal( Dni VARCHAR(10), Nombre VARCHAR(10), Apellido VARCHAR(40), PRIMARY KEY (Dni) )ENGINE=InnoDB; INSERT INTO Cliente VALUES ('7211545v','Carlos','Martinez Lopez'); INSERT INTO Pedidos VALUES ('122','2010/01/05',7,'7211545v'); INSERT INTO Personal VALUES ('7211541v','Juan','Garzón Rodriguez'); INSERT INTO Personal VALUES ('7211542v','Antonio','Marina Esquivel'); INSERT INTO Personal VALUES ('7211543v','Cesar','Bernal SanJose'); INSERT INTO Personal VALUES ('7211544v','Rodrigo','Alonso Vera'); INSERT INTO Personal VALUES ('7211546v','Maria','Lopez Gomez');

TABLA: Cliente TABLA: Pedidos TABLA: Personal

Con este comando que es un mezcla de INSERT INTO y SELECT conseguimos meter en la tabla cliente 5 tuplas

EJEMPLOS PRÁCTICOS SQL ACTUALIZACIÓN DATOS EN TABLAS

DROP SCHEMA IF EXISTS Tablas7; CREATE SCHEMA Tablas7; USE Tablas7; create table Cliente( Dni VARCHAR(10), Nombre VARCHAR(10), Apellido VARCHAR(40), PRIMARY KEY (Dni) )ENGINE=InnoDB; create table Pedidos( npedido INTEGER, fecha DATE, Cantidad DOUBLE, cliente_dni VARCHAR(10), PRIMARY KEY (npedido), FOREIGN KEY (cliente_dni) REFERENCES Cliente(Dni) ON DELETE RESTRICT ON UPDATE CASCADE )ENGINE=InnoDB; create table Personal( Dni VARCHAR(10), Nombre VARCHAR(10), Apellido VARCHAR(40), PRIMARY KEY (Dni) )ENGINE=InnoDB; INSERT INTO Cliente VALUES ('7211545v','Carlos','Martinez Lopez'); INSERT INTO Pedidos VALUES ('122','2010/01/05',7,'7211545v'); INSERT INTO Cliente VALUES ('7211541v','Juan','Garzón Rodriguez'); INSERT INTO Cliente VALUES ('7211542v','Antonio','Marina Esquivel'); INSERT INTO Cliente VALUES ('7211543v','Cesar','Bernal SanJose'); INSERT INTO Cliente VALUES ('7211544v','Maria','Alonso Vera'); INSERT INTO Cliente VALUES ('7211546v','Maria','Lopez Gomez');

Vamos a probar el comando actualizar de SQL. Para ello actualizamos todas las tuplas en la que aparece Maria

En este ejemplo vemos como es imposible actualizar los dos registros en los que aparece en nombre el valor Carmen a un mismo DNI ya que DNI tiene la restricción de clave primaria

EJEMPLOS PRÁCTICOS SQL CONSULTAS BÁSICAS CON SELECT

DROP SCHEMA IF EXISTS SELECT1; CREATE SCHEMA SELECT1; USE SELECT1; create table Información_Ventas( Tienda VARCHAR(10), Ventas INTEGER, Fecha DATE )ENGINE=InnoDB; create table Zona_Ventas( Región VARCHAR(10), Tienda VARCHAR(10) )ENGINE=InnoDB; INSERT INTO Información_ Ventas VALUES ('Madrid',1500,'2010/01/05');, INSERT INTO Información_Ventas VALUES ('Sevilla',250,'2010/01/08'); INSERT INTO Información_Ventas VALUES ('Madrid',300,'2010/01/07'); INSERT INTO Información_Ventas VALUES ('Barcelona',700,'2010/01/08'); INSERT INTO Zona_Ventas VALUES ('Centro-Sur','Madrid'); INSERT INTO Zona_Ventas VALUES ('Centro-Sur','Sevilla'); INSERT INTO Zona_ Ventas VALUES ('Noreste','Zaragoza'); INSERT INTO Zona_Ventas VALUES ('Noreste','Barcelona');

TABLA: Informacion_ventas TABLA:Zona_Ventas

Tabla: Información_Ventas Selección Básica: Seleccionamos el nombre de todas las tiendas

Tabla: Información_Ventas Selección Básica: De esta forma eliminamos los duplicados que genera la consulta SELECT

Tabla: Información_Ventas Selección ecc Condicional o Simple: Tiendas cuyas ventas son mayores de 1000

DROP SCHEMA IF EXISTS SELECT2; CREATE SCHEMA SELECT2; USE SELECT2; create table Información_Ventas( Tienda VARCHAR(10), Ventas INTEGER, Fecha DATE )ENGINE=InnoDB; create table Zona_Ventas( Región VARCHAR(10), Tienda VARCHAR(10) )ENGINE=InnoDB; INSERT INTO Información_Ventas VALUES ('Madrid',1500,'2010/01/05'); INSERT INTO Información_Ventas VALUES ('Sevilla',250, '2010/01/08'); INSERT INTO Información_Ventas VALUES ('Cuenca',300,'2010/01/07'); INSERT INTO Información_Ventas VALUES ('Barcelona',700,'2010/01/08'); INSERT INTO Z V t VALUES ('C t S ' 'M d id') INSERT INTO Zona_Ventas VALUES ('Centro-Sur','Madrid'); INSERT INTO Zona_Ventas VALUES ('Centro-Sur','Sevilla'); INSERT INTO Zona_Ventas VALUES ('Noreste','Zaragoza'); INSERT INTO Zona_Ventas VALUES ('Noreste','Barcelona');

Tabla: Información_Ventas Selección Condicional Simple Compuesta: Tiendas cuyas ventas son mayores de 1000 ó las ventas están comprendidas entre 275 y 500

Tabla: Información_Ventas Selección Tuplas en Función de Valores (IN): Información completa de lastiendas de Madrid y Sevilla

Tabla: Información_Ventas Selección Búsqueda de Patrones (LIKE): Seleccion de tuplas que contengan un patrón

DROP SCHEMA IF EXISTS S SELECT3; CREATE SCHEMA SELECT3; USE SELECT3; create table Información_Ventas( Tienda VARCHAR(10), Ventas INTEGER, Fecha DATE )ENGINE=InnoDB; create table Zona_Ventas( Región VARCHAR(10), Tienda VARCHAR(10) )ENGINE=InnoDB; INSERT INTO Información_Ventas VALUES ('Madrid',1500,'2010/01/05'); INSERT INTO Información_Ventas VALUES ('Sevilla',250,'2010/01/08'); INSERT INTO Información_Ventas VALUES ('Cuenca',300,'2010/01/07'); INSERT INTO Información_Ventas VALUES ('Barcelona',1500,'2010/01/08'); INSERT INTO Zona Ventas VALUES ('Centro-Sur' 'Madrid'); INSERT INTO Zona_Ventas VALUES ( Centro-Sur, Madrid ); INSERT INTO Zona_Ventas VALUES ('Centro-Sur','Sevilla'); INSERT INTO Zona_Ventas VALUES ('Noreste','Zaragoza'); INSERT INTO Zona_Ventas VALUES ('Noreste','Barcelona');

Tabla: Información_Ventas Selección Ordenación de Resultados (ORDER BY): Selección de Tiendas ordenadas por el volumen de ventas en Orden descendente

Tabla: Información_Ventas Selección Ordenación de Resultados (ORDER BY): En este ejemplo se clasifican las tuplas en primer lugar en orden descendente del campo Ventas y luego si hay tuplas del mismo valor por orden descentente de fecha

DROP SCHEMA IF EXISTS SELECT4; CREATE SCHEMA SELECT4; USE SELECT4; create table Información_ Ventas( Tienda VARCHAR(10), Ventas INTEGER, Fecha DATE )ENGINE=InnoDB; create table Zona_Ventas( Región VARCHAR(10), Tienda VARCHAR(10) )ENGINE=InnoDB; INSERT INTO Información_Ventas VALUES ('Madrid',1500,'2010/01/05'); INSERT INTO Información_Ventas VALUES ('Sevilla',250,'2010/01/08'); INSERT INTO Información_ Ventas VALUES ('Madrid',300,'2010/01/07');, INSERT INTO Información_Ventas VALUES ('Barcelona',700,'2010/01/08'); INSERT INTO Zona_Ventas VALUES ('Centro-Sur','Madrid'); INSERT INTO Zona_Ventas VALUES ('Centro-Sur','Sevilla'); INSERT INTO Zona_Ventas VALUES ('Noreste','Zaragoza'); INSERT INTO Zona_Ventas VALUES ('Noreste','Barcelona');

Tabla: Información_Ventas Selección Funciones Aritméticas: Seleccionar todas las tuplas de la tabla Información_Ventas (ya que no existe clausula l when), obteniendo una relacion(una tabla). Luego proyectamos por el campo Ventas y hacemos una operación.

Tabla: Información_Ventas Selección Funciones Aritméticas: Número de Tuplas de una tabla

Tabla: Información_Ventas Selección Funciones Aritméticas con Grupos: Ventas agrupadas por tiendas

Tabla: Información_Ventas Selección Funciones Aritméticas con Grupos: Ventas agrupadas por tiendas de las tiendas cuyas ventas Son superiores a 1500

Tabla: Información_Ventas Selección con Grupos: Esta consulta no tendría mucho sentido ya en un grupo la fecha de cada tupla es diferente

La condición que aplica HAVING tiene que ser un operador que abarque a todos los miembros del grupo. Si se refiere a un campo que puede ser diferente en los miembros del grupo no funciona

Tiendas y suma de ventas agrupadas por iguales valores de tienda y ventas

Selección con Grupos: Suma de las ventas totales de las tiendas agrupadas por el nombre de Madrid

Selección ecc con Grupos: Máximo de ventas de las tiendas agrupadas por el nombre

EJEMPLOS PRÁCTICOS SQL JOIN NATURAL CON SELECT

DROP SCHEMA IF EXISTS JOIN1; CREATE SCHEMA JOIN1; USE JOIN1; create table Información_Ventas( Tienda VARCHAR(10), Ventas INTEGER, Fecha DATE )ENGINE=InnoDB; create table Zona_Ventas( Región VARCHAR(10), Tienda VARCHAR(10) )ENGINE=InnoDB; INSERT INTO Información_Ventas VALUES ('Madrid',1500,'2010/01/05'); '2010/01/0 ') INSERT INTO Información_Ventas VALUES ('Sevilla',250,'2010/01/08'); INSERT INTO Información_Ventas VALUES ('Madrid',300,'2010/01/07'); INSERT INTO Información_Ventas VALUES ('Barcelona',700,'2010/01/08'); INSERT INTO Zona_Ventas VALUES ('Centro-Sur','Madrid'); INSERT INTO Zona_Ventas VALUES ('Centro-Sur','Sevilla'); INSERT INTO Zona_Ventas VALUES ('Noreste','Zaragoza'); INSERT INTO Zona_Ventas VALUES ('Noreste','Barcelona');');

TABLA: Informacion_ventas TABLA:Zona_Ventas

Join Natural: Ventas por Regiones

EJEMPLOS PRÁCTICOS SQL CONSULTAS ANIDADAS

TABLA:Zona_Ventas TABLA: Informacion_ventas Consulta Anidada: Ventas de todas las tiendas de la región Noreste

Consulta join equivalente a anidada: Ventas de todas las tiendas de la región Noreste

DROP SCHEMA IF EXISTS CASE1; CREATE SCHEMA CASE1; USE CASE1; create table Información_Ventas( Tienda VARCHAR(10), Ventas INTEGER, Fecha DATE )ENGINE=InnoDB; create table Zona_Ventas( Región VARCHAR(10), Tienda VARCHAR(10) )ENGINE=InnoDB; INSERT INTO Información_Ventas VALUES ('Madrid',1500,'2010/01/05'); INSERT INTO Información_Ventas VALUES ('Sevilla',250,'2010/01/08'); INSERT INTO Información_Ventas VALUES ('Cuenca',300,'2010/01/07'); INSERT INTO Información_Ventas VALUES ('Barcelona',1500,'2010/01/08'); INSERT INTO Zona_Ventas VALUES ('Centro-Sur','Madrid'); INSERT INTO Zona_Ventas VALUES ('Centro-Sur','Sevilla'); INSERT INTO Zona_Ventas VALUES ('Noreste','Zaragoza'); INSERT INTO Zona_Ventas VALUES ('Noreste','Barcelona');' 'B ')

Utilización comando case: Modificación de la columna Ventas en función del valor

DROP SCHEMA IF EXISTS UNION1; CREATE SCHEMA UNION1; USE UNION1; create table Ventas_tienda( Tienda VARCHAR(10), Ventas INTEGER, Fecha DATE )ENGINE=InnoDB; create table Ventas_Internet( Fecha DATE, Ventas INTEGER )ENGINE=InnoDB; INSERT INTO Ventas_tienda VALUES ('Madrid',1500,'2010/01/05'); INSERT INTO Ventas_tienda VALUES ('Sevilla',250,'2010/01/08'); INSERT INTO Ventas_tienda VALUES ('Madrid',300,'2010/01/07'); INSERT INTO Ventas_tienda VALUES ('Barcelona',1500,'2010/01/08'); ' '2010/01/08') INSERT INTO Ventas_Internet VALUES ('2010/01/07',250); INSERT INTO Ventas_Internet t t VALUES ('2010/01/10',535); INSERT INTO Ventas_Internet VALUES ('2010/01/11',320); INSERT INTO Ventas_Internet VALUES ('2010/01/12',750);