0% encontró este documento útil (0 votos)
734 vistas65 páginas

2 Lenguaje de Manipulación de Datos

1. El lenguaje de manipulación de datos SQL proporciona órdenes para la definición de esquemas de relación, inserción, eliminación y modificación de datos, y consultas en las bases de datos. 2. Las principales operaciones de manipulación de datos son la inserción de nuevos registros, la eliminación de registros existentes, y la modificación de valores en los registros. 3. Las consultas a la base de datos se realizan mediante la sentencia SQL SELECT, la cual permite seleccionar campos específicos o todos los camp

Cargado por

Patrick zaid
Derechos de autor
© © All Rights Reserved
Nos tomamos en serio los derechos de los contenidos. Si sospechas que se trata de tu contenido, reclámalo aquí.
Formatos disponibles
Descarga como PDF, TXT o lee en línea desde Scribd
0% encontró este documento útil (0 votos)
734 vistas65 páginas

2 Lenguaje de Manipulación de Datos

1. El lenguaje de manipulación de datos SQL proporciona órdenes para la definición de esquemas de relación, inserción, eliminación y modificación de datos, y consultas en las bases de datos. 2. Las principales operaciones de manipulación de datos son la inserción de nuevos registros, la eliminación de registros existentes, y la modificación de valores en los registros. 3. Las consultas a la base de datos se realizan mediante la sentencia SQL SELECT, la cual permite seleccionar campos específicos o todos los camp

Cargado por

Patrick zaid
Derechos de autor
© © All Rights Reserved
Nos tomamos en serio los derechos de los contenidos. Si sospechas que se trata de tu contenido, reclámalo aquí.
Formatos disponibles
Descarga como PDF, TXT o lee en línea desde Scribd

2.

Lenguaje de
manipulación
de datos
TALLER DE BASE DE DATOS
COMPETENTECIA
Construye expresiones en SQL para resolver
necesidades de recuperación de información con
las reglas sintácticas del lenguaje de manipulación
de datos.
TEMAS
2.1 Inserción, eliminación y
modificación de registros
2.2 Consultas
2.3 Funciones, conversión,
agrupamiento, ordenamiento
2.4 Joins
2.5 Subconsultas
2.6 Operadores set
2.7 Vistas
2. LENGUAJE DE MANIPULACION DE DATOS

Los sistemas de bases de datos comerciales necesitan un lenguaje de consultas


cómodo para el usuario. En este capítulo se estudia el lenguaje comercial de
mayor influencia, SQL. SQL usa una combinación de álgebra relacional y
construcciones del cálculo relacional.

Aunque el lenguaje SQL se considere un lenguaje de consultas, contiene muchas


otras capacidades además de la consulta en bases de datos. Incluye características
para definir la estructura de los datos, para la modificación de los datos en la
base de datos y para la especificación de restricciones de seguridad.
2. LENGUAJE DE MANIPULACION DE DATOS
1. El LDD de SQL proporciona órdenes para la definición de esquemas de
relación, borrado de relaciones, creación de índices y modificación de
esquemas de relación.
INSERT UPDATE DELETE
Consiste en aumentar los Consiste en editar la Consiste en disminuir la
datos, por ejemplo: insertar información de la base de información de la base de
los datos de un producto datos, por ejemplo: datos, por ejemplo: eliminar
nuevo en una empresa. modificar el precio de un los datos de un producto que
producto. se dejó de vender en una
INSERT INTO table_name UPDATE table_name empresa.
(column1, column2,...) SET column1 = value1, column2 DELETE FROM table_name
VALUES (value1, value2,..); = value2, ... WHERE condition;
WHERE condition;
2. LENGUAJE DE MANIPULACION DE DATOS
1. Esta función permite a los usuarios realizar búsquedas y poder reemplazar la información que
se encuentra guardada en la base de datos. Para la actualización de la base de datos se
involucra tres tipos de operaciones que son:

2. • Inserción: Consiste en aumentar los datos, por ejemplo: insertar los datos de un producto
nuevo que se comercializa en una empresa.

