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. ●