SlideShare una empresa de Scribd logo
EJEMPLOS PRÁCTICOS SQL
EJEMPLOS PRÁCTICOS SQL

   INTEGRIDAD REFERENCIAL
   INTEGRIDAD REFERENCIAL
DROP SCHEMA IF EXISTS Tablas1;
CREATE SCHEMA Tablas1;
USE Tablas1;


create table Cliente(
             Dni VARCHAR(10),
             Nombre VARCHAR(10),
             Apellido VARCHAR(10),
               p              ( ),

            PRIMARY KEY (Dni)
            )ENGINE=InnoDB;

create table Pedidos(
             npedido INTEGER,
             fecha DATE,
             Cantidad DOUBLE,
             cliente_Dni VARCHAR(10),
             PRIMARY KEY (npedido),
                           (  did )
             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');
                           ( 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),
             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),
             cliente Dni VARCHAR(10)
             PRIMARY KEY (npedido),
             FOREIGN KEY (cliente_Dni) REFERENCES Cliente(Dni) ON DELETE RESTRICT ON UPDATE CASCADE


            )ENGINE=InnoDB;
            )ENGINE I   DB


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
                                                                       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.
                          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),
                             ( p   ),
              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 P did VALUES ('122' '2010/01/0 ' ' 211 4 ')
            Pedidos      ('122','2010/01/05',7,'7211545v');
Aquí
A í mostramos el ejemplo de intentar incorporar una fila nueva de
          t        l j    l d i t t i                   fil      d
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
   MODIFICACIÓN TABLAS