3. • Eliminación: Consiste en disminuir la información de la base de datos, por ejemplo:


eliminar o borrar los datos de un producto que se dejó de comercializar en una empresa.

4. • Modificación: Consiste en editar la información de la base de datos, por ejemplo: modificar


el precio de un producto.
2. LENGUAJE DE MANIPULACION DE DATOS

La función de manipulación se producirá a cabo por la interminación de un lenguaje de


manipulación de datos (DML), es decir que estos lenguajes consiguen catalogar varios criterios:

A través de la forma independiente que maneja el DML, se ha logrado conocer a los lenguajes
huésped, autocontenidos o duales. DML huésped estos lenguajes se tienen que infiltrar en otro
lenguaje de programación. Los DML autocontenidos son aquellos lenguajes utilizados por los
usuarios que poseen escasos conocimientos en cuanto a la programación. Los lenguajes como el
SQL, son manipulados como lenguajes huéspedes, y son denominados como lenguajes duales.

De acuerdo al detalle se puede especificar el procedimiento debido para permitir los datos y
consultarlos, ya que existen dos tipos de lenguajes: Los de tipo procedimentales permiten al
usuario proporcionar instrucciones al sistema para que realice una serie de operaciones en la
base de datos y los poco procedimentales en cambio permiten al usuario describir la información
deseada sin un procedimiento específico con el fin de obtener esa información.
2. LENGUAJE DE MANIPULACION DE DATOS

Los lenguajes de especificación y


lenguajes navegacionales se
SELECT Consulta filas en la base de datos diferencian en su forma de cómo
UPDATE Modifica valores de una fila recuperar o actualizar los datos. Los
INSERT Inserta una nueva fila lenguajes de especificación por
DELETE Elimina filas medio de cada sentencia del DML
logra recuperar un conjunto de
registros, mientras que los lenguajes
navegacionales recuperan un solo
registro.
2.1 Inserción, eliminación y
modificación de registros

Una vez creada la base de datos con sus tablas, debemos poder insertar, modificar y
borrar los valores de las filas de las tablas. Para poder hacer esto, el SQL nos ofrece
las siguientes sentencias: INSERT para insertar, UPDATE para modificar y DELETE para
borrar. Una vez hemos insertado valores en nuestras tablas, tenemos que poder
consultarlos. La sentencia para hacer consultas a una base de datos con el SQL es
SELECT FROM. Veamos a continuación estas sentencias.
2.1 Inserción, eliminación y
modificación de registros
Inserción de filas en una tabla
Antes de poder consultar los datos de una base de datos, es preciso introducirlos
con la sentencia INSER TINTO VALUES, que tiene el formato:

INSERT INTO nombre_tabla [(columnas)]


{VALUES ({v1|DEFAULT|NULL}, ..., {vn/DEFAULT/NULL})|<consulta>};

Los valores v1, v2, ..., vn se deben corresponder exactamente con las columnas que hemos dicho
que tendríamos con el CREATE TABLE y deben estar en el mismo orden, a menos que las volvamos
a poner a continuación del nombre de la tabla. En este último caso, los valores se deben
disponer de forma coherente con el nuevo orden que hemos impuesto. Podría darse el caso de que
quisiéramos que algunos valores para insertar fuesen valores por omisión, definidos previamente
con la opción DEFAULT. Entonces pondríamos la palabra reservada DEFAULT. Si se trata de
introducir valores nulos, también podemos utilizar la palabra reservada NULL.
Practia INSERT
● En el programa Workbench abrir la
base de datos de la práctica y
realizar lo siguiente:
Sentencias

resultado
2.1 Inserción, eliminación y
modificación de registros
Eliminación de filas en una tabla
Para borrar valores de alguna fila de una tabla utilizaremos la sentencia DELETE
FROM WHERE. Su formato es el siguiente:

DELETE FROM nombre_tabla


[WHERE condiciones];

En cambio, si lo que quisiéramos conseguir es borrar todas las filas de una tabla,
entonces sólo tendríamos que poner la sentencia DELETE FROM, sin WHERE.
Practia DELETE
En el programa Workbench abrir la base de
datos de la práctica y realizar lo siguiente:

