Base de Datos
[email protected]
www.leobravo.cl/ayudantia
Laboratorio – Introducción SQL
Anteriormente
Servidor: ssh
[email protected]
createdb $nombre_base_datos
psql -U $usuario -W $nombre_base_datos
alter role $usuario password '$nueva_clave'
\d
\?
\q
Laboratorio – Introducción SQL
Hoy
- Importar Base de Datos de ejemplo en FN3
ubicada en el directorio 'compartido'
- Introducción SQL + Ejercicios
● Crear tablas
● Consultar tablas
● Insertar datos en tablas
● Actualizar datos en tablas
Laboratorio – Introducción SQL
createdb clima_userXX
user01
user02
user03
user03
Laboratorio – Introducción SQL
Algunas instrucciones
Hoy
CREATE
INSERT
SELECT
Prox
DELETE
UPDATE
ALTER
Laboratorio – Introducción SQL
Crear Tabla
CREATE TABLE nombre_tabla (
nombre_atributo1 tipo_atributo1,
nombre_atributo2 tipo_atributo2,
...
);
Laboratorio – Introducción SQL
Crear Tabla con Llave Primaria
CREATE TABLE cities (
city varchar(80) primary key,
location point
);
Laboratorio – Introducción SQL
Crear Tabla con Llave Foranea
CREATE TABLE weather (
city varchar(80) references cities(city),
temp_lo int,
temp_hi int,
prcp real,
date date
);
Laboratorio – Introducción SQL
INSERTAR
INSERT INTO tabla
( atributo1, atributo2, ...)
VALUES
('string', numero, 'date', 'time')
Laboratorio – Introducción SQL
INSERTAR
INSERT INTO cities
(city, location)
VALUES
('San Francisco', '(-194.0, 53.0)');
Laboratorio – Introducción SQL
INSERTAR
INSERT INTO weather
(city, temp_lo, temp_hi, prcp, date)
VALUES
('San Francisco', 43, 57, 0.0, '1994-11-29');
Laboratorio – Introducción SQL
INSERTAR
INSERT INTO weather
(city, temp_lo, temp_hi, prcp, date)
VALUES
('Berkeley', 45, 53, 0.0, '1994-11-28');
Laboratorio – Introducción SQL
1 – importar BDD de ejemplo “elearning_profesor.sql”
Ejecutar bdd_import.sh
Entrar a la base de datos con:
psql -W elearning_$usuario
Laboratorio – Introducción SQL
https://cacoo.com/
Laboratorio – Introducción SQL
CONSULTA
SELECT atributo(s)
FROM tabla(s)
WHERE condicion(es)
Laboratorio – Introducción SQL
CONSULTA
SELECT *
FROM usuarios
WHERE id_rol=1;
Laboratorio – Introducción SQL
CONSULTA
SELECT *
FROM evaluaciones
WHERE id_curso=1 and id_user=11;
Laboratorio – Introducción SQL
CONSULTA
SELECT usuarios.nombre, roles.nombre
FROM usuarios, roles
WHERE usuarios.id_rol=roles.id;
Laboratorio – Introducción SQL
CONSULTA
SELECT usuarios.nombre, cursos.nombre
FROM usuarios, cursos, inscritos
WHERE usuarios.id_rol=2 and
usuarios.id=inscritos.id_usuario and
inscritos.id_curso=cursos.id;
Laboratorio – Introducción SQL
Nombre y correo de los ayudantes de los cursos?
CONSULTA
Laboratorio – Introducción SQL
CONSULTA
SELECT usuarios.nombre, usuarios.correo,cursos.nombre
FROM usuarios, cursos, inscritos
WHERE usuarios.id_rol=3 and
usuarios.id=inscritos.id_usuario and
inscritos.id_curso=cursos.id;
Laboratorio – Introducción SQL
Funciones en consultas:
SELECT
COUNT
SUM
AVG
MAX
MIN
FROM tabla WHERE condición
Laboratorio – Introducción SQL
CONSULTA CON FUNCIONES
SELECT max(nota)
FROM evaluaciones
WHERE id_curso=1;
Laboratorio – Introducción SQL
CONSULTA CON FUNCIONES
SELECT min(nota)
FROM evaluaciones
WHERE id_curso=1;
Laboratorio – Introducción SQL
Nombre del alumno con la peor nota en el curso
de “Programación” (Cursos.id=1) ?
Laboratorio – Introducción SQL
CONSULTA CON FUNCIONES
SELECT usuarios.nombre, min.nota
FROM usuarios,
evaluaciones,
(select min(nota) as nota from evaluaciones) as min
WHERE usuarios.id=evaluaciones.id_user
and evaluaciones.nota=min.nota
and evaluaciones.id_curso=1;
Laboratorio – Introducción SQL
CONSULTA CON FUNCIONES
SELECT usuarios.nombre, evaluaciones.nota
FROM usuarios, evaluaciones
WHERE usuarios.id=evaluaciones.id_user
and evaluaciones.id_curso=1
and evaluaciones.nota = (select min(nota) from
evaluaciones where id_curso=1);
Laboratorio – Introducción SQL
CONSULTA - AGRUPAR
SELECT atributo(s)
FROM tabla(s)
WHERE condicion(es)
GROUP BY atributo(s)
Laboratorio – Introducción SQL
Promedio de las notas de los alumnos?
Laboratorio – Introducción SQL
SELECT id_user, avg(nota)
FROM evaluaciones
WHERE id_curso=1 group by id_user
Laboratorio – Introducción SQL
SELECT usuarios.nombre, avg(nota)
FROM usuarios, evaluaciones
WHERE usuarios.id=evaluaciones.id_user
and id_curso=1
group by usuarios.nombre;
Laboratorio – Introducción SQL
SELECT usuarios.nombre, avg(nota)
FROM usuarios, evaluaciones
WHERE usuarios.id=evaluaciones.id_user
and id_curso=1
group by usuarios.nombre
order by avg desc;
Laboratorio – Introducción SQL
Laboratorio – Introducción SQL
¿Dudas?
Si:
--------------------------------------------------------------------
Sino:
Especificación del Requerimiento:
● Propósito.
● Ámbito del sistema: nombre, beneficios, objetivo,
explicar lo que el sistema hará.
● Restricciones.
Comentarios de: Base de Datos - Laboratorio - Introducción SQL (0)
No hay comentarios