Docsity
Docsity

Prepara tus exámenes
Prepara tus exámenes

Prepara tus exámenes y mejora tus resultados gracias a la gran cantidad de recursos disponibles en Docsity


Consigue puntos base para descargar
Consigue puntos base para descargar

Gana puntos ayudando a otros estudiantes o consíguelos activando un Plan Premium


Orientación Universidad
Orientación Universidad


Elementos de Bases de datos. Introducción a SQL, Apuntes de Geografía

Asignatura: Sistemas Informáticos, Profesor: Carlos Cervigón, Carrera: Geografía e Historia, Universidad: UNED

Tipo: Apuntes

2015/2016

Subido el 19/12/2016

alelili-1
alelili-1 🇪🇸

1 documento

1 / 33

Toggle sidebar

Esta página no es visible en la vista previa

¡No te pierdas las partes importantes!

bg1
Elementos de Bases de Datos (2)
Introducción a SQL (1)
Sistemas Informáticos
Curso 2007 - 2008
Profesor: Carlos Cervigón
Apuntes basados en el material de José Luis Sierra
1
Introducción
SQL (Structured Query Language) es un lenguaje para
la definición y manipulación de datos en el modelo
relacional.
SQL es un lenguaje informático un lenguaje artificial
o formal:
Formado por un conjunto de textos denominados
sentencias del lenguaje.
Las sentencias válidas siguen unas reglas
gramaticales precisas y bien definidas.
Las sentencias tienen un significado no ambigüo y
bien definido.
pf3
pf4
pf5
pf8
pf9
pfa
pfd
pfe
pff
pf12
pf13
pf14
pf15
pf16
pf17
pf18
pf19
pf1a
pf1b
pf1c
pf1d
pf1e
pf1f
pf20
pf21

Vista previa parcial del texto

¡Descarga Elementos de Bases de datos. Introducción a SQL y más Apuntes en PDF de Geografía solo en Docsity!

Elementos de Bases de Datos (2)

Introducción a SQL (1)

Sistemas Informáticos Curso 2007 - 2008 Profesor: Carlos Cervigón Apuntes basados en el material de José Luis Sierra

Introducción

  • SQL (Structured Query Language) es un lenguaje para la definición y manipulación de datos en el modelo relacional.
  • SQL es un lenguaje informáticoun lenguaje artificial o formal : - Formado por un conjunto de textos denominados sentencias del lenguaje. - Las sentencias válidas siguen unas reglas gramaticales precisas y bien definidas. - Las sentencias tienen un significado no ambigüo y bien definido.

2

Introducción

  • Para aprender SQL (y cualquier lenguaje informático) debe aprenderse: - Su sintaxis: las reglas gramaticales que determinan que textos de todos los posibles son sentencias SQL. - Su semántica: cuál es el efecto producido por un intérprete SQL cuando ejecuta las sentencias SQL. - Su pragmática: cómo se usa SQL en casos prácticos.
  • De estos, el tercer punto (la pragmática) es lo más difícil.

Introducción

  • SQL consta de:
    • Un (sub)lenguaje de definición de datos (LDD): Proporciona sentencias para la definición y modificación de esquemas relacionales.
    • Un (sub)lenguaje de manipulación de datos (LMD): Proporciona sentencias para la modificación de tablas en la base de datos, y para la consulta de datos en dichas tablas.

6

Base de Datos de Ejemplo

Cuenta número-cuenta nombre-sucursal saldo c-101 Centro 500 c-102 Navacerrada 400 c-201 Galapagar 900 c-215 Becerril 700 c-217 Galapagar 750 c-222 M oralzarzal 700 c-305 Collado M ediano 350

Sucursal nombre-sucursal ciudad-sucursal activos Galapagar Arganzuela 7500 Centro Arganzuela 9000000 Becerril Aluche 2000 Segovia Cerceda 3700000 Navacerrada Aluche 1700000 Navas de la Asunción Alcala de Henares 1500 M oralzarzal La Granja 2500 Collado M ediano Aluche 8000000