Sentencias
2.1 Inserción, eliminación y
modificación de registros
Modificación de filas de una tabla
Si quisiéramos modificar los valores de algunas filas de una tabla, tendríamos que
utilizar la sentencia UPDATE SET WHERE. A continuación presentamos su formato:

UPDATE nombre_tabla
SET columna = {expresión|DEFAULT|NULL}
[, columna = {expr|DEFAULT|NULL} ...]
WHERE condiciones;

En la sentencia vemos el nombre de la columna, agregando el valor nuevo, según


las condiciones que se indiquen.
Practia Update
● En el programa Workbench abrir la base de
datos de la práctica y realizar lo siguiente:

Sentencias

resultado
2.2 Consultas
Consultas
Para realizar consultas a una base de datos relacional hacemos uso de la
sentencia SELECT. La sintaxis básica del comando SELECT es la siguiente:

SELECT * | {[ DISTINCT ] columna | expresión [[AS] alias ], ...}


FROM nombre_tabla;

Donde:
*. El asterisco significa que se seleccionan todas las columnas.
DISTINCT. Hace que no se muestren los valores duplicados.
columna. Es el nombre de una columna de la tabla que se desea mostrar.
expresión. Una expresión válida SQL.
alias. Es un nombre que se le da a la cabecera de la columna en el resultado de esta
instrucción.
2.2 Consultas
Consultas
Para realizar consultas se utiliza el símbolo * para seleccionar todos los registros
de una tabla. En el caso de lo solo requerir algunos campos, estos se escriben
separados por coma.

-- Selección de todos los registros de la tabla CLIENTES


SELECT * FROM CLIENTES;
-- Selección de algunos campos de la tabla CLIENTES
SELECT nombre, apellido1, apellido2 FROM CLIENTES;
Practia select
● En el programa Workbench abrir la base de
datos de la práctica y realizar lo siguiente:

Sentencias
Practia select
● En el programa Workbench abrir la base de
datos de la práctica y realizar lo siguiente:

Sentencias
2.3 Funciones, conversión,
agrupamiento, ordenamiento
conversión
Es posible convertir datos automáticamente a fin de que la expresión final tenga
sentido utilizando la función CONVERT . La función CONVERT () convierte un valor
en el tipo de datos o juego de caracteres especificado.

CONVERT(value, type)

Convierte un valor en un tipo de datos CHAR: Convierta un valor en un tipo de datos TIME:
SELECT CONVERT(150, CHAR); SELECT CONVERT("14:06:10", TIME);
2.3 Funciones, conversión,
agrupamiento, ordenamiento
conversión Parametro Descripcion
Valores paramétricos
value Requerido. El valor para convertir

type Requerido. El tipo de datos al que se va a convertir. Puede ser uno de los
siguientes:

charset Requerido. El juego de caracteres para convertir


2.3 Funciones, conversión,
agrupamiento, ordenamiento
agrupamiento
Es muy común utilizar consultas en las que se desee agrupar los datos a fin de
realizar cálculos en vertical, es decir calculados a partir de datos de distintos
registros. Para ello se utiliza la cláusula GROUP BY que permite indicar en base a
qué registros se realiza la agrupación. Con GROUP BY la instrucción SELECT queda
de esta forma:
CONVERT(value, type) SELECT lista_expresiones
FROM lista_tablas
[ WHERE condiciones ]
[ GROUP BY grupos ]
[ HAVING condiciones_de_grupos ]
[ ORDER BY columnas ];

El comando GROUP BY se usa para agrupar el conjunto de resultados (usado con


funciones agregadas: COUNT, MAX, MIN, SUM, AVG).
Practia group by
● En el programa Workbench abrir la base de
datos de la práctica y realizar lo siguiente:

Sentencias
Practia select - count
● En el programa Workbench abrir la base de
datos de la práctica y realizar lo siguiente:

Sentencias

SELECT
La función COUNT () devuelve el COUNT(column_name)
número de filas que coincide FROM table_name
con un criterio especificado. WHERE condition;
Practia GROUP BY - SUM
● En el programa Workbench abrir la base de
datos de la práctica y realizar lo siguiente:

