Skip to content

Commit 06ece1c

Browse files
author
Cristina Taboada
committed
Retos Tema 2
1 parent e1df18d commit 06ece1c

File tree

1 file changed

+76
-0
lines changed

1 file changed

+76
-0
lines changed

Diff for: RetosTema2/main.js

+76
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,76 @@
1+
const mysql = require('mysql2/promise');
2+
3+
const connect = async()=>{
4+
try{
5+
const connection = await mysql.createConnection({
6+
host: 'localhost',
7+
user: 'root',
8+
password: 'Secur3MyS4QL',
9+
database: 'escuela'
10+
});
11+
12+
console.log('Conexión correcta');
13+
14+
15+
//-- Nota media
16+
const sql1 = `SELECT AVG(mark) FROM marks WHERE subject_id=1;`;
17+
const [result1] = await connection.execute(sql1);
18+
console.log('------Nota-media-asignatura-1------');
19+
console.log(result1);
20+
21+
//-- Total alumnos
22+
const sql2 = `SELECT COUNT(*) FROM students;`;
23+
const [result2] = await connection.execute(sql2);
24+
console.log('------Total-alumnos------');
25+
console.log(result2);
26+
27+
//-- Listar campos de la tabla students_groups
28+
const sql3 = `SELECT * FROM students_groups;`;
29+
const [result3] = await connection.execute(sql3);
30+
console.log('------Campos-de-la-tabla-groups------');
31+
console.log(result3);
32+
33+
//-- Eliminar todas las notas > 5 del año pasado
34+
// const sql4 = `DELETE FROM marks WHERE (mark > 5) AND (date < curdate() AND date > DATE_SUB(NOW(),INTERVAL 1 YEAR));`;
35+
// const [result4] = await connection.execute(sql4);
36+
// console.log('Notas > 5 del año pasado eliminadas');
37+
38+
//-- Listar estudiantes del año en curso
39+
const sql5 = `SELECT * FROM students WHERE year = YEAR(NOW());`;
40+
const [result5] = await connection.execute(sql5);
41+
console.log('------Estudiantes-del-año-en-curso------');
42+
console.log(result5);
43+
44+
//-- Calcular el número de profes por asignatura
45+
const sql6 = `SELECT subject_id, COUNT(*) FROM teachers GROUP BY subject_id;`;
46+
const [result6] = await connection.execute(sql6);
47+
console.log('------Profes-por-asignatura------');
48+
console.log(result6);
49+
50+
//-- Obtén el id y la nota de los alumnos que tengan un id entre 1 y 20,
51+
//-- o que tenga una nota mayor de 8 y la nota tenga fecha del año pasado.
52+
const sql7 = `SELECT student_id, mark FROM marks WHERE (student_id BETWEEN 1 AND 20) OR (mark > 8) AND (date BETWEEN curdate() AND DATE_SUB(NOW(),INTERVAL 1 YEAR));`;
53+
const [result7] = await connection.execute(sql7);
54+
console.log('------ID-entre-1y20-O-nota>8-del-año-pasado------');
55+
console.log(result7);
56+
57+
//-- Media de las notas que se han dado en el último año por asignatura.
58+
const sql8 = `SELECT subject_id,AVG(mark) FROM marks WHERE (date BETWEEN DATE_SUB(NOW(),INTERVAL 1 YEAR) AND curdate()) GROUP BY subject_id;`;
59+
const [result8] = await connection.execute(sql8);
60+
console.log('------Media-notas-ultimo-año-por-asignatura------');
61+
console.log(result8);
62+
63+
//-- Media de las notas que se han dado en el último año por alumno.
64+
const sql9 = `SELECT student_id,AVG(mark) FROM marks WHERE (date BETWEEN DATE_SUB(NOW(),INTERVAL 1 YEAR) AND curdate()) GROUP BY student_id;`;
65+
const [result9] = await connection.execute(sql9);
66+
console.log('------Media-notas-ultimo-año-por-alumno------');
67+
console.log(result9);
68+
69+
70+
}catch(err){
71+
console.log(err);
72+
await connection.end();
73+
}
74+
};
75+
76+
connect();

0 commit comments

Comments
 (0)