Código utilizado para la creación de la base de datos
CREATE DATABASE msql1
USE msql1
CREATE TABLE Emple (emp_no INT PRIMARY KEY, apellido VARCHAR(50) NOT NULL, oficio
VARCHAR(30), dir INT, fecha_alt DATE, salario INT, comision INT, dept_no INT);
CREATE TABLE depart (dept_no INT, dnombre VARCHAR(30), loc VARCHAR(30));
INSERT INTO Emple (emp_no,apellido,oficio,dir,fecha_alt,salario,comision,dept_no) VALUES
(7369,'SÁNCHEZ','EMPLEADO',7902,'1990/12/17',1040,NULL,20);
INSERT INTO Emple (emp_no,apellido,oficio,dir,fecha_alt,salario,comision,dept_no) VALUES
(7499,'ARROYO','VENDEDOR',7698,'1990/02/20',1500,390,30);
INSERT INTO Emple (emp_no,apellido,oficio,dir,fecha_alt,salario,comision,dept_no) VALUES
(7521,'SALA','VENDEDOR',7698,'1991/02/22',1625,650,30);
INSERT INTO Emple (emp_no,apellido,oficio,dir,fecha_alt,salario,comision,dept_no) VALUES
(7566,'JIMÉNEZ','DIRECTOR',7839,'1991/04/02',2900,NULL,20);
INSERT INTO Emple (emp_no,apellido,oficio,dir,fecha_alt,salario,comision,dept_no) VALUES
(7654,'MARTÍN','VENDEDOR',7698,'1991/09/29',1600,1020,30);
INSERT INTO Emple (emp_no,apellido,oficio,dir,fecha_alt,salario,comision,dept_no) VALUES
(7698,'NEGRO','DIRECTOR',7839,'1991/05/01',3005,NULL,30);
INSERT INTO Emple (emp_no,apellido,oficio,dir,fecha_alt,salario,comision,dept_no) VALUES
(7782,'CEREZO','DIRECTOR',7839,'1991/06/09',2885,NULL,10);
INSERT INTO Emple (emp_no,apellido,oficio,dir,fecha_alt,salario,comision,dept_no) VALUES
(7788,'GIL','ANALISTA',7566,'1991/11/09',3000,NULL,20);
INSERT INTO Emple (emp_no,apellido,oficio,dir,fecha_alt,salario,comision,dept_no) VALUES
(7839,'REY','PRESIDENTE',NULL,'1991/11/17',4100,NULL,10);
INSERT INTO Emple (emp_no,apellido,oficio,dir,fecha_alt,salario,comision,dept_no) VALUES
(7844,'TOVAR','VENDEDOR',7698,'1991/09/08',1350,0,30);
INSERT INTO Emple (emp_no,apellido,oficio,dir,fecha_alt,salario,comision,dept_no) VALUES
(7876,'ALONSO','EMPLEADO',7788,'1991/09/23',1430,NULL,20);
INSERT INTO Emple (emp_no,apellido,oficio,dir,fecha_alt,salario,comision,dept_no) VALUES
(7900,'JIMENO','EMPLEADO',7698,'1991/12/03',1335,NULL,30);
INSERT INTO Emple (emp_no,apellido,oficio,dir,fecha_alt,salario,comision,dept_no) VALUES
(7902,'FERNÁNDEZ','ANALISTA',7566,'1991/12/03',3000,NULL,20);
INSERT INTO Emple (emp_no,apellido,oficio,dir,fecha_alt,salario,comision,dept_no) VALUES
(7934,'MUÑOZ','EMPLEADO',7782,'1992/01/23',1690,NULL,10);
INSERT INTO depart (dept_no,dnombre,loc) VALUES (10,'CONTABILIDAD','SEVILLA');
INSERT INTO depart (dept_no,dnombre,loc) VALUES (20,'INVESTIGACIÓN','MADRID');
INSERT INTO depart (dept_no,dnombre,loc) VALUES (30,'VENTAS','BARCELONA');
INSERT INTO depart (dept_no,dnombre,loc) VALUES (40,'PRODUCCIÓN','BILBAO');
14. Seleccionar de la tabla EMPLE los empleados cuyo apellido empiece por ‘A’.
SELECT *
FROM dbo.Emple
WHERE apellido LIKE 'A%'
15. Seleccionar de la tabla EMPLE los empleados cuyo apellido termine por ‘Z’.
SELECT *
FROM dbo.Emple
WHERE apellido LIKE '%Z'
16. Seleccionar de la tabla EMPLE aquellas filas cuyo APELLIDO empiece por ‘A’ y el OFICIO tenga
una ‘E’ en cualquier posición.
SELECT *
FROM dbo.Emple
WHERE apellido LIKE 'A%' AND oficio LIKE '%E%'
17. Seleccionar los empleados cuyo salario esté entre 1000 y 2000. Utilizar el operador BETWEEN.
SELECT *
FROM dbo.Emple
WHERE salario BETWEEN 1000 AND 2000
18. Obtener los empleados cuyo oficio sea ‘VENDEDOR’ y tengan una comisión superior a 1000.
SELECT *
FROM dbo.Emple
WHERE oficio = 'VENDEDOR' AND comision > 1000
19. Seleccionar los datos de los empleados ordenados por número de departamento, y dentro de
cada departamento ordenados por apellido.
SELECT *
FROM dbo.Emple
ORDER BY dept_no, apellido asc
20. Número y apellidos de los empleados cuyo apellido termine por ‘Z’ y tengan un salario superior
a 3000.
SELECT emp_no, apellido
FROM dbo.Emple
WHERE apellido LIKE '%Z' AND salario > 3000
21. Datos de los departamentos cuya localización empiece por ‘B’.
SELECT *
FROM dbo.depart
WHERE loc LIKE 'B%'
22. Datos de los empleados cuyo oficio sea ‘EMPLEADO’, tengan un salario superior a 1000 y
pertenezcan al departamento número 10.
SELECT *
FROM dbo.Emple
WHERE oficio = 'EMPLEADO' AND salario > 1000 AND dept_no = '10'
23. Mostrar los apellidos de los empleados que no tengan comisión.
SELECT apellido
FROM dbo.Emple
WHERE comision IS NULL
24. Mostrar los apellidos de los empleados que no tengan comisión y cuyo apellido empiece por
‘J’.
SELECT apellido
FROM dbo.Emple
WHERE comision IS NULL AND apellido LIKE 'J%'
25. Mostrar los apellidos de los empleados cuyo oficio sea VENDEDOR’, ‘ANALISTA’ o ‘EMPLEADO’.
SELECT apellido
FROM dbo.Emple
WHERE (oficio = 'VENDEDOR') OR (oficio = 'ANALISTA') OR (oficio = 'EMPLEADO')
26. Mostrar los apellidos de los empleados cuyo oficio no sea ni ‘ANALISTA’ ni ‘EMPLEADO’, y
además tengan un salario mayor de 2000.
SELECT apellido
FROM dbo.Emple
WHERE oficio <> 'ANALISTA'
AND oficio <> 'EMPLEADO'
AND salario > 2000