Sentencias

La función SUM () devuelve la


suma total de una columna
numérica.

SELECT SUM(column_name)
FROM table_name
WHERE condition;
2.3 Funciones, conversión,
agrupamiento, ordenamiento
Ordenamiento
El orden inicial de los registros obtenidos por un SELECT guarda una relación
con al orden en el que fueron introducidos. Para ordenar en base a criterios
más interesantes, se utiliza la cláusula ORDER BY. En esa cláusula se coloca
una lista de campos que indica la forma de ordenar. Se ordena primero por el
primer campo de la lista, si hay coincidencias por el segundo, si ahí también
las hay por el tercero, y así sucesivamente. Se puede colocar las palabras ASC
O DESC (por defecto se toma ASC).

SELECT * FROM Customers


ORDER BY CustomerName;
SELECT column1, column2, ...
Practia ORDER ASC/DESC FROM table_name
● En el programa Workbench abrir la base de
datos de la práctica y realizar lo siguiente: ORDER BY column1, column2, ... ASC|DESC;

Sentencias
2.4 Joins
uniones
La cláusula JOIN se usa para combinar filas de dos o más tablas, según una columna
relacionada entre ellas.

Veamos una selección de la tabla "Pedidos":

Observe que la columna "CustomerID" en la tabla "Pedidos" se


refiere al "CustomerID" en la tabla "Clientes". La relación SELECT Orders.OrderID,
entre las dos tablas anteriores es la columna "CustomerID". Customers.CustomerName, Orders.OrderDate
Luego, podemos crear la siguiente declaración SQL (que FROM Orders
contiene una INNER JOIN), que selecciona registros que tienen
INNER JOIN Customers ON
valores coincidentes en ambas tablas.
Orders.CustomerID=Customers.CustomerID;
2.4 Joins

uniones
Veamos una selección de la tabla "Pedidos":

SELECT Orders.OrderID,
Customers.CustomerName, Orders.OrderDate
FROM Orders
INNER JOIN Customers ON
Orders.CustomerID=Customers.CustomerID;
2.4 Joins

uniones
Diferentes tipos de JOIN de SQL. Estos son los diferentes tipos de JOIN en SQL:
(INNER) JOIN : LEFT (OUTER) JOIN : RIGHT (OUTER) JOIN : FULL (OUTER) JOIN :
Devuelve registros Devuelve todos los Devuelve todos los Devuelve todos los
que tienen valores registros de la tabla registros de la tabla registros cuando hay
coincidentes en izquierda y los derecha y los una coincidencia en
ambas tablas registros coincidentes registros coincidentes la tabla izquierda o
de la tabla derecha de la tabla izquierda derecha
Practia Joins Una cláusula JOIN se usa para combinar filas
de dos o más tablas, según una columna
● En el programa Workbench abrir la base de
datos de la práctica y realizar lo siguiente: relacionada entre ellas.

Sentencias
Practia INER JOIN Una cláusula JOIN se usa para combinar filas
de dos o más tablas, según una columna
● En el programa Workbench abrir la base de
datos de la práctica y realizar lo siguiente: relacionada entre ellas.

Sentencias

La palabra clave INNER JOIN


selecciona registros que tienen
valores coincidentes en ambas
tablas.

SELECT column_name(s)
FROM table1
INNER JOIN table2
ON table1.column_name = table2.column_name;
Practia left JOIN
● En el programa Workbench abrir la base de
datos de la práctica y realizar lo siguiente:

Sentencias

La palabra clave LEFT JOIN devuelve todos los


registros de la tabla izquierda (tabla1) y los
registros coincidentes de la tabla derecha
(tabla2). El resultado es NULL desde el lado
derecho, si no hay coincidencia.

SELECT column_name(s)
FROM table1
LEFT JOIN table2
ON table1.column_name = table2.column_name;
Practia right JOIN
● En el programa Workbench abrir la base de
datos de la práctica y realizar lo siguiente:

Sentencias

La palabra clave RIGHT JOIN devuelve todos los