DROP SCHEMA IF EXISTS Tablas5;
                      T bl 5
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,
                      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');
                           ( 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
  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,
               ec a       ,
              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 );
                              ( 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
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,
              ec a       ,
             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');
                           ( 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 l que aparece en nombre el valor Carmen a un mismo DNI
   los                      b    l l C              i
ya que DNI tiene la restricción de clave primaria
EJEMPLOS PRÁCTICOS SQL

CONSULTAS BÁSICAS CON SELECT
CONSULTAS BÁSICAS CON SELECT
DROP SCHEMA IF EXISTS SELECT1;
CREATE SCHEMA SELECT1;
USE SELECT1;

create table Información Ventas(
             Información_Ventas(
           Tienda VARCHAR(10),
           Ventas INTEGER,
           Fecha DATE
           )
           )ENGINE=InnoDB; ;


create table Zona_Ventas(
           Región VARCHAR(10),
              g           ( ),
           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');
                               (         ,     g     );
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




       Se ecc ó Condicional Simple:
       Selección Co d c o a S p e

Tiendas cuyas ventas son mayores de 1000
DROP SCHEMA IF EXISTS SELECT2;
CREATE SCHEMA SELECT2;
USE SELECT2;

create table Información_Ventas(
             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');
            Información Ventas        ( 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 Zona_Ventas VALUES ('Centro-Sur','Madrid');
            Z    V t           ('C t S ' 'M d id')
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 SELECT3;
  O SC            S SS    C
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
             Ti d 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');
            Zona Ventas        ( 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');
            Zona Ventas        ( 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:
                S l   ió F    i     A it éti

Seleccionar todas las tuplas de la tabla “Información_Ventas’
(ya
( que no existe clausula when) , obteniendo una relacion(una tabla).
             i t l      l   h ) bt i d               l i (    t bl )
 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:
S l   ió F    i     A it éti        G

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
    p q p                                          g p
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
Se ecc ó con Grupos:
                Selección co G upos

Máximo de ventas de las tiendas agrupadas por el nombre
EJEMPLOS PRÁCTICOS SQL

  JOIN NATURAL CON SELECT
  JOIN NATURAL CON SELECT
DROP SCHEMA IF EXISTS JOIN1;
CREATE SCHEMA JOIN1;
USE JOIN1;
create table Información_Ventas(
              Tienda VARCHAR(10),
              Ventas INTEGER,
              V t 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');
            I f     ió V       VA UES ('M d id' 1 00 '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:Zona_Ventas
TABLA: Informacion_ventas
Join Natural:

Ventas por Regiones
EJEMPLOS PRÁCTICOS SQL

   CONSULTAS ANIDADAS
   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 ('N
            Z    V             ('Noreste','Barcelona');
                                        ' 'B    l     ')
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 ('B
            V       i d VA UES ('Barcelona',1500,'2010/01/08');
                                         l    ' 1 00 '2010/01/08')


INSERT INTO Ventas_Internet VALUES ('2010/01/07',250);
INSERT INTO Ventas_Internet VALUES ('2010/01/10',535);
            V t    I t    t        ('2010/01/10' 535)
INSERT INTO Ventas_Internet VALUES ('2010/01/11',320);
INSERT INTO Ventas_Internet VALUES ('2010/01/12',750);
Ejemplos sql
Ejemplos sql

Más contenido relacionado

Destacado

Search Engine Marketing
Search Engine MarketingSearch Engine Marketing
Search Engine Marketing
Atomo Interactive
 
Google app engine udl
Google app engine   udlGoogle app engine   udl
Google app engine udl
Jonathan Franchesco Torres Baca
 
Marketing De Buscadores
Marketing De BuscadoresMarketing De Buscadores
Marketing De Buscadores
Nestor Dominguez
 
Conference Salon e-marketing 2009 Effiliation Emile Milot : Feo Feed Engine O...
Conference Salon e-marketing 2009 Effiliation Emile Milot : Feo Feed Engine O...Conference Salon e-marketing 2009 Effiliation Emile Milot : Feo Feed Engine O...
Conference Salon e-marketing 2009 Effiliation Emile Milot : Feo Feed Engine O...
Emile MILOT
 
Marketing de Busqueda: SEM e SEO, by Martha Gabriel
Marketing de Busqueda: SEM e SEO, by Martha GabrielMarketing de Busqueda: SEM e SEO, by Martha Gabriel
Marketing de Busqueda: SEM e SEO, by Martha Gabriel
Martha Gabriel
 
Cifras de incidentes de compañías aéreas durante el año 2012
Cifras de incidentes de compañías aéreas durante el año 2012Cifras de incidentes de compañías aéreas durante el año 2012
Cifras de incidentes de compañías aéreas durante el año 2012
Iñaki Ruiz Vazquez
 
Codathlon Google App Engine
Codathlon Google App EngineCodathlon Google App Engine
Codathlon Google App Engine
VincentBostoen
 
Tk03 Google App Engine Fr
Tk03 Google App Engine FrTk03 Google App Engine Fr
Tk03 Google App Engine Fr
Valtech
 
DNUG2015 Frühjahrskonferenz: Brücken bauen, Grenzen überwinden: Domino im Dia...
DNUG2015 Frühjahrskonferenz: Brücken bauen, Grenzen überwinden: Domino im Dia...DNUG2015 Frühjahrskonferenz: Brücken bauen, Grenzen überwinden: Domino im Dia...
DNUG2015 Frühjahrskonferenz: Brücken bauen, Grenzen überwinden: Domino im Dia...
JRibbeck
 
Google App Engine - INTRO
Google App Engine - INTROGoogle App Engine - INTRO
Google App Engine - INTRO
Beyram Ben Elghali
 
CAP 4: SEO - Optimizacion de Contenido
CAP 4: SEO - Optimizacion de ContenidoCAP 4: SEO - Optimizacion de Contenido
CAP 4: SEO - Optimizacion de Contenido
Gary Briceño
 
App engine
App engineApp engine
App engine
ThirdWay
 
CAP 3: SEO - Keywords Research
CAP 3: SEO - Keywords ResearchCAP 3: SEO - Keywords Research
CAP 3: SEO - Keywords Research
Gary Briceño
 
El SEOy la geolocalización
El SEOy la geolocalizaciónEl SEOy la geolocalización
Desarrollando para Nmap Scripting Engine (NSE) [GuadalajaraCON 2013]
Desarrollando para Nmap Scripting Engine (NSE) [GuadalajaraCON 2013]Desarrollando para Nmap Scripting Engine (NSE) [GuadalajaraCON 2013]
Desarrollando para Nmap Scripting Engine (NSE) [GuadalajaraCON 2013]
Websec México, S.C.
 
Presentacion introduccion ibm file net p8 v10
Presentacion introduccion ibm file net p8 v10Presentacion introduccion ibm file net p8 v10
Presentacion introduccion ibm file net p8 v10
Javier Laguens Garcia
 
Nuxeo WebEngine : Etude de cas
Nuxeo WebEngine : Etude de casNuxeo WebEngine : Etude de cas
Nuxeo WebEngine : Etude de cas
Damien Metzler
 
An introduction to Google's App Engine
An introduction to Google's App EngineAn introduction to Google's App Engine
An introduction to Google's App Engine
Stefan Sperber
 
b2performance berth
b2performance berthb2performance berth
b2performance berth
ITB Berlin
 
Suchmaschinenmarketing
SuchmaschinenmarketingSuchmaschinenmarketing
Suchmaschinenmarketingidealogues
 

Destacado (20)

Search Engine Marketing
Search Engine MarketingSearch Engine Marketing
Search Engine Marketing
 
Google app engine udl
Google app engine   udlGoogle app engine   udl
Google app engine udl
 
Marketing De Buscadores
Marketing De BuscadoresMarketing De Buscadores
Marketing De Buscadores
 
Conference Salon e-marketing 2009 Effiliation Emile Milot : Feo Feed Engine O...
Conference Salon e-marketing 2009 Effiliation Emile Milot : Feo Feed Engine O...Conference Salon e-marketing 2009 Effiliation Emile Milot : Feo Feed Engine O...
Conference Salon e-marketing 2009 Effiliation Emile Milot : Feo Feed Engine O...
 
Marketing de Busqueda: SEM e SEO, by Martha Gabriel
Marketing de Busqueda: SEM e SEO, by Martha GabrielMarketing de Busqueda: SEM e SEO, by Martha Gabriel
Marketing de Busqueda: SEM e SEO, by Martha Gabriel
 
Cifras de incidentes de compañías aéreas durante el año 2012
Cifras de incidentes de compañías aéreas durante el año 2012Cifras de incidentes de compañías aéreas durante el año 2012
Cifras de incidentes de compañías aéreas durante el año 2012
 
Codathlon Google App Engine
Codathlon Google App EngineCodathlon Google App Engine
Codathlon Google App Engine
 
Tk03 Google App Engine Fr
Tk03 Google App Engine FrTk03 Google App Engine Fr
Tk03 Google App Engine Fr
 
DNUG2015 Frühjahrskonferenz: Brücken bauen, Grenzen überwinden: Domino im Dia...
DNUG2015 Frühjahrskonferenz: Brücken bauen, Grenzen überwinden: Domino im Dia...DNUG2015 Frühjahrskonferenz: Brücken bauen, Grenzen überwinden: Domino im Dia...
DNUG2015 Frühjahrskonferenz: Brücken bauen, Grenzen überwinden: Domino im Dia...
 
Google App Engine - INTRO
Google App Engine - INTROGoogle App Engine - INTRO
Google App Engine - INTRO
 
CAP 4: SEO - Optimizacion de Contenido
CAP 4: SEO - Optimizacion de ContenidoCAP 4: SEO - Optimizacion de Contenido
CAP 4: SEO - Optimizacion de Contenido
 
App engine
App engineApp engine
App engine
 
CAP 3: SEO - Keywords Research
CAP 3: SEO - Keywords ResearchCAP 3: SEO - Keywords Research
CAP 3: SEO - Keywords Research
 
El SEOy la geolocalización
El SEOy la geolocalizaciónEl SEOy la geolocalización
El SEOy la geolocalización
 
Desarrollando para Nmap Scripting Engine (NSE) [GuadalajaraCON 2013]
Desarrollando para Nmap Scripting Engine (NSE) [GuadalajaraCON 2013]Desarrollando para Nmap Scripting Engine (NSE) [GuadalajaraCON 2013]
Desarrollando para Nmap Scripting Engine (NSE) [GuadalajaraCON 2013]
 
Presentacion introduccion ibm file net p8 v10
Presentacion introduccion ibm file net p8 v10Presentacion introduccion ibm file net p8 v10
Presentacion introduccion ibm file net p8 v10
 
Nuxeo WebEngine : Etude de cas
Nuxeo WebEngine : Etude de casNuxeo WebEngine : Etude de cas
Nuxeo WebEngine : Etude de cas
 
An introduction to Google's App Engine
An introduction to Google's App EngineAn introduction to Google's App Engine
An introduction to Google's App Engine
 
b2performance berth
b2performance berthb2performance berth
b2performance berth
 
Suchmaschinenmarketing
SuchmaschinenmarketingSuchmaschinenmarketing
Suchmaschinenmarketing
 

Similar a Ejemplos sql

SQL-DDL
SQL-DDLSQL-DDL
SQL-DDL
bdatos
 
Manual basico de sql mysql conceptos
Manual basico de sql mysql conceptosManual basico de sql mysql conceptos
Manual basico de sql mysql conceptos
William Escobar
 
Consultas SQL
Consultas SQLConsultas SQL
Consultas SQL
Alan López
 
Commit&rollback
Commit&rollbackCommit&rollback
Commit&rollback
ArchCHUZ
 
Consultas
ConsultasConsultas
Proyecto de Base de Datos (Parte II)
Proyecto de Base de Datos (Parte II)Proyecto de Base de Datos (Parte II)
Proyecto de Base de Datos (Parte II)
Anna Vega
 
1 lab-2 -tablas-y-restricciones
1 lab-2 -tablas-y-restricciones1 lab-2 -tablas-y-restricciones
1 lab-2 -tablas-y-restricciones
Jhonatan Paul Urbina Tolenino
 
Sql2
Sql2Sql2
Base datos mysql y visual basic
Base datos mysql y visual basicBase datos mysql y visual basic
Base datos mysql y visual basic
Rafael Tobar Jame
 
Tm13 introduccion al_sql
Tm13 introduccion al_sqlTm13 introduccion al_sql
Tm13 introduccion al_sql
Julio Pari
 
Diapositivas del Proyecto de Aula (SILIPRO)
Diapositivas del Proyecto de Aula (SILIPRO)Diapositivas del Proyecto de Aula (SILIPRO)
Diapositivas del Proyecto de Aula (SILIPRO)
guestc718eb
 
Manual sql server
Manual sql serverManual sql server
Manual sql server
Ashley Stronghold Witwicky
 
Manualsqlserverparte
ManualsqlserverparteManualsqlserverparte
Manualsqlserverparte
Juan Timoteo Cori
 
Commit y rollback
Commit y rollbackCommit y rollback
Commit y rollback
linis129
 
Generacion bd casopractico0708
Generacion bd casopractico0708Generacion bd casopractico0708
Generacion bd casopractico0708
mbmmario
 
CreacióN De Objetos En MySQL
CreacióN De Objetos En MySQLCreacióN De Objetos En MySQL
CreacióN De Objetos En MySQL
alexmerono
 
AP06nAA7nEV02nnLenguajenEstructuradondenConsultasnSQLnnBRAYAN___5262376d88266...
AP06nAA7nEV02nnLenguajenEstructuradondenConsultasnSQLnnBRAYAN___5262376d88266...AP06nAA7nEV02nnLenguajenEstructuradondenConsultasnSQLnnBRAYAN___5262376d88266...
AP06nAA7nEV02nnLenguajenEstructuradondenConsultasnSQLnnBRAYAN___5262376d88266...
ssuserd45c31
 
Introducción al SQL
Introducción al SQLIntroducción al SQL
Introducción al SQL
Jesús Tramullas
 
Llaves (1).pdf
Llaves (1).pdfLlaves (1).pdf
Llaves (1).pdf
JefryBarreroESGLOBAL
 
Gbd82
Gbd82Gbd82

Similar a Ejemplos sql (20)

SQL-DDL
SQL-DDLSQL-DDL
SQL-DDL
 
Manual basico de sql mysql conceptos
Manual basico de sql mysql conceptosManual basico de sql mysql conceptos
Manual basico de sql mysql conceptos
 
Consultas SQL
Consultas SQLConsultas SQL
Consultas SQL
 
Commit&rollback
Commit&rollbackCommit&rollback
Commit&rollback
 
Consultas
ConsultasConsultas
Consultas
 
Proyecto de Base de Datos (Parte II)
Proyecto de Base de Datos (Parte II)Proyecto de Base de Datos (Parte II)
Proyecto de Base de Datos (Parte II)
 
1 lab-2 -tablas-y-restricciones
1 lab-2 -tablas-y-restricciones1 lab-2 -tablas-y-restricciones
1 lab-2 -tablas-y-restricciones
 
Sql2
Sql2Sql2
Sql2
 
Base datos mysql y visual basic
Base datos mysql y visual basicBase datos mysql y visual basic
Base datos mysql y visual basic
 
Tm13 introduccion al_sql
Tm13 introduccion al_sqlTm13 introduccion al_sql
Tm13 introduccion al_sql
 
Diapositivas del Proyecto de Aula (SILIPRO)
Diapositivas del Proyecto de Aula (SILIPRO)Diapositivas del Proyecto de Aula (SILIPRO)
Diapositivas del Proyecto de Aula (SILIPRO)
 
Manual sql server
Manual sql serverManual sql server
Manual sql server
 
Manualsqlserverparte
ManualsqlserverparteManualsqlserverparte
Manualsqlserverparte
 
Commit y rollback
Commit y rollbackCommit y rollback
Commit y rollback
 
Generacion bd casopractico0708
Generacion bd casopractico0708Generacion bd casopractico0708
Generacion bd casopractico0708
 
CreacióN De Objetos En MySQL
CreacióN De Objetos En MySQLCreacióN De Objetos En MySQL
CreacióN De Objetos En MySQL
 
AP06nAA7nEV02nnLenguajenEstructuradondenConsultasnSQLnnBRAYAN___5262376d88266...
AP06nAA7nEV02nnLenguajenEstructuradondenConsultasnSQLnnBRAYAN___5262376d88266...AP06nAA7nEV02nnLenguajenEstructuradondenConsultasnSQLnnBRAYAN___5262376d88266...
AP06nAA7nEV02nnLenguajenEstructuradondenConsultasnSQLnnBRAYAN___5262376d88266...
 
Introducción al SQL
Introducción al SQLIntroducción al SQL
Introducción al SQL
 
Llaves (1).pdf
Llaves (1).pdfLlaves (1).pdf
Llaves (1).pdf
 
Gbd82
Gbd82Gbd82
Gbd82
 

Último

pueblos originarios de chile presentacion twinkl.pptx
pueblos originarios de chile presentacion twinkl.pptxpueblos originarios de chile presentacion twinkl.pptx
pueblos originarios de chile presentacion twinkl.pptx
RAMIREZNICOLE
 
CUENTOS EN MAYÚSCULAS PARA APRENDER A LEER.pdf
CUENTOS EN MAYÚSCULAS PARA APRENDER A LEER.pdfCUENTOS EN MAYÚSCULAS PARA APRENDER A LEER.pdf
CUENTOS EN MAYÚSCULAS PARA APRENDER A LEER.pdf
Inslvarez5
 
Guia Practica de ChatGPT para Docentes Ccesa007.pdf
Guia Practica de ChatGPT para Docentes Ccesa007.pdfGuia Practica de ChatGPT para Docentes Ccesa007.pdf
Guia Practica de ChatGPT para Docentes Ccesa007.pdf
Demetrio Ccesa Rayme
 
665033394-TODAS-LAS-SANGRES-resumen-Por-Capitulos.pdf
665033394-TODAS-LAS-SANGRES-resumen-Por-Capitulos.pdf665033394-TODAS-LAS-SANGRES-resumen-Por-Capitulos.pdf
665033394-TODAS-LAS-SANGRES-resumen-Por-Capitulos.pdf
valerytorresmendizab
 
Lecciones 10 Esc. Sabática. El espiritismo desenmascarado docx
Lecciones 10 Esc. Sabática. El espiritismo desenmascarado docxLecciones 10 Esc. Sabática. El espiritismo desenmascarado docx
Lecciones 10 Esc. Sabática. El espiritismo desenmascarado docx
Alejandrino Halire Ccahuana
 
Presentación Curso C. Diferencial - 2024-1.pdf
Presentación Curso C. Diferencial - 2024-1.pdfPresentación Curso C. Diferencial - 2024-1.pdf
Presentación Curso C. Diferencial - 2024-1.pdf
H4RV3YH3RN4ND3Z
 
Planificación Ejemplo con la metodología TPACK
Planificación Ejemplo con la metodología  TPACKPlanificación Ejemplo con la metodología  TPACK
Planificación Ejemplo con la metodología TPACK
ssusera6697f
 
Radicación con expresiones algebraicas para 9no grado
Radicación con expresiones algebraicas para 9no gradoRadicación con expresiones algebraicas para 9no grado
Radicación con expresiones algebraicas para 9no grado
perezducasaarmando
 
Power Point: El espiritismo desenmascarado
Power Point: El espiritismo desenmascaradoPower Point: El espiritismo desenmascarado
Power Point: El espiritismo desenmascarado
https://gramadal.wordpress.com/
 
SEMIOLOGIA DE HEMORRAGIAS DIGESTIVAS.pptx
SEMIOLOGIA DE HEMORRAGIAS DIGESTIVAS.pptxSEMIOLOGIA DE HEMORRAGIAS DIGESTIVAS.pptx
SEMIOLOGIA DE HEMORRAGIAS DIGESTIVAS.pptx
Osiris Urbano
 
2° año LA VESTIMENTA-ciencias sociales 2 grado
2° año LA VESTIMENTA-ciencias sociales 2 grado2° año LA VESTIMENTA-ciencias sociales 2 grado
2° año LA VESTIMENTA-ciencias sociales 2 grado
GiselaBerrios3
 
el pensamiento critico de paulo freire en basica .pdf
el pensamiento critico de paulo freire en basica .pdfel pensamiento critico de paulo freire en basica .pdf
el pensamiento critico de paulo freire en basica .pdf
almitamtz00
 
3° SES COMU LUN10 CUENTO DIA DEL PADRE 933623393 PROF YESSENIA (1).docx
3° SES COMU LUN10  CUENTO DIA DEL PADRE  933623393 PROF YESSENIA (1).docx3° SES COMU LUN10  CUENTO DIA DEL PADRE  933623393 PROF YESSENIA (1).docx
3° SES COMU LUN10 CUENTO DIA DEL PADRE 933623393 PROF YESSENIA (1).docx
rosannatasaycoyactay
 
Blogs_y_Educacion_Por Zaracho Lautaro_.pdf
Blogs_y_Educacion_Por Zaracho Lautaro_.pdfBlogs_y_Educacion_Por Zaracho Lautaro_.pdf
Blogs_y_Educacion_Por Zaracho Lautaro_.pdf
lautyzaracho4
 
RETROALIMENTACIÓN PARA EL EXAMEN ÚNICO AUXILIAR DE ENFERMERIA.docx
RETROALIMENTACIÓN PARA EL EXAMEN ÚNICO AUXILIAR DE ENFERMERIA.docxRETROALIMENTACIÓN PARA EL EXAMEN ÚNICO AUXILIAR DE ENFERMERIA.docx
RETROALIMENTACIÓN PARA EL EXAMEN ÚNICO AUXILIAR DE ENFERMERIA.docx
100078171
 
Manual de procedimiento para gráficos HC
Manual de procedimiento para gráficos HCManual de procedimiento para gráficos HC
Manual de procedimiento para gráficos HC
josseanlo1581
 
Camus, Albert - El Extranjero.pdf
Camus, Albert -        El Extranjero.pdfCamus, Albert -        El Extranjero.pdf
Camus, Albert - El Extranjero.pdf
AlexDeLonghi
 
CONTENIDOS Y PDA DE LA FASE 3,4 Y 5 EN NIVEL PRIMARIA
CONTENIDOS Y PDA DE LA FASE 3,4 Y 5 EN NIVEL PRIMARIACONTENIDOS Y PDA DE LA FASE 3,4 Y 5 EN NIVEL PRIMARIA
CONTENIDOS Y PDA DE LA FASE 3,4 Y 5 EN NIVEL PRIMARIA
ginnazamudio
 
Examen de Lengua Castellana y Literatura de la EBAU en Castilla-La Mancha 2024.
Examen de Lengua Castellana y Literatura de la EBAU en Castilla-La Mancha 2024.Examen de Lengua Castellana y Literatura de la EBAU en Castilla-La Mancha 2024.
Examen de Lengua Castellana y Literatura de la EBAU en Castilla-La Mancha 2024.
20minutos
 

Último (20)

pueblos originarios de chile presentacion twinkl.pptx
pueblos originarios de chile presentacion twinkl.pptxpueblos originarios de chile presentacion twinkl.pptx
pueblos originarios de chile presentacion twinkl.pptx
 
CUENTOS EN MAYÚSCULAS PARA APRENDER A LEER.pdf
CUENTOS EN MAYÚSCULAS PARA APRENDER A LEER.pdfCUENTOS EN MAYÚSCULAS PARA APRENDER A LEER.pdf
CUENTOS EN MAYÚSCULAS PARA APRENDER A LEER.pdf
 
Guia Practica de ChatGPT para Docentes Ccesa007.pdf
Guia Practica de ChatGPT para Docentes Ccesa007.pdfGuia Practica de ChatGPT para Docentes Ccesa007.pdf
Guia Practica de ChatGPT para Docentes Ccesa007.pdf
 
A VISITA DO SENHOR BISPO .
A VISITA DO SENHOR BISPO                .A VISITA DO SENHOR BISPO                .
A VISITA DO SENHOR BISPO .
 
665033394-TODAS-LAS-SANGRES-resumen-Por-Capitulos.pdf
665033394-TODAS-LAS-SANGRES-resumen-Por-Capitulos.pdf665033394-TODAS-LAS-SANGRES-resumen-Por-Capitulos.pdf
665033394-TODAS-LAS-SANGRES-resumen-Por-Capitulos.pdf
 
Lecciones 10 Esc. Sabática. El espiritismo desenmascarado docx
Lecciones 10 Esc. Sabática. El espiritismo desenmascarado docxLecciones 10 Esc. Sabática. El espiritismo desenmascarado docx
Lecciones 10 Esc. Sabática. El espiritismo desenmascarado docx
 
Presentación Curso C. Diferencial - 2024-1.pdf
Presentación Curso C. Diferencial - 2024-1.pdfPresentación Curso C. Diferencial - 2024-1.pdf
Presentación Curso C. Diferencial - 2024-1.pdf
 
Planificación Ejemplo con la metodología TPACK
Planificación Ejemplo con la metodología  TPACKPlanificación Ejemplo con la metodología  TPACK
Planificación Ejemplo con la metodología TPACK
 
Radicación con expresiones algebraicas para 9no grado
Radicación con expresiones algebraicas para 9no gradoRadicación con expresiones algebraicas para 9no grado
Radicación con expresiones algebraicas para 9no grado
 
Power Point: El espiritismo desenmascarado
Power Point: El espiritismo desenmascaradoPower Point: El espiritismo desenmascarado
Power Point: El espiritismo desenmascarado
 
SEMIOLOGIA DE HEMORRAGIAS DIGESTIVAS.pptx
SEMIOLOGIA DE HEMORRAGIAS DIGESTIVAS.pptxSEMIOLOGIA DE HEMORRAGIAS DIGESTIVAS.pptx
SEMIOLOGIA DE HEMORRAGIAS DIGESTIVAS.pptx
 
2° año LA VESTIMENTA-ciencias sociales 2 grado
2° año LA VESTIMENTA-ciencias sociales 2 grado2° año LA VESTIMENTA-ciencias sociales 2 grado
2° año LA VESTIMENTA-ciencias sociales 2 grado
 
el pensamiento critico de paulo freire en basica .pdf
el pensamiento critico de paulo freire en basica .pdfel pensamiento critico de paulo freire en basica .pdf
el pensamiento critico de paulo freire en basica .pdf
 
3° SES COMU LUN10 CUENTO DIA DEL PADRE 933623393 PROF YESSENIA (1).docx
3° SES COMU LUN10  CUENTO DIA DEL PADRE  933623393 PROF YESSENIA (1).docx3° SES COMU LUN10  CUENTO DIA DEL PADRE  933623393 PROF YESSENIA (1).docx
3° SES COMU LUN10 CUENTO DIA DEL PADRE 933623393 PROF YESSENIA (1).docx
 
Blogs_y_Educacion_Por Zaracho Lautaro_.pdf
Blogs_y_Educacion_Por Zaracho Lautaro_.pdfBlogs_y_Educacion_Por Zaracho Lautaro_.pdf
Blogs_y_Educacion_Por Zaracho Lautaro_.pdf
 
RETROALIMENTACIÓN PARA EL EXAMEN ÚNICO AUXILIAR DE ENFERMERIA.docx
RETROALIMENTACIÓN PARA EL EXAMEN ÚNICO AUXILIAR DE ENFERMERIA.docxRETROALIMENTACIÓN PARA EL EXAMEN ÚNICO AUXILIAR DE ENFERMERIA.docx
RETROALIMENTACIÓN PARA EL EXAMEN ÚNICO AUXILIAR DE ENFERMERIA.docx
 
Manual de procedimiento para gráficos HC
Manual de procedimiento para gráficos HCManual de procedimiento para gráficos HC
Manual de procedimiento para gráficos HC
 
Camus, Albert - El Extranjero.pdf
Camus, Albert -        El Extranjero.pdfCamus, Albert -        El Extranjero.pdf
Camus, Albert - El Extranjero.pdf
 
CONTENIDOS Y PDA DE LA FASE 3,4 Y 5 EN NIVEL PRIMARIA
CONTENIDOS Y PDA DE LA FASE 3,4 Y 5 EN NIVEL PRIMARIACONTENIDOS Y PDA DE LA FASE 3,4 Y 5 EN NIVEL PRIMARIA
CONTENIDOS Y PDA DE LA FASE 3,4 Y 5 EN NIVEL PRIMARIA
 
Examen de Lengua Castellana y Literatura de la EBAU en Castilla-La Mancha 2024.
Examen de Lengua Castellana y Literatura de la EBAU en Castilla-La Mancha 2024.Examen de Lengua Castellana y Literatura de la EBAU en Castilla-La Mancha 2024.
Examen de Lengua Castellana y Literatura de la EBAU en Castilla-La Mancha 2024.
 

Ejemplos sql

  • 2. EJEMPLOS PRÁCTICOS SQL INTEGRIDAD REFERENCIAL INTEGRIDAD REFERENCIAL
  • 3. DROP SCHEMA IF EXISTS Tablas1; CREATE SCHEMA Tablas1; USE Tablas1; create table Cliente( Dni VARCHAR(10), Nombre VARCHAR(10), Apellido VARCHAR(10), p ( ), PRIMARY KEY (Dni) )ENGINE=InnoDB; create table Pedidos( npedido INTEGER, fecha DATE, Cantidad DOUBLE, cliente_Dni VARCHAR(10), PRIMARY KEY (npedido), ( did ) 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'); ( 122 2010/01/05 7 7211545v );
  • 5.
  • 6. 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.
  • 7. 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.
  • 8. 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), 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');
  • 10. 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
  • 11. Se observa que se han actualizado las tablas padre e hija
  • 12. Si ahora borramos una tupla de la tabla padre se borra la tupla correspondiente de la tabla hija.
  • 13. 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), cliente Dni VARCHAR(10) PRIMARY KEY (npedido), FOREIGN KEY (cliente_Dni) REFERENCES Cliente(Dni) ON DELETE RESTRICT ON UPDATE CASCADE )ENGINE=InnoDB; )ENGINE I DB INSERT INTO Cliente VALUES ('7211545v','Carlos','Martinez Lopez'); INSERT INTO Pedidos VALUES ('122','2010/01/05',7,'7211545v');
  • 14. 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
  • 15. Observamos que la actualización en cascada ha funcionado
  • 16. 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.
  • 17. 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 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.
  • 18. Como se ve en la figura la tabla de pedidos está vacía y la tabla de clientes está intacta. intacta
  • 19. 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), ( p ), 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 P did VALUES ('122' '2010/01/0 ' ' 211 4 ') Pedidos ('122','2010/01/05',7,'7211545v');
  • 20. Aquí A í mostramos el ejemplo de intentar incorporar una fila nueva de t l j l d i t t i fil d pedidos de un cliente que no existe en la tabla de clientes. Las reglas de integridad referencial nos lo impiden
  • 21. Insertamos ahora dos nuevos clientes……..
  • 22. El resultado lo observamos en la figura ……
  • 23. Ahora si que podemos incorporar una tupla nueva de pedido con el cliente incorporado en la tabla de clientes
  • 24. EJEMPLOS PRÁCTICOS SQL MODIFICACIÓN TABLAS MODIFICACIÓN TABLAS
  • 25. DROP SCHEMA IF EXISTS Tablas5; T bl 5 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, 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'); ( 122 2010/01/05 7 7211545v );
  • 26. Agregamos una columna a la tabla con ALTER …ADD
  • 27. Cambiamos el nombre de una columna a la tabla con ALTER …CHANGE
  • 28. Modificamos el tipo de datos de una columna a la tabla con ALTER …MODIFY
  • 29. Eliminamos una columna a la tabla con ALTER …DROP
  • 30. Estamos tratando de borrar una tabla padre. Las restricciones de la BD no nos permite al tener asociada la tabla una clave ajena
  • 31. La tabla hija “pedidos” se puede borrar sin problemas. Es donde se haya la clave ajena
  • 33. 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, ec a , 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 ); ( 7211543v Cesar Bernal SanJose'); INSERT INTO Personal VALUES ('7211544v','Rodrigo','Alonso Vera'); INSERT INTO Personal VALUES ('7211546v','Maria','Lopez Gomez');
  • 34. TABLA: Cliente TABLA: Pedidos TABLA: Personal
  • 35. Con este comando que es un mezcla de INSERT INTO y SELECT conseguimos meter en la tabla cliente 5 tuplas
  • 36.
  • 38. 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, ec a , 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'); ( 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');
  • 39. Vamos a probar el comando actualizar de SQL. Para ello actualizamos todas las tuplas en la que aparece Maria
  • 40.
  • 41. En este ejemplo vemos como es imposible actualizar los dos registros en l que aparece en nombre el valor Carmen a un mismo DNI los b l l C i ya que DNI tiene la restricción de clave primaria
  • 43. DROP SCHEMA IF EXISTS SELECT1; CREATE SCHEMA SELECT1; USE SELECT1; create table Información Ventas( Información_Ventas( Tienda VARCHAR(10), Ventas INTEGER, Fecha DATE ) )ENGINE=InnoDB; ; create table Zona_Ventas( Región VARCHAR(10), g ( ), 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'); ( , g ); INSERT INTO Zona_Ventas VALUES ('Noreste','Barcelona');
  • 45. Tabla: Información_Ventas Selección Básica: Seleccionamos el nombre de todas las tiendas
  • 46. Tabla: Información_Ventas Selección Básica: De esta forma eliminamos los duplicados que genera la consulta SELECT
  • 47. Tabla: Información_Ventas Se ecc ó Condicional Simple: Selección Co d c o a S p e Tiendas cuyas ventas son mayores de 1000
  • 48. DROP SCHEMA IF EXISTS SELECT2; CREATE SCHEMA SELECT2; USE SELECT2; create table Información_Ventas( 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'); Información Ventas ( 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 Zona_Ventas VALUES ('Centro-Sur','Madrid'); Z V t ('C t S ' 'M d id') INSERT INTO Zona_Ventas VALUES ('Centro-Sur','Sevilla'); INSERT INTO Zona_Ventas VALUES ('Noreste','Zaragoza'); INSERT INTO Zona_Ventas VALUES ('Noreste','Barcelona');
  • 49. 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
  • 50. Tabla: Información_Ventas Selección Tuplas en Función de Valores (IN): Información completa de lasTiendas de “Madrid” y “Sevilla”
  • 51. Tabla: Información_Ventas Selección Búsqueda de Patrones (LIKE): Seleccion de tuplas que contengan un patrón
  • 52. DROP SCHEMA IF EXISTS SELECT3; O SC S SS C 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 Ti d 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'); Zona Ventas ( 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');
  • 53. 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
  • 54. 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
  • 55. 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'); Zona Ventas ( Centro-Sur Sevilla ); INSERT INTO Zona_Ventas VALUES ('Noreste','Zaragoza'); INSERT INTO Zona_Ventas VALUES ('Noreste','Barcelona');
  • 56. Tabla: Información_Ventas Selección Funciones Aritméticas: S l ió F i A it éti Seleccionar todas las tuplas de la tabla “Información_Ventas’ (ya ( que no existe clausula when) , obteniendo una relacion(una tabla). i t l l h ) bt i d l i ( t bl ) Luego proyectamos por el campo Ventas y hacemos una operación.
  • 57. Tabla: Información_Ventas Selección Funciones Aritméticas: Número de Tuplas de una tabla
  • 58. Tabla: Información_Ventas Selección Funciones Aritméticas con Grupos: S l ió F i A it éti G Ventas agrupadas por tiendas
  • 59. Tabla: Información_Ventas Selección Funciones Aritméticas con Grupos: Ventas agrupadas por tiendas de las tiendas cuyas ventas Son superiores a 1500
  • 60. 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
  • 61. 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 p q p g p
  • 62. Tiendas y suma de ventas agrupadas por iguales valores de tienda y ventas
  • 63. Selección con Grupos: Suma de las ventas totales de las tiendas agrupadas por el nombre de Madrid
  • 64. Se ecc ó con Grupos: Selección co G upos Máximo de ventas de las tiendas agrupadas por el nombre
  • 66. DROP SCHEMA IF EXISTS JOIN1; CREATE SCHEMA JOIN1; USE JOIN1; create table Información_Ventas( Tienda VARCHAR(10), Ventas INTEGER, V t 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'); I f ió V VA UES ('M d id' 1 00 '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');
  • 69. EJEMPLOS PRÁCTICOS SQL CONSULTAS ANIDADAS CONSULTAS ANIDADAS
  • 70. TABLA:Zona_Ventas TABLA: Informacion_ventas Consulta Anidada: Ventas de todas las tiendas de la región Noreste
  • 71.
  • 72. Consulta join equivalente a anidada: Ventas de todas las tiendas de la región Noreste
  • 73. 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 ('N Z V ('Noreste','Barcelona'); ' 'B l ')
  • 74. Utilización comando case: Modificación de la columna Ventas en función del valor
  • 75. 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 ('B V i d VA UES ('Barcelona',1500,'2010/01/08'); l ' 1 00 '2010/01/08') INSERT INTO Ventas_Internet VALUES ('2010/01/07',250); INSERT INTO Ventas_Internet VALUES ('2010/01/10',535); V t I t t ('2010/01/10' 535) INSERT INTO Ventas_Internet VALUES ('2010/01/11',320); INSERT INTO Ventas_Internet VALUES ('2010/01/12',750);