— ACTIVIDAD 3 —
MANEJO DE CADENAS
Los formatos con el argumento 'longitud' devuelven una subcadena de 'longitud' caracteres desde la 'cadena', comenzando con la 'posición'.
SINTAXIS:
- substr(Cadena(String),posición,longitud).
Ejemplo: substr(carnet, 1 , 3)
-----------
* Listar los alumnos de carreras diferentes a sistemas ('070', '072', '060');
Sintaxis:
select carnet, nombre from alumno where substr(carnet, 1,3) not in ('070' , ' 072' , '060');
* Listar o visualizar los alumnos de la carrera de sistemas
Sintaxis:
select carnet, nombre from alumno where substr(carnet, 1,3) in ('070' , '072' , '060');
* Cuantos son de tecnología en redes (072)
Sintaxis:
select count(*) from alumno where substr(carnet,1,3) in ('072');
Visualizarlos:
select carnet, nombre from alumno where substr(carnet,1,3) in ('072');
* Total de alumnos que iniciaron en el primer semestre del año
Sintaxis:
select count(nombre) from alumno where substr(carnet,6,1) in ('1');
Visualizarlos:
select carnet, nombre from alumno where substr(carnet,6,1) in ('1');
* Cuantos alumnos se matricularon antes del 2010
Sintaxis:
select count(carnet) from alumno where substr(carnet,4,2) < ('10');
* Cuantos alumnos no son de tecnología
Sintaxis:
select count(*) from alumno where substr(carnet,1,2) not in ('07');
* Ordenar los alumnos por año de matricula
Sintaxis:
select * from alumno order by substr(carnet,4,2);
* Listar los alumnos que tengan menos de 20 caracteres en su nombre
Sintaxis:
select nombre from alumno where character_length(nombre) < 20;
* Listar los alumnos de tecnología que estén matriculados antes del 2007 en el primer semestre del año
Sintaxis:
select * from alumno where substr(carnet,1,2) in ('07') and substr(carnet,6,1) in('1') and substr(carnet,4,2) < ('07');
* Carnet mayor de los alumnos que aparecen en el sistema (sin incluir carrera, año de matricula, ni semestre, solo los ultimos 4 digitos).
Sintaxis:
select max(carnet) from alumno where substr(carnet,7,1);
* Carnet mayor de los alumnos que no son de Tecnología (sin incluir carrera, año de matricula, ni semestre, solo los últimos 4 dígitos)
Sintaxis:
select max(carnet) from alumno where substr(carnet,1,2) not in ('07') and substr (carnet,7,4);
* Los carnet que inicien en 088 tienen descuento del 10% de lo contrario pagan todo el valor de la matricula.
Sintaxis:
select carnet,nombre,if(carnet like'088%' , '10% descuento' , 'No descuento' ) from alumno;
select carnet,nombre,if(carnet like'088%' or carnet like '075%' , '10% descuento' , 'No descuento') from alumno;