registros de la tabla derecha (tabla2) y los
registros coincidentes de la tabla izquierda
(tabla1). El resultado es NULO desde el lado
izquierdo, cuando no hay coincidencia.

SELECT column_name(s)
FROM table1
RIGHT JOIN table2
ON table1.column_name = table2.column_name;
2.5 Subconsultas

uniones
El operador UNION se utiliza para combinar el conjunto de resultados de dos o más
sentencias SELECT.

• Cada instrucción SELECT dentro de UNION debe tener el mismo número de columnas
• Las columnas también deben tener tipos de datos similares
• Las columnas de cada instrucción SELECT también deben estar en el mismo orden

SELECT column_name(s) FROM


table1
UNION
SELECT column_name(s) FROM
table2;
Practia union
● En el programa Workbench abrir la base de
datos de la práctica y realizar lo siguiente:

Sentencias

SELECT column_name(s) FROM table1


UNION
SELECT column_name(s) FROM table2;
2.5 Subconsultas
Las subconsultas son consultas dentro de otra consulta más externa o dispuestas de
forma anidada, y puedes colocarlas en cualquier parte de un SELECT. Es por esto que
tal vez las has visto en la lista de campos de la cláusula SELECT, en la cláusula FROM
o dentro de WHERE. Las subconsultas pueden devolver tres tipos de resultados: un
valor escalar, una columna o lista de valores y una tabla.
Se puede encontrar en la lista de selección, en la cláusula WHERE o en la cláusula
HAVING de la consulta principal.
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, ni
puede ser la UNION de varias sentencias SELECT, además tiene algunas restricciones
en cuanto a número de columnas según el lugar donde aparece en la consulta
principal. Estas restricciones las iremos describiendo en cada caso.
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.
2.5 Subconsultas

Se trata de una técnica que permite utilizar el resultado de una tabla SELECT en otra
consulta SELECT. Permite solucionar consultas que requieren para funcionar el resultado
previo de otra consulta.
Una subconsulta es una sentencia SELECT anidada en otra sentencia SQL, que puede ser otra
SELECT o bien cualquier sentencia de manejo de datos (INSERT, UPDATE, DELETE). Las
subconsultas pueden anidarse unas dentro de otras tanto como sea necesario (cada SGBD
puede tener un nivel máximo de anidamiento, que difícilmente se alcanzará). En este
apartado se muestra cómo el uso de subconsultas en las cláusulas WHERE y HAVING otorga
mayor potencia para la realización de restricciones. Además, en este apartado se introduce
el uso de subconsultas en la cláusula FROM.
SELECT listaExpresiones
FROM tabla
WHERE expresión OPERADOR
(SELECT listaExpresiones
FROM tabla);
Practia subconsulta SELECT
● En el programa Workbench abrir la base de
datos de la práctica y realizar lo siguiente:

Sentencias
2.5 Subconsultas
Subconsultas en la cláusula WHERE
La cláusula WHERE se utiliza para realizar restricciones a nivel de filas. El predicado
que se evalúa para realizar una restricción está formado por comparaciones unidas por
los operadores AND/OR. Cada comparación involucra dos operandos que pueden ser:

(a) Dos columnas de la tabla sobre la que se (b) Una columna de la tabla de la consulta y una constante.
realiza la consulta. -- artículos cuya descripción empieza como se indica
SELECT *
-- artículos cuyo stock es el mínimo deseado
FROM articulos
SELECT *
WHERE UPPER(descrip) LIKE ’PROLONG%’;
FROM articulos
WHERE stock = stock_min;
2.5 Subconsultas
Subconsultas en la cláusula WHERE
(c) Una columna o una constante y una subconsulta sobre alguna tabla de la base de datos.
-- artículos vendidos con descuento mayor del 45%
SELECT *
FROM articulos
WHERE codart IN ( SELECT codart FROM lineas_fac
WHERE dto > 45 );

Además de los dos operandos, cada comparación se realiza con un operador.


