Manejo de cadenas
Los formatos con el argumento 'longitud' devuelven una subcadena de 'longitud' caracteres desde la 'cadena', comenzando en la 'posición'
sintaxis: campo a visualizar
substr(cadena(string),posición,longitud)
ejemplo: substr(carnet,1,3)
Ejemplo 2:
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')
Ejemplo 3:
cuantos son de tecnología en redes (072)
sintaxis:
select count(*) from alumno where substr(carnet,1,3) in ('072');
ejemplo 4:
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');
Ejemplo 5
listar los alumnos que se matricularon en el segundo semestre del año
sintaxis
select * from alumno where substr(carnet,6,1) in ('2');
Ejemplo 6
cuantos alumnos se matricularon antes del año 2010
sintaxis:
select count(Carnet) from alumno where substr(Carnet,4,2) < ('10');
Ejemplo 7
cuantos alumnos no son de tecnologías en sistemas
sintaxis:
select count(*) from alumno where substr(carnet,1,2) not in ('07');
Ejemplo 8
ordenar los alumnos por año y matricula
sintaxis:
select * from alumno order by substr(carnet,4,2);
Ejemplo 9
listar los alumnos que tengan menos de 20 caracteres en su nombre
sintaxis
select nombre from alumno where character_length(nombre) < 20;
Ejemplo 10
listar los alumnos de tecnología que esten matriculados antes del 2017 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');
Ejemplo 9
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(substr (carnet,7,4)) from alumno;
Ejemplo 10
carnet mayor de los alumnos que no son de tecnología( sin incluir carrera, año de matricula, ni semestre, solo los ultimos 4 digitos)
sintaxis
select max(substr(carnet,7,4)) from alumno where substr(carnet,1,2) not in ('07');
Ejemplo 11
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;