Actividad 2
Manejo da cadenas
Devuelve una subcadena de una cadena establecida, comenzando en la posición indicada y cogiendo los datos de longitud
[000] carrera
[00] año
[0] semestre en curso
[0000] carnet
Sintaxis:
Substr(cadena(string),posicion,longitup)
Visualizar los alumnos de carreras diferentes a sistemas (070 - 072 - 060)
select carnet, nombre from alumno where substr(carnet, 1, 3) not in ('070', '072', '060');
Visualizar los alumnos de carreras que son a sistemas (070 - 072 - 060)
select carnet, nombre from alumno where substr(carnet, 1, 3) in ('070', '072', '060');
Cuantos son de tecnología de redes
select count(*)'estudiantes de tec redes' from alumno where substr(carnet, 1, 3) in ('072');
Total de alumnos que iniciaron en el primer semestre del año
select count(*)'Total alumnos del primer semestre' from alumno where substr(carnet, 6, 1) in ('1');
Listar los alumnos que se matricularon en el segundo semestre del año
select * from alumno where substr(carnet, 6, 1) in ('2');
Cuantos alumnos se matricularon antes del 2010
select count(*)'Alumnos matriculados antes del 2010' from alumno where substr(carnet, 4, 2) < ('10');
Cuantos alumnos no son de Tec en sistemas
select count(*)'Alumnos no Tec sis' from alumno where substr(carnet, 1, 2) not in ('07');
Ordenar los alumnos por año de matricula
select * from alumno order by substr(carnet, 4, 2);
Listar los alumnos que tengan menos de 20 caracteres en su nombre
select nombre from alumno where character_length(nombre) < 20;
Listar los alumnos de tec que esten matriculados antes del 2007 en el preimer semestre del año;
select * from alumno where substr(carnet, 1, 2) in ('07') and substr(carnet, 4, 2) < 07 and substr(carnet, 6, 1) in ('1');
Carnet mayor de los alumnos que aparecen en el sistema (sin incluir carrera, año de matricula, ni semestre, solo los últimos cuatro dijimos)
select max(substr(carnet, 7, 4)
)'Carnet mayor' from alumno;
carnet mayor de los alumnos de que no son de tec (sin incluir carrera, año de matricula, ni semestre, solo los últimos 4 dijitos);
select carnet,max(substr(carnet, 7, 4) where substr(carnet, 1, 2) not in ('07');
Los carnet que inician en 088 tiene descuento del 10% de lo contrario pagan todo el valor de la matricula
select * if(carnet like '088%' , '10% descuendo' , 'No descuento') from alumno;