Está en la página 1de 8

Capítulo 4

1. A partir de la tabla EMPLE, visualizar cuantos apellidos de los empleados empiezan por la letra A.

select count(apellido) from emple where apellido like 'A%';

2. Dada la tabla EMPLE, obtener el sueldo medio, el número de comisiones no nulas, el máximo
sueldo y el mínimo sueldo de los empleados del departamento 30. Emplear el formato adecuado para la
salida de las cantidades numéricas.

select to_char(avg(salario), '999G999D99'), count (comision), to_char (max(salario), '999G999D99'), to_char


(min(salario), '999G999D99') from emple where dept_no=30;

3. Contar las filas de LIBRERÍA cuyo tema tenga, por lo menos, una ‘a’.

select count (tema) from libreria where tema like '%a%';

4. Visualizar los temas con mayor número de ejemplares de la tabla LIBRERÍA y que tengan, al menos, una
‘e’.

select tema from libreria where ejemplares = (select max(ejemplares) from libreria) and tema like '%e%';

5. Visualizar el número de estantes distintos que hay en la tabla LIBRERÍA.

select count (distinct estante) from libreria;

6. Visualizar el número de estantes distintos que hay en la tabla LIBRERÍA de aquellos temas que contienen,
al menos, una ‘e’.

select count (distinct estante) from libreria where tema like '%e%';

7. Dada la tabla MISTEXTOS, ¿Qué sentencia SELECT se debe ejecutar para tener este resultado?
select rpad (ltrim (rtrim (titulo,'."'),'"'),50,'-^') from MISTEXTOS;

RESULTADO
-----------------------------------------
METODOLOGÍA DE LA PROGRAMACIÓN -^-^-^-^-^-^-^-^-^
INFORMÁTICA BÁSICA -^-^-^-^-^-^-^-^-^-^-^-^-^-^-^
SISTEMAS OPERATIVOS -^-^-^-^-^-^-^-^-^-^-^-^-^-^-
SISTEMAS DIGITALES -^-^-^-^-^-^-^-^-^-^-^-^-^-^-^
MANUAL DE C -^-^-^-^-^-^-^-^-^-^-^-^-^-^-^-^-^-^-

8. Visualizar los títulos de la tabla MISTEXTOS sin los caracteres punto y comillas, en minúscula, de dos
formas conocidas.

select lower (ltrim (rtrim (titulo, '."'), '"')) from MISTEXTOS;


select lower(translate(titulo,'a".','a')) from MISTEXTOS;

9. Dada la tabla LIBROS, escribir la sentencia SELECT que visualice dos columnas, una con el AUTOR y
otra con el apellido del autor.

select autor, substr(autor,0,instr(autor,',',1)-1) from libros;

10. Escribir la sentencia SELECT que visualice las columnas de AUTOR y otra columna con el nombre del
autor (sin el apellido) de la tabla LIBROS.

select autor, substr(autor,instr(autor,',',1)+1) from libros;

11. A partir de la tabla LIBROS, realizar una sentencia SELECT que visualice en una columna, primero el
nombre del autor y, luego, su apellido.

select substr(autor, instr(autor,',',1)+1), substr(autor,0,instr(autor,',',1)-1) from libros;


12. A partir de la tabla LIBROS, realizar una sentencia SELECT para que aparezcan los títulos ordenados por
su número de caracteres.

select titulo, length(titulo) from libros order by length(titulo);

13. Dada la tabla NACIMIENTOS, realizar una SELECT que obtenga la siguiente salida:

select nombre, fechanac, to_char (fechanac, '"Nacio el "dd" de "month" de "yyyy"') from NACIMIENTOS;

14. Dada la tabla LIBRERÍA, hacer una sentencia SELECT que visualice el tema, el último carácter del tema
que no sea blanco y el número de caracteres de tema (sin contar los blancos de la derecha) ordenados por
tema.

