clase 6 parte 2
/* parte 2 de las clases, vamos a ver funciones /
/ las funciones reciben un dato, lo transforman y devuelven otro datos*/
/* vamos a ver las funciones escalares integradas, almacenadas, etc*/
/funciones escalares, son funciones que funcionan de a un solo valor/
select count(*) from gamers;
select id_system_user, concat(first_name,' ', last_name) as full_name from system_user;
select id_system_user, ucase(first_name), upper(last_name), lcase(first_name), lower(last_name) from system_user;
select id_system_user, ucase(first_name), reverse(first_name) from system_user;
select id_system_user, char_length(first_name), reverse(first_name) from system_user;
/* ampliar estos conocimientos conn algun resumen o w3school o luigui analytic*/
/* funciones numericas tambien se pueden aplicar */
select 34*5;
select value, (value % id_game)/100 from vote;
select value, log10((value * id_game)/100) from vote;
select value, value * id_game /100, floor(value * id_game/100), ceiling(value*id_game/100), round(value * id_game/100,0) from vote;
/* tambien tengo funciones de fecha */
select now(), curdate(), curtime(), sysdate(), current_timestamp(), dayname(now());
select str_to_date('01/01/2024', '%d/%m/%Y')
select date_add(sysdate(), interval 5 hour), date_format(sysdate(), '%D %d/%m'), datediff(now(), str_to_date('01/01/2024', '%d/%m/%Y'));
/* aca resuelven las actividades de clase minuto 1 hs 27 min */
/* act 1: unir nonmbre con apellido incluyendo los espacios */
select concat("Julieta", " ", "Vazquez") as full_name;
/* act 2 convierte tu nombre completo en minuscula y luego a mayuscula */
select lcase(concat("JULIETA", " ", "VAZQUEZ")) as full_name;
select ucase(concat("cristian", " ", "ovejero")) as full_name;
/* minuscula */
/* divide tu año de nacimiento por tu dia y mes */
select (1996/0602) as result;
select round(1996/0602) as result;
select abs(-1) as result;
select datediff(curdate(), "1996-02-06") as date_diff;
/* curdate es el estandar que te dice es dia de hoy es tal fecha /
/ averiguar que dia era cuando naciste */
select dayname("1996-02-06") as day;
select dayname("1995-01-14") as day;
/* me quedan 20' de esta clase */
/* nos pasaron la documentacion por chat */
/* ultimo tema de la clase, join */
select * from system_user as system_user
inner join user_type as ut on(ut.id_user_type = su.id_user_type)
where email like '%msu.edu';
/* el resultado con el where es 5 registros y uno de ellos no tiene tipo o id_user_type entonces vamos a usar el join*/
/* para no eliminar los datos con inner join podemos usar el left join.*/
select * from system_user as system_user
left outer user_type as ut on(ut.id_user_type = su.id_user_type)
where email like '%msu.edu';
/* si no se cumple la restriccion de la izquierda (izquierda antes del left join) por ser nulo entonces el registro se va a mostrar igual /
/ con el mismo criterio esta el right join */