Cliente nombre-cliente calle-cliente ciudad-cliente Abril Preciados Valsaín Amo Embajadores Arganzuela Badorrey Delicias Valsaín Fernández Jazmín León Gómez Carretas Cerceda González Arenal La Granja López Mayor Peguerinos Pérez Carretas Cerceda Rodríguez Yeserías Cádiz Rupérez Ramblas León Santos Mayor Peguerinos Valdivieso Goya Vigo

Impositor nombre-cliente número-cuenta Abril C- Gómez C- González C- González C- López C- Rupérez C- Santos C- Prestatario nombre-cliente número-préstamo Fernández P- Gómez P- Gómez P- López P- Pérez P- Santos P- Sotoca P- Valdivieso P-

Préstamo número-préstamo nombre-sucursal importe P-11 Collado M ediano 900 P-14 Centro 1500 P-15 Navacerrada 1500 P-16 Navacerrada 1300 P-17 Centro 1000 P-23 Moralzarzal 2000 P-93 Becerril 500

Estructura Básica de las

Consultas

  • Ejemplo: obtener todos los nombres de sucursales que tienen préstamos SELECT nombre-sucursal FROM Préstamo

nombre-sucursal Collado Mediano Centro Navacerrada Navacerrada Centro Moralzarzal Becerril

8

Estructura Básica de las

Consultas

  • Ejemplo: obtener los nombres de sucursales y los activos SELECT nombre-sucursal,activo FROM Sucursal

nombre-sucursal activos Galapagar 7500 Centro 9000000 Becerril 2000 Segovia 3700000 Navacerrada 1700000 Navas de la Asunción 1500 Moralzarzal 2500 Collado Mediano 8000000

Estructura Básica de las

Consultas

  • Sentencia SELECT : Forma más básica
  • Ejercicios: Escribir consultas SQL para obtener
    • Nombres de los clientes que tienen préstamos.
    • Nombres de los clientes que tienen cuentas.
    • Nombres de los clientes y sus calles.

SELECT atributo 1 , …, atributo k FROM tabla

12

Estructura Básica de las

Consultas

  • Ejemplo: obtener toda la información sobre clientes.
  • Como se hace referencia a todos los atributos de la tabla especificada en FROM , esto puede abreviarse **utilizando ***

SELECT nombre-cliente,calle-cliente, ciudad-cliente FROM Cliente

SELECT *

FROM Cliente

Estructura Básica de las

Consultas

  • Nueva sintaxis de SELECT :
  • Ejercicios:
    • Recuperar toda la información de sucursales
    • Recuperar los nombres de sucursales que tienen préstamos, con y sin duplicados.

SELECT

FROM tabla

DISTINCT

ALL

atributo 1, …, atributo k

14

Estructura Básica de las

Consultas

  • Es posible emplear operaciones aritméticas en la cláusula SELECT *(operadores +,-, y /. El operador *** es la multiplicación). Los dominios de los atributos involucrados han de ser numéricos.
  • Ejemplo: Número de cuenta y saldo en pesetas. SELECT numero-cuenta, saldo * 166. FROM Cuenta

número-cuenta saldo*166. c-101 83193 c-102 66554. c-201 149747. c-215 116470. c-217 124789. c-222 116470. c-305 58235.

Estructura Básica de las

Consultas

  • Ejemplo: Obtener los números de cuenta que tengan un saldo superior a 500 euros.
  • Se necesita un mecanismo que permita seleccionar aquellas fichas que cumplan un determinado criterio (predicado)cláusula WHERE. SELECT numero-cuenta FROM Cuenta WHERE saldo > 500 número-cuenta c- c- c- c-

18

Estructura Básica de las

Consultas

  • Predicados compuestos

