PDF de programación - SQL Lenguajes de consulta para bases de datos

Imágen de pdf SQL Lenguajes de consulta para bases de datos

SQL Lenguajes de consulta para bases de datosgráfica de visualizaciones

Publicado el 16 de Abril del 2017
1.851 visualizaciones desde el 16 de Abril del 2017
575,8 KB
14 paginas
Creado hace 16a (31/10/2007)
SSSSQLQLQLQL



Lenguajes de consulta para bases de datos

Álgebra Relacional



Selección y proyección
Operaciones sobre conjuntos: unión, intersección, diferencia, producto
Reunión natural

Consultas SQL



Bibliografía

- C.J. Date:

“Introducción a los sistemas de bases de datos”
Pearson Educación, 2001. ISBN 968-444-419-2.


- Ramez A. Elmasri & Shamkant B. Navathe:

“Fundamentos de Sistemas de Bases de Datos”.
Addison-Wesley, 2002 [3ª edición]. ISBN 84-782-9051-6.


- Henry F. Korth, Abraham Silberschatz & S. Sudarshan:

“Fundamentos de Bases de Datos”.
Mc-Graw Hill, 2002 [4ª edición]. ISBN 84-481-3654-3.


- Olga Pons, Nicolás Marín, Juan Miguel Medina, Silvia Acid & Mª Amparo Vila:

“Introducción a las bases de datos”
Granada: Librería Fleming, 2003



Lenguajes de consulta
Lenguajes de con
sulta
Lenguajes de con
Lenguajes de con
sulta
sulta

Un lenguaje de consulta es un lenguaje

que permite al usuario solicitar información de la base de datos.



p.ej. SQL, Query-by-example…



Al trabajar con bases de datos relacionales, se utilizan dos tipos de lenguajes:


DDL [Data Definition Language]
Manipulación del esquema de la base de datos

- Creación, modificación y eliminación de tablas.

- Establecimiento de restricciones de integridad

o Restricciones sobre los valores de los atributos.
o Claves primarias.
o Claves externas.



DML [Data Manipulation Language]
Gestión de los datos almacenados en la base de datos

- Obtención de datos de la base de datos (consultas).

-

- Modificación de los datos existentes en la base de datos (actualizaciones).

- Eliminación de datos de la base de datos (borrado).


Introducción de nuevos datos en la base de datos (inserciones).

Bases de Datos

1

© Fernando Berzal

Álgebra Relacional
Álgebra Relacional
Álgebra Relacional
Álgebra Relacional



El Álgebra define operaciones que nos permiten manipular relaciones (tablas).

Las operaciones usan una o dos relaciones existentes para obtener una nueva.

El resultado de una operación puede utilizarse como entrada en otra operación.



Trabajadores



id_trabajador

nombre

tarifa_hr

tipo_de_oficio

id_supv

1235
1412
2920
3231
1540
1311
3001

F. Aguilera
A. Calvo
N. Marín
O. Pons

J.M. Medina
J.C. Cubero
D. Sánchez

12,50
13,75
10,00
17,40
11,75
15,50
8,20

Electricista
Fontanero
Carpintero

Albañil
Fontanero
Electricista

Albañil

1311
1540
null
null
null
null
3231



Selección o restricción
Selección de las tuplas que satisfacen una condición.


σtipo_de_oficio=’Electricista’(Trabajadores)

id_trabajador

nombre

tarifa_hr

tipo_de_oficio

id_supv

1235
1311

F. Aguilera
J.C. Cubero

12,50
15,50

Electricista
Electricista

1311
null

σtarifa_hr>12(Trabajadores)

id_trabajador

nombre

tarifa_hr

tipo_de_oficio

id_supv

1235
3231
1311

F. Aguilera

O. Pons

J.C. Cubero

12,50
17,40
15,50

Electricista

Albañil

Electricista

1311
null
null



Bases de Datos

2

© Fernando Berzal

Proyección
Selección de un subconjunto de atributos de una relación



πnombre, tarifa_hr, tipo de oficio (Trabajadores)

nombre

tarifa_hr

tipo_de_oficio

F. Aguilera
A. Calvo
N. Marín
O. Pons

J.M. Medina
J.C. Cubero
D. Sánchez

12,50
13,75
10,00
17,40
11,75
15,50
8,20

Electricista
Fontanero
Carpintero

Albañil
Fontanero
Electricista

Albañil



Operaciones sobre conjuntos
Como una relación es un conjunto de tuplas,
se pueden utilizar las operaciones típicas sobre conjuntos:

Unión

Intersección

Diferencia

Producto



Permite combinar datos de dos relaciones.



Forma parejas de tuplas (producto cartesiano).

Permite identificar las tuplas comunes a dos relaciones.

Identifica las tuplas de una relación que no están en otra.

X Y
x1 y1
x2 y1
x3 y2

×

A B
a1 b1
a4 b2

=



X Y A B
a1 b1
x1 y1
a4 b2
x1 y1
x2 y1
a1 b1
a4 b2
x2 y1
a1 b1
x3 y2
x3 y2
a4 b2

Bases de Datos

3

© Fernando Berzal

Reunión [natural]

La operación de reunión se usa para conectar datos de distintas relaciones
(siguiendo los enlaces que vienen determinados por las claves externas)



X A
x1 a1
x2 a1
x3 a2



X B
x1 b1
x3 b2

=

X A B
x1
a1 b1
a2 b2
x3



En realidad, la reunión se obtiene combinando el producto cartesiano con la
selección y la proyección:


