Documentos de Académico
Documentos de Profesional
Documentos de Cultura
Con PostgreSQL
Clave compuesta
horallegada time,
horasalida time,
primary key(placa,horallegada)
);
La cláusula especifica:
Su sintaxis es:
references TABLA2(CAMPOCLAVEPRIMARIA)
on delete OPCION
on update OPCION;
Definición de clave primaria y foránea
consultas
libros antiguos y queremos una lista con todos los libros que
tenemos. En este caso las dos tablas tienen las mismas
columnas, lo único que varía son las filas, además queremos
obtener una lista de libros (las columnas de una de las tablas) con
las filas que están tanto en libros nuevos como las que están en
libros antiguos, en este caso utilizaremos este tipo de operación.
Unión de tablas
La unión de tablas
Unión de tablas
El operador UNION sirve para obtener a partir de dos tablas con las mismas
columnas, una nueva tabla con las filas de la primera y las filas de la segunda.
SELECT idfab,idproducto
FROM productos
WHERE existencias = 0
UNION ALL
SELECT fab,producto
FROM pedidos
WHERE year(fechapedido) = 1990
ORDER BY idproducto
Unión de tablas
union
Los encabezados del resultado de una unión son los que se especifican en el primer
"select".
Unión de tablas
Note que existe un profesor que también está presente en la tabla
"alumnos"; dicho registro aparece una sola vez en el resultado de
"union". Si queremos que las filas duplicadas aparezcan, debemos
emplear "all":
union all
union
order by domicilio;
Unión de tablas
Podemos agregar una columna extra a la consulta con el encabezado
"condicion" en la que aparezca el literal "profesor" o "alumno" según si
la persona es uno u otro:
union
La unión de tablas
Muestra los primeros 4 registros, 0,1,2 y 3.
Si tipeamos:
select trunc(34.7);
retorna "34".
La unión de tablas
retorna "34.77".
Funciones matemáticas
Ejemplo:
select round(10.4);
retorna "10
Funciones para el manejo de cadenas
retorna 'HOLA'.
posición.
Ejemplo:
select substring('Hola Mundo' from 1 for 2);
retorna 'Ho’.
El producto cartesiano
SELECT *
FROM pedidos,clientes
WHERE pedidos.clie=clientes.numclie
Producto cartesiano de tablas
Las columnas que aparecen en la cláusula WHERE de nuestra consulta
anterior se denominan columnas de emparejamiento ya que permiten
emparejar las filas de las dos tablas. Las columnas de emparejamiento
La unión de tablas
La unión de tablas
Cláusula INNER JOIN de tablas
El INNER JOIN es otro tipo de composición de tablas, permite emparejar filas de
La sintaxis es la siguiente:
SELECT *
La unión de tablas
Cláusula INNER JOIN de tablas
Se pueden definir varias condiciones de
emparejamiento unidas por los operadores AND y OR poniendo
cada condición entre paréntesis. Ejemplo: La unión de tablas
SELECT *
FROM pedidos INNER JOIN productos ON (pedidos.fab =
productos.idfab) AND (pedidos.producto = productos.idproducto)
Cláusula INNER JOIN de tablas
Se pueden combinar más de dos tablas, en este caso hay
que sustituir en la sintaxis una tabla por un INNER JOIN
completo. La unión de tablas
Por ejemplo:
SELECT *
FROM (pedidos INNER JOIN clientes ON pedidos.clie =
clientes.numclie) INNER JOIN empleados ON pedidos.rep =
empleados.numemp
Cláusula INNER JOIN de tablas
SELECT empleados.*,ciudad
FROM empleados, oficinas
WHERE empleados.oficina = oficinas.oficina
Nos pasa lo mismo, el empleado 110 tiene un valor nulo en el campo oficina y
no aparecerá en el resultado.
Cláusula LEFT JOIN de tablas
Pues en los casos en que queremos que también aparezcan las filas que no
SELECT *
Con el ejemplo anterior obtenemos una lista de los empleados con los datos de
su oficina, y el empleado 110 que no tiene oficina aparece con sus datos
La unión de tablas
Cláusula RIGHT JOIN de tablas
Ejemplo
SELECT *
FROM empleados RIGHT JOIN oficinas ON empleados.oficina =
La unión de tablas
oficinas.oficina
La unión de tablas
Cláusula FULL JOIN de tablas
La unión de tablas
El anidamiento del INNER JOIN de tablas
Los anidamientos de JOIN de distinta naturaleza no funcionan siempre, a
veces depende del orden en que colocamos las tablas, en estos casos lo
mejor es probar y si no permite el anudamiento, cambiar el orden de las
La unión de tablas
SELECT *
FROM clientes INNER JOIN (empleados LEFT JOIN oficinas ON
empleados.oficina = oficinas.oficina) ON clientes.repclie =
empleados.numclie