Predicado Significado pred 1 and pred 2 Cierto si pred 1 y pred 2 son ambos ciertos. Falso en otro caso pred 1 or pred 2 Cierto si pred (^) 1 es cierto, o pred 2 es cierto, o lo son ambos. Falso en otro caso not pred Cierto si pred es falso. Falso en otro caso

  • Las categorías sintácticas pred 1 , pred 2 y pred son, a su vez, predicados.
  • Los operadores lógicos permiten construir predicados muy complejos. Ejemplo: saldo > 500 and nombre-sucursal <> ‘Centro’ or nombre-sucursal = ‘Galapagar’

Constante de tipo cadena de caracteres

Estructura Básica de las

Consultas

  • Problema de ambigüedad: ¿Cómo interpretar
    • Cierto cuando saldo es mayor que 500 y la sucursal no es Centro, o bien cuando la sucursal es Galapagar (independientemente del valor del saldo)…
    • … o cierto cuando saldo es mayor que 500 y, además, la sucursal no es Centro o es Galapagar?
  • El operador de negación ( not ) tiene prioridad sobre el resto, y el operador and tiene prioridad sobre or ⇒ la interpretación correcta es la primera.
  • Si se desea la segunda, debe utilizarse paréntesis:

saldo > 500 and nombre-sucursal <> ‘Centro’ or nombre-sucursal = ‘Galapagar’ ?:

saldo > 500 and ( nombre-sucursal <> ‘Centro’ or nombre-sucursal = ‘Galapagar’ )

20

Estructura Básica de las

Consultas

  • Sintaxis abreviada - op 1 >= op 2 and op 1 <= op 2 puede abreviarse como op 1 between op 1 and op 2. - not ( op 1 between op 1 and op 2 ) puede abreviarse como op 1 not between op 1 and op 2.
  • Ejemplos
    • saldo between 500 and 5000
    • saldo not between 500 and 5000

Estructura Básica de las

Consultas

Ejercicios:

  • Recuperar los números de préstamo cuyo importe exceda de 500 euros.
  • Recuperar los números de préstamo cuyo importe esté en la franja de los 500 y 1500 euros.
  • Recuperar los números de préstamo cuyo importe exceda de 1000 euros o bien hayan sido concedidos en una sucursal de Becerril.
  • Recuperar la información de las sucursales que tengan activos superiores al millón de euros, o bien que estén en la ciudad de Arganzuela.

24

Estructura Básica de las

Consultas

Préstano.número-préstamo Préstamo.nombre-sucursal Préstamo.importe Prestatario.nombre-clientePrestatario.número-préstamo P-11P-11 Collado MedianoCollado Mediano 900900 FernándezGómez P-16P- P-11P-11 Collado MedianoCollado Mediano 900900 GómezLópez P-15P- P-11P-11 Collado MedianoCollado Mediano 900900 PérezSantos P-17P- P-11P-11 Collado MedianoCollado Mediano 900900 SotocaValdivieso P-23P- P-14P-14 CentroCentro 15001500 FernándezGómez P-16P- P-14P-14 CentroCentro 15001500 GómezLópez P-15P- P-14P-14 CentroCentro 15001500 PérezSantos P-17P- P-14P-14 CentroCentro 15001500 SotocaValdivieso P-23P-

FROM Préstamo,Prestatario

Prestatarionombre-cliente número-préstamo FernándezGómez P-16P- GómezLópez P-15P- PérezSantos P-17P- SotocaValdivieso P-23P-

Préstamonúmero-préstamo nombre-sucursal importe P-11P-14 Collado MedianoCentro 9001500 P-15P-16 NavacerradaNavacerrada (^15001300) P-17P-23 CentroMoralzarzal (^10002000) P-93 Becerril 500

Estructura Básica de las

Consultas

Préstano.número-préstamo Préstamo.nombre-sucursal Préstamo.importe Prestatario.nombre-clientePrestatario.número-préstamo P-11P-11 Collado MedianoCollado Mediano 900900 FernándezGómez P-16P- P-11P-11 Collado MedianoCollado Mediano 900900 GómezLópez P-15P- P-11P-11 Collado MedianoCollado Mediano 900900 PérezSantos P-17P- P-11P-11 Collado MedianoCollado Mediano 900900 SotocaValdivieso P-23P- P-14P-14 CentroCentro 15001500 FernándezGómez P-16P- P-14P-14 CentroCentro 15001500 GómezLópez P-15P- P-14P-14 CentroCentro 15001500 PérezSantos P-17P- P-14P-14 CentroCentro 15001500 SotocaValdivieso P-23P-