Hay una serie de operadores que se pueden utilizar con las subconsultas para establecer
predicados en las restricciones. Son los que se muestran a continuación:
expresión operador ( subconsulta )
En este predicado la subconsulta debe devolver un solo valor (una fila con una columna). El
predicado se evalúa a verdadero si la comparación indicada por el operador (=, <>, >, <,
>=, <=), entre el resultado de la expresión y el de la subconsulta, es verdadero.
2.5 Subconsultas
Subconsultas en la cláusula WHERE
Opciones de consultas con WHERE:
Con operadores AND y OR
Con el operador BETWEEN
Con el operador LIKE
Con el operador IN
Con el operador IS NULL
Con operadores de comparación
Practia subconsulta WHERE
● En el programa Workbench abrir la base de
datos de la práctica y realizar lo siguiente:

Sentencias
2.5 Subconsultas
Subconsultas en la cláusula HAVING
La cláusula HAVING permite hacer restricciones sobre grupos y necesariamente va
precedida de una cláusula GROUP BY. Para hacer este tipo de restricciones también es
posible incluir subconsultas cuando sea necesario.
La siguiente consulta obtiene el código del pueblo que
tiene más clientes:

SELECT codpue
FROM clientes En primer lugar se ejecuta la subconsulta,
GROUP BY codpue obteniéndose una columna de números
HAVING COUNT(*) >= ALL ( SELECT en donde cada uno indica el número de clientes en
COUNT(*) cada pueblo. La subconsulta se sustituye entonces
FROM clientes por los valores de esta columna, por ejemplo:
GROUP BY codpue );
2.5 Subconsultas
Subconsultas en la cláusula HAVING
En primer lugar se ejecuta la subconsulta, obteniéndose una columna de números
en donde cada uno indica el número de clientes en cada pueblo. La subconsulta se sustituye
entonces por los valores de esta columna, por ejemplo:

La siguiente consulta obtiene el código del pueblo que tiene más clientes:

SELECT codpue
FROM clientes
GROUP BY codpue
HAVING COUNT(*) >= ALL (1,4,7,9,10);

Por último, se ejecuta la consulta principal. Para cada grupo se cuenta el


número de clientes que tiene. Pasan la restricción del HAVING aquel o aquellos
pueblos que en esa cuenta tienen el máximo valor.
2.5 Subconsultas
Subconsultas en la cláusula HAVING
También es posible incluir subconsultas en la cláusula FROM, aunque en este caso no se
utilizan para construir predicados sino para realizar una consulta sobre la tabla que se
obtiene como resultado de ejecutar otra consulta. Siempre que se utilice una subconsulta en
el FROM se debe dar un nombre a la tabla resultado mediante la cláusula AS.

SELECT COUNT(*), MAX(ivat), La consulta anterior cuenta las distintas


MAX(dtot) combinaciones de IVA y descuento y muestra el valor
FROM ( SELECT DISTINCT máximo de éstos. Nótese que se han renombrado las
COALESCE(iva,0) AS ivat,
columnas de la subconsulta para poder referenciarlas
COALESCE(dto,0) AS dtot
en la consulta principal. Esta consulta no se puede
FROM facturas ) AS t;
resolver si no es de este modo ya que COUNT no
acepta una lista de columnas como argumento.
2.5 Subconsultas
Subconsultas en la cláusula HAVING
MySQL evalúa la cláusula HAVING después de las cláusulas FROM, WHERE, SELECT y GROUP BY y
antes de las cláusulas ORDER BY y LIMIT.
Practia subconsulta having La cláusula HAVING se usa en la instrucción
SELECT para especificar condiciones de filtro
● En el programa Workbench abrir la base de
datos de la práctica y realizar lo siguiente: para un grupo de filas o agregados.

Sentencias
A continuación, se utiliza la cláusula GROUP BY para obtener números de
pedido, el número de artículos vendidos por pedido y las ventas totales de
cada uno de la tabla de detalles del pedido:

Ahora, puede encontrar qué pedido tiene ventas totales superiores a


1000 utilizando la cláusula HAVING de la siguiente manera:

SELECT select_list FROM table_name


