Está en la página 1de 7

Ejercicios de SQL2

Consultas con Operadores

Realiza las siguientes consultas en SQL con la tabla PERSONAS.


create table personas(
cod_hospital integer,
dni integer primary key,
apellidos varchar(50),
funcion varchar(30),
salario integer,
localidad varchar(20));

1.- Mostrar todos los datos de todas las personas.


select * from personas

2.- Obtén el DNI, apellidos y función de todas las personas.


select dni, apellidos, funcion from personas;

3.- Mostrar los apellidos select apellidos from personas where


localidad='LORCA'; de las personas que vivan en LORCA.

4.- Mostrar los apellidos de las personas que vivan en MURCIA o LORCA
select apellidos from personas where localidad='LORCA' or
localidad='MURCIA';

5.- Seleccionar los datos de aquellas personas que vivan en MURCIA y tengan
un salario superior a los 1500 euros.
select * from personas where localidad='MURCIA' andsalario>1500

6.- Mostrar los datos de las personas que vivan en MURCIA, tengan un salario
superior a los 1500 euros y sean DIRECTORES.
select * from personas where localidad='MURCIA' and salario>1500 and
funcion='DIRECTOR';
7.- Mostrar los datos de las personas cuya función sea MÉDICO ordenados por
apellidos descendentemente.
Select*from personas where función=’MEDICO’ order by apellidos desc;

8.- Mostrar los datos de todas las localidades que hay en la tabla personas sin
repeticiones (debes emplear la cláusula DISTINCT)
Select distinct localidad from personas;
9.- Mostrar los datos de las personas que tengan un salario superior a 1500
euros y sean médicos. Ordenar la salida por salario descendentemente.
Select*from personas where salario>1500 and function=’MEDICO’ order by
salario;

10.- Seleccionar aquellas personas cuyo apellido comience por M.


Select apellidos from personas where apellidos like ‘M%’;

11.- Mostrar los datos de las personas que tengan una M en el apellido y cuya
función sea CONSERJE
Select *from personas where apellidos like ‘%M% and function=’CONSERJE’;

12.- Mostrar aquellas personas que tengan un salario entre 1500 y 200 euros.
Select * from personas where salario between 200 and 1500;
13.- Seleccionar los datos de aquellas personas cuya función sea MÉDICO o
DIRECT
Select * from personas where función in (‘MEDICO’,’DIRECTOR’); OR (utilizar
el operador IN)

14.- Obtener los datos de aquellas personas cuya función no sea CONSERJE
(utilizar el operador NOT IN) y tengan un salario superior a los 1500 euros,
ordenados por apellido descendentemente.
Select*from personas where función not in (‘CONSERJE’)and salario>1500
order by apellidos desc;