Supongamos que queremos hacer la reunión natural de dos relaciones, A y
B, las cuales tienen los atributos C1, ..., Cn en común. La reunión de A
con B se obtiene realizando las siguientes operaciones:

- Se hace el producto cartesiano de A y B.

La relación resultante tendrá dos columnas para cada C1, ..., Cn.


- Se seleccionan aquellas tuplas del producto cartesiano para las cuales

los valores de las columnas C1, ..., Cn son iguales en A y en B.


- Se proyecta una sola copia de las columnas C1, ..., Cn junto a los

atributos específicos de las relaciones A y B.



Bases de Datos

4

© Fernando Berzal

BBBBase de datos
ase de datos
ase de datos
ase de datos

Biblioteca con los libros clasificados por temas
(con los temas organizados jerárquicamente)



Libro (ISBҭ, Título, Autor, Editorial, Año)

Tema (ID, Descripción, SUPER)

acerca_de (ISBҭ, ID)



Bases de Datos

5

© Fernando Berzal



Consultas SQL
Consultas SQL
Consultas SQL
Consultas SQL

Sentencia SELECT


Consultas simples

select <atributos>
from <tablas>

select *
from temas;



select título, autor
from libros;



select editorial
from libros



Bases de Datos

6

© Fernando Berzal

Eliminación de duplicados

select distinct …

select distinct editorial
from libros;



Especificación de condiciones

select …
from …
where <condición>

select título, autor, editorial
from libros
where editorial=”Prentice-Hall”;



select título, autor, año
from libros
where año>2000;



Bases de Datos

7

© Fernando Berzal

Operadores lógicos

AND, OR, NOT

select título, autor, editorial
from libros
where editorial=”Prentice-Hall”
or editorial=”Addison-Wesley”
or editorial=”Pearson”;



Valores nulos

IS NULL / IS NOT NULL

select *
from temas
where super is not null;



Expresiones aritméticas
Se pueden incluir expresiones aritméticas, tanto en la lista de atributos que
acompaña a SELECT como en las condiciones especificadas en la cláusula WHERE.

p.ej. select pedido, precio*unidades, precio*unidades*0.16



from pedidos
where precio*unidades > 100;

Bases de Datos

8

© Fernando Berzal

Producto cartesiano
Cuando incluimos varias tablas en la cláusula FROM
- Para hacer referencia a los atributos, se utiliza la notación tabla.atributo
- Cuando una tabla se repite, es necesario utilizar alias: … [AS] alias

select *
from temas t1, temas t2;



Reunión
Combinamos producto cartesiano, selección y proyección

select *
from temas as t1, temas as t2
where t1.super=t2.id;



select t1.ID as ID, t1.Descripción as Tema,

from temas as t1, temas as t2
where t1.super=t2.id;


t2.Descripción as Asignatura



Bases de Datos

9

© Fernando Berzal

Manejo de cadenas de caracteres
- Operador LIKE “...”
- Comodines



SQL
'
%
_

Access

"
*

?


Significado
Delimitación de cadenas
Cualquier cadena
Un único caracter


select *
from libros
where título like “Intro*”



select *
from libros
where isbn like "84????????"



select *
from libros
where título like "*bases de datos"



Bases de Datos

10

© Fernando Berzal

Orden de presentación de los datos
- Claúsula ORDER BY
- Orden ascendente (ASC, por defecto) y descendente (DESC)

select autor,título,año
from libros
order by autor



select año, título, autor
from libros
where título like "* bases de datos"
order by año, título



select año, título, autor
from libros
where título like "* bases de datos"
order by año desc, título



Bases de Datos

11

© Fernando Berzal



Funciones de agregación
Resumen de los datos almacenados en la base de datos

p.ej. Número de libros editados en España:


select count(*) as “Libros editados en España”
from libros
where libros.ISBN like "84*";



p.ej. Número de libros por temas


select tema, count(*) AS Libros
from acerca_de
group by tema



select temas.descripción, count(*) AS Libros
from acerca_de,temas
where acerca_de.tema = temas.id
group by temas.descripción



Bases de Datos

12

© Fernando Berzal

Otras consultas de ejemplo


Libros de bases de datos

select libros.título, libros.autor
from libros, acerca_de, temas
where libros.isbn = acerca_de.isbn
and acerca_de.tema = temas.id
and temas.descripción = "Bases de datos"
order by libros.título



Listado de libros por temas

select temas.descripción, libros.título, libros.autor
from libros,acerca_de,temas
where libros.isbn = acerca_de.isbn
and acerca_de.tema = temas.id
order by temas.descripción, libros.título



Bases de Datos

13

© Fernando Berzal
  • Links de descarga
http://lwp-l.com/pdf3035

Comentarios de: SQL Lenguajes de consulta para bases de datos (0)


No hay comentarios
 

Comentar...

Nombre
Correo (no se visualiza en la web)
Valoración
Comentarios...
CerrarCerrar
CerrarCerrar
Cerrar

Tienes que ser un usuario registrado para poder insertar imágenes, archivos y/o videos.

Puedes registrarte o validarte desde aquí.

Codigo
Negrita
Subrayado
Tachado
Cursiva
Insertar enlace
Imagen externa
Emoticon
Tabular
Centrar
Titulo
Linea
Disminuir
Aumentar
Vista preliminar
sonreir
dientes
lengua
guiño
enfadado
confundido
llorar
avergonzado
sorprendido
triste
sol
estrella
jarra
camara
taza de cafe
email
beso
bombilla
amor
mal
bien
Es necesario revisar y aceptar las políticas de privacidad