WHERE search_condition
GROUP BY group_by_expression
HAVING group_condition;
2.6 Operadores set
Operadores set
El comando SET se usa con UPDATE para especificar qué columnas y valores
deben actualizarse en una tabla.

El siguiente SQL actualiza el UPDATE Customers


primer cliente (CustomerID = 1) SET ContactName = 'Alfred
con un nuevo ContactName y Schmidt', City= 'Frankfurt'
WHERE CustomerID = 1;
una nueva ciudad:

SET inicializa distintos tipos de variables que afectan la operación del servidor
o de su cliente. Puede usarse para asignar valores a las variables de usuario o
de sistema.
2.6 Operadores set
Operadores set
Las operaciones set permiten que múltiples consultas sean combinadas en un
único resultado las operaciones set incluyen:
UNION
UNION ALL
INTERSECT
EXCEPT/MINUS
2.6 Operadores set
Operadores set
UNION: Devuelve la suma de todas las filas en ambas columnas pero con
valores únicos.
UNION ALL: Devuelve la suma de todas las filas en ambas columnas. Unir
(UNION) todas (ALL) las filas de dos columnas de tablas diferentes.
INTERSECT: Devueleve una intersección de todos los valores, es decir, solo los
que se encuentran ambas columnas.
EXCEPT/MINUS: Devuelve los valores de la primera consulta que no se
encuentran en la segunda.
2.6 Operadores set
Operadores set - union
UNION: Devuelve la suma de todas las filas en SELECT column_list
ambas columnas pero con valores únicos. UNION [DISTINCT | ALL]
SELECT column_list
UNION [DISTINCT | ALL]
SELECT column_list;
Un JOIN combina conjuntos de resultados horizontalmente,
un UNION agrega un conjunto de resultados
verticalmente. La siguiente imagen ilustra la diferencia
entre UNION y JOIN:
Practia UNION
● En el programa Workbench abrir la base de
datos de la práctica y realizar lo siguiente:

Sentencias

Este ejemplo usa el encabezado de columna de la primera consulta


para la salida. Utiliza la función CONCAT () para concatenar el
nombre, el espacio y el apellido en un nombre completo
2.6 Operadores set
Operadores set - INTERSERC
El operador INTERSECT es un operador de conjunto que (SELECT column_list
devuelve solo filas distintas de dos consultas o más FROM table_1)
INTERSECT
consultas.
(SELECT column_list
A continuación se ilustra la sintaxis del operador
FROM table_2);
INTERSECT.
El operador INTERSECT compara los conjuntos de resultados de dos consultas y
devuelve las distintas filas que generan ambas consultas.
Para utilizar el operador INTERSECT para dos consultas, siga estas reglas:
1. El orden y el número de columnas en la lista de selección de las consultas debe
ser el mismo.
2. Los tipos de datos de las columnas correspondientes deben ser compatibles.

Desafortunadamente, MySQL no admite el operador INTERSECT. Sin


embargo, puede emular el operador INTERSECT.
Practia VIEW
● En el programa Workbench abrir la base de
datos de la práctica y realizar lo siguiente:

Sentencias

1) Emule INTERSECT usando la cláusula DISTINCT e 2) Emular INTERSECT usando IN y subconsulta


INNER JOIN
La siguiente declaración usa el operador DISTINCT y La siguiente declaración usa el operador IN y una
la cláusula INNER JOIN para devolver las distintas subconsulta para devolver la intersección de los
filas en ambas tablas: dos conjuntos de resultados.
2.6 Operadores set
Operadores set - EXCEPT/MINUS:
A continuación, se ilustra la
El operador MINUS es uno de los tres operadores sintaxis del operador MINUS:
establecidos en el estándar SQL que incluye UNION,
INTERSECT y MINUS. SELECT select_list1
MINUS compara los resultados de dos consultas y FROM table_name1
devuelve filas distintas del conjunto de resultados de MINUS
SELECT select_list2
la primera consulta que no aparece en el conjunto de
FROM table_name2;;
resultados de la segunda consulta.