15.- Mostrar los datos de las personas que sean de MURCIA o CARTAGENA y
que pertenezcan al hospital número 1.
Select* from personas where localidad IN(`MURCIA,’’CARTAGENA’) and
cod_hospital=1;

17.- Con una consulta devuelve los apellidos de todas las personas. Al lado
debe aparecer la longitud de cada apellido.
Select apellidos, length(apellidos) from personas;

18.- Obtener los datos de las personas que trabajen en los hospitales 1 ó 2 y
tengan un salario superior a 1500 euros.
select * from personas where cod_hospital in (1,2) and salario>1500;

19.- Visualizar los datos de aquellas personas que no trabajen en el hospital


número 2 y que sean de MURCIA.
select * from personas where cod_hospital not in (2) and localidad='Murcia';

A partir de la tabla ALUMNOS1 realiza las siguientes consultas en SQL.


create table alumnos1(

Expediente INTEGER primary key,


nombre varchar(50),
localidad varchar(50),
fecha_nac date,
direccion varchar(50),
curso INTEGER,
nivel varchar(10),
faltas INTEGER);

1.- Muestra todos los datos de todos los alumnos.


select * from alumnos;
2.- Muestra el nombre, localidad y fecha de nacimiento de todos los alumnos.
select nombre, localidad, fecha_nac from alumnos;

3.- Muestra el nombre de todos los alumnos. En el resultado de la consulta, la


columna “Nombre” debe aparecer con la etiqueta “Nombre y apellidos” (ALIAS
DE COLUMNAS).
select nombre as 'nombre y apellidos' from alumnos;
4.- Obtén el nombre y el número de faltas multiplicado por 2 de todos los
alumnos (COLUMNAS CALCULADAS). En el resultado de la consulta, la
columna faltas debe aparecer con la etiqueta “Faltas de asistencia” (ALIAS DE
COLU
select nombre, faltas*2 as 'faltas de asistencia' from alumnos;MNAS)

5.- Consulta los datos de los alumnos que son de Lorca.


select * from alumnos where localidad='lorca';

6.- Obtén los datos de los alumnos que son de Murcia o Alhama de Murcia.
select * from alumnos where localidad='murcia' or localidad='alhama de murcia';

7.- Obtén los datos de los alumnos que son de Murcia y están en el primer
curso de E.S.O.
select * from alumnos where localidad='murcia' and curso='1' and nivel='ESO';

8.- Muestra los alumnos que son de Lorca, están en segundo curso de
Bachillerato y tienen más de 10 faltas.
select * from alumnos where localidad='lorca' and curso='2' and nivel='bachiller'
and faltas>10;

9.- Obtén los datos de aquellos alumnos que son de Murcia ordenados por
nombre.
select * from alumnos where localidad='murcia' order by nombre;

10.- Obtén los datos de todos los alumnos ordenados por nivel, y dentro de
cada nivel por curso.
select * from alumnos order by nivel, curso;

11.- Muestra los datos de aquellos alumnos que tengan más de 10 faltas en
primer o segundo curso.
select * from alumnos where curso in('1','2') and faltas>10;
12.- Muestra los datos de todos aquellos alumnos que tengan menos de 10
faltas en 3º o 4º curso y además sean de Murcia.
select * from alumnos where curso in('3','4') and localidad='murcia' and
faltas<10;

13.- Obtén con una consulta todos los cursos que hay sin repeticiones
(DISTINCT).
select DISTINCT curso,nivel from alumnos;

14.- Obtén los datos de los alumnos que no tengan 10 faltas en 1º de E.S.O.
select * from alumnos where curso='1' and nivel='eso' and faltas!='10';

15.- Muestra los datos de aquellos alumnos cuyo nombre empiece por la letra
'B'.
select * from alumnos where nombre like 'B%';

16.- Con una consulta obtén los alumnos que son de Murcia y cuyo nombre
termina con una letra 'O'.
select * from alumnos where localidad='murcia' and nombre like '%O';

17.- Muestra los datos de todos aquellos alumnos que están en 1º curso de
E.S.O. Y tienen una letra 'U' en la segunda posición del nombre.
select * from alumnos where curso='1' and nivel='eso' and nombre like "_U%";

18.- Obtén los datos de los alumnos cuya columna “Faltas” es nula.
select * from alumnos where faltas is null;

19.- Muestra los datos de aquellos alumnos que tienen entre 10 y 20 faltas
(BETWEEN). Ordena el resultado por nombre.
select * from alumnos where faltas between 10 and 20 order by nombre;

20.- Muestra los datos de los alumnos que tienen entre 10 y 20 faltas y además
son de Murcia.
select * from alumnos where faltas between 10 and 20 and localidad='murcia';

21.- Muestra los datos de los alumnos que tienen entre 10 y 20 faltas, son de
Murcia y están matriculados en 1º de E.S.O.
select * from alumnos where faltas between 10 and 20 and localidad='murcia'
and curso='1' and nivel='eso';

22.- Con una consulta muestra los datos de los alumnos cuyas faltas sean
menores que 10 y mayores que 20.
select * from alumnos where faltas<10 or faltas>20;

23.- Muestra los datos de los alumnos cuya fecha de nacimiento comprenda los
años 1993 y 1994. Ordena el resultado por nombre.
select * from alumnos where fecha_nac between '1993-01-12' and '1994-12-31'
order by nombre;

24.- Muestra los datos de los alumnos que sean de primer o segundo curso (no
importa que sean de E.S.O. O Bachiller). Utiliza el operador IN.
select * from alumnos where curso in('1','2');

25.- Obtén los datos de aquellos alumnos que sean de tercer o cuarto curso y
sean de Murcia. Utiliza el operador IN.
select * from alumnos where curso in('3','4') and localidad='murcia';

26.- Muestra los datos de los alumnos que no sean de E.S.O, ordenados por
curso y por nombre descendentemente. Utiliza el operador IN.
select * from alumnos where not nivel='eso' order by curso, nombre desc;

27.- Muestra los datos de los alumnos que sean de primer o segundo curso y
no sean de Bachiller. Ordena el resultado por nombre.
select * from alumnos where not nivel='bachiller' and curso in ('3','4') order by
nombre;
28.- Obtén los datos de los alumnos cuyo nombre empiece por la letra 'J', que
tengan más de 10 faltas y no sean de Bachiller. Ordena el resultado por curso,
y dentro de cada curso, por nombre.
select * from alumnos where nombre like 'J%' and faltas>10 and nivel='eso'
order by curso,nombre;

29.- Con una consulta obtén el expediente, nombre, curso y nivel de todos los
alumnos ordenado por curso, nivel ascendentemente y nombre
descendentemente cuyo nivel no sea 'BACHILLER'.
select expediente, nombre, curso, nivel from alumnos where nivel='eso' order
by curso, nivel asc, nombre desc;

30.- Con una consulta obtén el nombre de cada alumno en mayúscula cuya
localidad sea Murcia.
select upper(nombre) from alumnos where localidad='murcia';

31.- Con una consulta concatena el nombre de cada alumno y la localidad y


sustituye 'BACHILLER' por 'Bachillerato'.
select concat(nombre,localidad), replace(nivel,'BACHILLER','BACHILLERATO')
as nivel from alumnos;

También podría gustarte