sql basico
DESCRIPTION
sqlTRANSCRIPT
1
Alberto Ruizwww.albertoruiz.es
SQL Básico para
Aplicaciones Educativas
2
Elementos de la base de datos
TABLA: Estructura de datos con información homogénea. Se compone de filas y columnas
Una base de datos relacional es un conjunto de tablas relacionadas entre sí.
3
Elementos de la base de datos
TABLA
Registros
Campos
4
Lenguaje SQL
¿Para qué sirve?
SELECT INSERTUPDATEDELETEDROP
El único inofensivo es SELECT
5
Introducir consultas SQL
Escuela Consultas > Nueva > Experto
IES2000 F8
6
Nombres de las Tablas
Escuela Consulta > Nueva > Guiado
IES2000 F6
7
La consulta más sencilla
Consultar a una tabla SELECT * FROM ALUMNOS
Coger solo ciertos campos SELECT Nombre+" "+Apellidos FROM ALUMNOS
Pedro es de Lerma (Burgos)
8
Filtrando registros con WHERE
Sin WHERE, coge todos los registrosCon WHERE puedo coger aquellos que
cumplan ciertas condiciones
SELECT * FROM ALUMNOS WHERE Localidad = ‘Burgos’ AND Fecha_Nacimiento > {06/30/1990} (en IES2000)
SELECT * FROM ALUMNOS WHERE Loca = ‘Burgos’ AND F_Naci > “06/30/1990” (en Programa Escuela)
9
Ordenando
ORDER BY permite ordenar alfabéticamente por campos
SELECT * FROM ALUMNOS WHERE Localidad = ‘Burgos’ AND Fecha_Nacimiento > {06/30/1990} ORDER BY Localidad DESC, Apellidos, Nombre
10
IN
La cláusula IN permite especificar una lista en una cláusula WHERE
SELECT * FROM ALUMNOS WHERE Localidad IN (‘Burgos’, ‘Lerma’,’Briviesca’)
11
Subconsultas
Permiten crear una lista para una cláusula IN mediante una consulta
SELECT * FROM alumnos WHERE matricula IN (SELECT matricula FROM matricul WHERE anno=2007)
12
Consultas a dos tablas
Una consulta a dos tablas da como resultado el producto de ambas
El producto de dos tablas es otra tabla con todos los campos de las dos tablas, repitiendo la segunda tabla tantas veces como registros tiene la primera.
Es necesario filtrar con WHERE por un campo común a ambas tablas.
IES2000: SELECT nombre, grupo FROM alumnos,matricul WHERE alumnos.matricula=matricul.matricula and anno=2007
13
Ejemplos 2 tablas IES2000
Docentes actuales SELECT nombre FROM profesor, docentes
WHERE profesor.codigo=docentes.codigo AND docentes.anno=2007
Alumnos de 2CSELECT nombre, grupo FROM alumnos, matricul
WHERE alumnos.matricula=matricul.matricula AND matricul.grupo='2C' and matricul.anno=2007
14
Ejemplos 2 tablas IES2000
Notas finales de 2CSELECT matricul.matricula, grupo, materia,nota
FROM matricul, notas WHERE matricul.matricula=notas.matricula AND matricul.grupo='2C' and notas.evaluacion='F' and notas.anno=2007 and matricul.anno=2007
15
Funciones agregadas
COUNTSUMAVGMAXMIN
GROUP BYHAVING
16
Ejemplos F. agregadas IES2000
Número de alumnos por localidad
SELECT localidad_nacimiento, COUNT (localidad_nacimiento) FROM alumnos GROUP BY localidad_nacimiento HAVING COUNT(localidad_nacimiento)>3 ORDER BY COUNT(localidad_nacimiento) DESC
Nota media de un alumnoSELECT AVG(VAL(nota)) FROM notas WHERE
anno=2007 AND evaluacion='F' AND matricula=671
17
Ejemplos Funciones agregadas
Calcular la edad de un alumnoCalcular la media de la edad de los
alumnosContar el número de alumnos
extranjerosContar el número de alumnos mayores
de edadContar el número de alumnos de un
grupo con tres o más suspensos
18
Exportar a Excel
Escuela Icono disquete > Tipo XLS
IES2000 Exportar > Paradox
19
Ejemplos de consultas
Escuela Consultas > Existentes
IES2000 F8 > Vista tab
20
Vincular correspondencia
Exportar a Excel o AccessEn Word
Mostrar barra ‘Combinar Correspondencia’ Abrir origen de datos Insertar campos combinados
21
Tablas Principales IES2000
ALUMNOSMATRICULNOTAS IMPARTEHORARIOSGRUPOSFALTASALPROFESORDOCENTESMATERIAS
22
Tablas Principales ESCUELA
Alumnos / halumnosProfedg / hprofedgHistóricas comienzan por h Listas comienzan por l