Las reglas básicas para una consulta que usa el operador MENOS son las siguientes:
1. El número y el orden de las columnas tanto en select_list1 como en
select_list2 deben ser iguales.
2. Los tipos de datos de las columnas correspondientes en ambas consultas
deben ser compatibles
2.6 Operadores set
Operadores set - EXCEPT/MINUS:

La siguiente consulta devuelve valores distintos de la


consulta de la tabla t1 que no se encuentra en el
resultado de la consulta de la tabla t2.

SELECT id FROM t1
MINUS
SELECT id FROM t2;

Tenga en cuenta que algunos sistemas de bases de


datos, por ejemplo, Microsoft SQL Server y
PostgreSQL utilizan EXCEPT en lugar de MINUS.
Tienen la misma función. MySQL no admite el
operador MINUS.
Practia VIEW
● En el programa Workbench abrir la base de
datos de la práctica y realizar lo siguiente:

Sentencias
2.7 Vistas
vistas
Una vista en terminología SQL es una tabla que deriva de otras tablas. Esas
otras tablas pueden ser tablas base o vistas definidas anteriormente. Una vista
no existe necesariamente en formato fisico; está considerada como una tabla
virtual, en oposición a las tablas base, cuyas tuplas están realmente
almacenadas en la base de datos. Esto limita las posibles operaciones de
actualización que pueden aplicarse a las vistas, pero no ofrecen
limitación alguna al consultar una vista.
2.7 Vistas
vistas
En SQL se utiliza el comando CREATE VIEW para especificar una vista. A una vista
se le asigna un nombre de tabla (virtual), o nombre de vista, una lista de
nombres de atributos y una consulta que sirve para especificar el contenido de
la vista. Si ninguno de los atributos de la vista resulta de aplicar funciones u
operaciones aritméticas, no tenemos que especificar nombres de atributos para
la vista, puesto que serían idénticos a los de los atributos de las tablas de
definición
2.7 Vistas
vistas
Como hemos observado, la arquitectura ANSI/SPARC distingue tres niveles, que se
describen en el esquema conceptual, el esquema interno y los esquemas externos.
Hasta ahora, mientras creábamos las tablas de la base de datos, íbamos
describiendo el esquema conceptual. Para describir los diferentes esquemas
externos utilizamos el concepto de vista del SQL.

Para crear una vista es necesario utilizar la sentencia CREATE


VIEW. Veamos su formato: Una vista en el modelo
UPDATE Customers relacional no es sino una
CREATE VIEW view_name AS tabla virtual derivada de
las tablas reales de
SELECT column1, column2, ...
nuestra base de datos, un
FROM table_name
esquema externo puede
WHERE condition; ser un conjunto de vistas.
2.7 Vistas
Actualizar vista
Una vista se puede actualizar con el comando CREATE OR REPLACE VIEW.
Sintaxis de SQL CREATE OR REPLACE VIEW.
REATE OR REPLACE VIEW
view_name AS
SELECT column1, column2, ...
FROM table_name
WHERE condition

Eliminar vista
Una vista se elimina con el comando DROP VIEW.

DROP VIEW View_name;


Practia VIEW
● En el programa Workbench abrir la base de
datos de la práctica y realizar lo siguiente:

Sentencias
Practia VIEW
● En el programa Workbench abrir la base de
datos de la práctica y realizar lo siguiente:

Sentencias
0

BIBLIOGRAFÍA

LIBROS SITIOS WEB


Marqués Mercedes. (2011). Bases de datos (1.a ed.). https://www.mysql.com/
Publicacions de la Universitat Jaume I. https://www.w3schools.com
Servei de Comunicació i Publicacions. https://www.mysqltutorial.org

Sánchez Jorge. (2004). Diseño Conceptual de Bases


de Datos guía de aprendizaje.
ttps://www.jorgesanchez.net

Silberschatz, Abraham F. Henry Korth y Sudarshan


S. (2002). Fundamentos de bases de datos
(4.a ed.). McGraw-Hill.

Ramez EImusri y Shamkllut B. Navathe. (2007).


Fundamentos de Sistemas de Bases de Datos
(5.a ed.). PEARSON EDUCACiÓN S.A, España.

También podría gustarte