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
CONSULTA Nombre y correo de los ayudantes de los cursos?
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: COUNT SUM AVG SELECT
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. ●