WHERE Préstamo.número-préstamo = Prestatario.número-préstamo and nombre-cliente = ‘Gómez’

Préstano.número-préstamo Préstamo.nombre-sucursal Préstamo.importe Prestatario.nombre-clientePrestatario.número-préstamo P-15P-93 NavacerradaBecerril 1500500 GómezGómez P-15P-

26

Estructura Básica de las

Consultas

Préstano.número-préstamo Préstamo.nombre-sucursal Préstamo.importe Prestatario.nombre-clientePrestatario.número-préstamo P-15P-93 NavacerradaBecerril 1500500 GómezGómez P-15P-

SELECT Prestamo.número-préstamo, nombre-sucursal,importe

Préstano.número-préstamo Préstamo.nombre-sucursal Préstamo.importe P-15P-93 NavacerradaBecerril 1500500

Estructura Básica de las

Consultas

SELECT

FROM tabla 1,..., tabla k

DISTINCT

ALL

[ tabla. ] * atributo 1, …, atributo k

WHERE predicado

  • Sintaxis de SELECT para admitir múltiples tablas en la cláusula FROM.

30

Renombrado de atributos y

tablas

SELECT numero-cuenta as número, saldo * 166.386 as saldo FROM Cuenta

número saldo c-101 83193 c-102 66554. c-201 149747. c-215 116470. c-217 124789. c-222 116470. c-305 58235.

Renombrado de atributos y

tablas

  • Ejemplo: Obtener la información de todas las sucursales con un activo mayor que, al menos, una de las sucursales que están situadas en Barcelona.
  • Problema: la tabla Sucursal debe utilizarse de dos maneras distintas en esta consulta, para comparar cada ficha de la tabla con el resto!.
  • Para resolver estas situaciones SQL permite renombrar las tablas en la cláusula FROM , mediante as.

32

Renombrado de atributos y

tablas

SELECT So.* FROM Sucursal as So,Sucursal as S WHERE S1.ciudad = ‘Barcelona’ and So.activos >= S1.activos

Renombrado de atributos y

tablas

SELECT

FROM tabla 1 [as t 1 ] ,..., tabla k [as t k]

DISTINCT

ALL

[ tabla. ] * Atributo 1 [as r 1 ] , …, atributo k [as r k ]

WHERE predicado

  • Sintaxis de SELECT para admitir renombrado de atributos y tablas.

36

Orden en la presentación de

las fichas

SELECT

FROM tabla 1 [as t 1 ] ,..., tabla k [as t k]

DISTINCT

ALL

[ tabla. ] * Atributo 1 [as r 1 ] , …, atributo k [as r k ]

WHERE predicado

ORDER BY atributo 1 [ desc ],..., atributok [ desc ]

Funciones de agregación

  • Las funciones de agregación son funciones que toman una colección de valores como entrada y producen un único valor como salida.
  • SQL define las siguientes cinco funciones de agregación: - Media: avg - Mínimo: min - Máximo: max - Total: sum - Cuenta: count

38

Funciones de agregación

  • Ejemplo: Media de los saldos de las cuentas de la sucursal Galapagar SELECT avg (saldo) FROM Cuenta WHERE nombre-sucursal = ‘Galapagar’

avg(saldo)

825

Funciones de agregación

  • Las funciones de agregación pueden aplicarse también a grupos de fichas. Para ello se añade una cláusula group by , en la cuál se especifica el (o los) atributos de agrupación.
  • Ejemplo: saldos medios de las cuentas en las sucursales

SELECT avg (saldo) FROM Cuenta GROUP BY nombre-sucursal