select tema, substr(tema,instr(tema,' ')-1), instr(tema,' ')-1 from libreria order by tema;

15. A partir de la tabla NACIMIENTOS, visualizar en una columna el NOMBRE seguido de su fecha de
nacimiento formateada (quitar blancos del nombre).

select concat (rtrim (nombre), to_char (fechanac, '"Nacio el "dd" de "month" de "yyyy')) from NACIMIENTOS;
16. Convertir la cadena ‘01051998’ a fecha y visualizar su nombre de mes en mayúsculas.

select to_char(to_date('01051998','ddmmyyyy'),'MONTH') from dual;

17. Visualizar aquellos temas de la tabla LIBRERÍA cuyos ejemplares sean 7 con el nombre de tema de
‘SEVEN’. El resto de temas que no tengan 7 ejemplares se visualizarán como están.

select tema, ejemplares, decode (ejemplares,7,'SEVEN',tema) "CODIGO" from libreria;

18. A partir de la tabla EMPLE, obtener el apellido de los empleados que lleven más de 35 años trabajando.

select apellido from emple where months_between(sysdate,fecha_alt)/12>35;

19. Seleccionar el apellido de los empleados de la tabla EMPLE que lleven más de 34 años trabajando en el
departamento de VENTAS.

select apellido from emple where months_between(sysdate,fecha_alt)/12>34 and dept_no=(select dept_no from
depart where dnombre='VENTAS');
20. Sustituye la población de los alumnos de Madrid por Madrid Centro.

select apenom, replace (pobla,'Madrid','Madrid Centro') from alumnos;

21. Visualiza el nombre de la tabla alumnos con las vocales en mayúsculas y


las consonantes en minúsculas.

select translate(lower(apenom),'aeiou','AEIOU') from alumnos;

22. Visualiza el primer apellido y el nombre de los alumnos.

select concat(substr(apenom,1,instr(apenom,' ')-1),substr(apenom,instr(apenom,','))) from alumnos;

23. Obtener los empleados cuyo oficio sea vendedor, analista, director.

select apellido,oficio from emple where oficio='VENDEDOR' or oficio='ANALISTA' or oficio='DIRECTOR';


24. Obtener los empleados cuyo salario sea mayor de 200000 en los
departamentos 20 o 30, obtener su salario, comisión y la suma de ambos
en una sola columna.

select apellido, concat(salario,concat('----',nvl(comision,0))) as "salario y comision", salario+nvl (comision,'0') as


total from emple where salario>200000 and (dept_no= 20 or dept_no=30);

25. Visualizar el apellido de los empleados y visualizar quien es su


Director

select apellido, decode(dir,'7782','CEREZO','7698','NEGRO','7566','JIMENEZ','NO TIENE DIRECTOR') from


emple;

26. Visualiza los apellidos y oficios de los empleados que tienen el mismo
oficio que Cerezo y Gil, pero que no aparezcan ellos.

select apellido, oficio from emple where oficio in (select oficio from emple where apellido in('GIL','CEREZO')) and
apellido not in ('GIL','CEREZO');

27. ¿Visualiza el último empleado de la tabla emple?

select emp_no, apellido, oficio, dir, fecha_alt, salario, comision, dept_no from emple where emp_no=(select
max(emp_no) from emple);
28. ¿Cuánto dinero emplea la empresa en salarios, contando la comisión?

select sum(salario)+sum(comision) as "TOTAL SALARIOS" from emple;

29. Obtener los apellidos la primera letra en mayúscula y las demás en


minúscula y, el oficio en minúsculas.

select initcap (apellido), lower(oficio) from emple;

30. Obtener los oficios junto con la inicial del apellido de los empleados.

select oficio, substr(apellido,1,1) as oficio from emple;


31. Obtener el apellido y salario de los empleados de la siguiente manera:

select concat(concat(concat('El apellido es ', apellido),' con el salario: '), to_char(salario,'999G999D99')) as "apellido
y salario" from emple;

También podría gustarte