Mostrando entradas con la etiqueta DML. Mostrar todas las entradas
Mostrando entradas con la etiqueta DML. Mostrar todas las entradas

sábado, 11 de abril de 2015

Ejercicios - Empleados & Departamentos

















El modelo de datos que se usara para las consultas está reflejado en el siguiente modelo E-R.



Crea las tablas 

departamento
Campo
Tipo de Dato
Descripción
Dptonro
int4
Número del departamento
Esla clave primaria de la tabla
Dptonom
varchar(30)
Nombre del departamento
Dptoubi
varchar(40)
Ubicación del departamento.


empleado
Campo
Tipo de Dato
Descripción
empnro (PK)
int4
Número del empleado
Es la clave primaria de la tabla
empnom
varchar(60)
Nombre del empleado
empcar
varchar(30)
Cargo del empleado
empsup
int4
Número del jefe del empleado.
Clave foránea que referencia (cíclicamente) la tabla empleado
empfco
date
Fecha de contratación
empsal
decimal(11,2)
Salario empleado
comm
decimal(11,2)
Comisión
dptonro
int4
Número del departamento al que el empleado está adscrito.
Clave foránea que referencia la tabla departamento



Alimenta las tablas


departamento



empleado



Consultas
1.    Muestre los datos de los empleados.
 
2.       Liste los departamentos.
 
3.       Halle la información de los empleados con el cargo de Secretaria.
 
4.       
Halle la información de los empleados con el cargo de Secretaria., pero ordenados por el nombre.
 
5.       Obtén el nombre y salario de los empleados.
 
6.       Muestra los departamentos, ordenados por el nombre.
 
7.       Muestra el nombre de los departamentos, ordenados de forma ascendente por la ciudad.
 
8.       Muestra el nombre de los departamentos, ordenados de forma descendente por la ciudad.
 
9.       Obtén el cargo y nombre de los empleados, ordenados por el salario.
 
10.   Lista el cargo y nombre de los empleados, ordenados por el cargo y salario.
 
11.   Obtén el cargo y nombre de los empleados, ordenados por el cargo inversamente y salario ascendente.
 
12.   Obtenga los salarios y las comisiones de los empleados en el departamento número 30.
 
13.   Obtenga los salarios y las comisiones de los empleados en el departamento número 30, ordenados por la comisión.
 
14.   Obtén las distintas comisiones que hay.
 
15.   Obtenga los nuevos salarios que resultarían de sumar a los empleados del departamento 30 una gratificación de 100000.
 
16.   Obtenga los nuevos salarios que resultarían de sumar a los empleados del departamento 30 una gratificación de 100000, pero mostrando también el salario anterior.
 
17.   Hallar los empleados que tienen una comisión superior a la mitad de su salario.
 
18.   Hallar los empleados cuya comisión es menor o igual que el 25% del sueldo.
 
19.   Haga que en cada fila figure 'Nombre:' y 'Puesto:' anteponiéndose a su respectivo valor.
 
20.   Hallar el salario y la comisión de los empleados cuyo número de empleado supera a 7500.
 
21.   Hallar el salario, la comisión y el salario total (salario + comisión) de los empleados con comisión, ordenados por el número del empleado.
 
22.   Hallar el nombre de los empleados que teniendo un salario superior a 1000000, tienen como director al empleado de código 7698.
 
23.   Calcula y muestra el porcentaje que supone la comisión sobre el salario total ordenado por el nombre.
 
24.   Muestra los empleados del departamento 10, cuyo nombre no contiene la cadena "anrri".
 
25.   Buscar y mostrar los empleados que no son supervisados por ningún otro.
 
26.   Muestra los nombres de los departamentos que no sean Ventas ni Investigación, ordenados por ubicación.
 
27.   Deseamos conocer el nombre de los empleados y el código del departamento de las secretarias que no trabajan en el departamento 10, y cuyo salario es superior a 800000, ordenado por fecha de contratación.
 
28.    Halla los datos de los empleados que, o bien su nombre empieza por A y su salario es superior a 1000000, o bien reciben comisión y trabajan en el departamento 30.
 
29.   Lista los nombres y fecha de contratación de aquellos empleados que no son vendedores.
 
30.   Suponiendo que el año próximo la subida del sueldo de cada empleado será del 6%, y el siguiente del 7%, halla los nombres y el salario actual,  del año próximo y del siguiente, de cada empleado.

Sentencia Select



Sentencia select

select [ distinct]  | * | expresion[ as alias] | nombrecolumna[, ...]
from nombretabla [, ...]
[ where condicion]
[ group by expresion[, ...] ]
[ having condicion[, ...] ]
[ order by expresion[ asc | desc ]

Seleccionar todo

select * from tablename;

EL asterisco * significa que queremos todas las columnas de la tabla.

A continuación podemos ver el resultado de la petición: 

select * from categoria;

La sentencia select se utiliza para seleccionar datos de una base de datos.



Seleccionar columnas

select nombrecolumna1,nombrecolumna2 as alias
from nombretabla;

En el siguiente ejemplo pedimos la identificación, nombre y contacto de todos los proveedores. 

A continuación podemos ver el resultado de la petición, 

select proveedorid, nombreprov, contacto from proveedores;


Selección condicionada

La sentencia where se usa para extraer sólo los registros que cumplan con una condición. Funciona como un filtro.

Sintaxis de la sentencia SQL WHERE

SELECT * | nombrecolumna | expresion as alias
FROM nombretabla
WHERE nombrecolumna operador valor;


Ejemplo de la sentencia SQL WHERE

En este ejemplo, estamos pidiendo todos los registros de la tabla productos que tengan existencias mayores a 100. Conseguiremos los resultados que cumplan esa condición.

A continuación podemos ver el resultado de la petición, 

select * from productos where existencia > 100;





Resultados ordenados

La claúsula ORDER BY se utiliza para ordenar los resultados a través de una o más columnas.

La claúsula ORDER BY ordena los registros de manera ascendente por defecto. Para hacerlo de manera descendente, se puede utilizar la claúsula DESC.

Sintaxis de la claúsula SQL ORDER BY

select nombrecolumna ,...,| * | expresion as alias
from nombretabla
order by nombrecolumna, nombrecolumna asc|desc;


Ejemplo de la claúsula ORDER BY

En este ejemplo ordenamos la tabla productos en orden alfabético utilizando la descripción:

select * 
from productos
order by descripcion asc;


Selección condicionada multiple or / and

La sentencia where se usa para extraer sólo los registros que cumplan con una condición. Funciona como un filtro.

Sintaxis de la sentencia SQL WHERE

SELECT * | nombrecolumna | expresion as alias
FROM nombretabla
WHERE nombrecolumna operador valor or | and nombrecolumna operador valor;

En este ejemplo, estamos pidiendo todos los registros de la tabla productos que tengan existencias mayores a 100 pero que sean menores de o iguale que 300. Conseguiremos los resultados que cumplan esa condición.

A continuación podemos ver el resultado de la petición, 


select * from productos where existencia > 100 and categoriaid=100;


select * from productos where existencia > 100 or categoriaid=100;




Selección condicionada a una lista de valores

La sentencia where se usa para extraer sólo los registros que cumplan con una condición dada por una lista de valores. Funciona como un filtro.

Sintaxis de la sentencia SQL WHERE

SELECT * | nombrecolumna | expresion as alias
FROM nombretabla
WHERE nombrecolumna operador valor or | and nombrecolumna operador valor;

En este ejemplo, estamos pidiendo todos los registros de la tabla productos que tengan existencias mayores a 400, 90 o 40;.

A continuación podemos ver el resultado de la petición, 


select * from productos where existencia in (400, 90, 40);


Selección condicionada a un rango


La sentencia where se usa para extraer sólo los registros que cumplan con una rango de valores. Funciona como un filtro.

Sintaxis de la sentencia SQL WHERE

SELECT * | nombrecolumna | expresion as alias
FROM nombretabla
WHERE nombrecolumna between valor and valor;

En este ejemplo, estamos pidiendo todos los registros de la tabla productos que tengan existencias 40 y 100.

A continuación podemos ver el resultado de la petición, 


select * from productos where existencia between 40 and 100;




Selección condicionada a un patrón



La sentencia where se usa para extraer sólo los registros que cumplan con un patrón. 

Sintaxis de la sentencia SQL WHERE

SELECT * | nombrecolumna | expresion as alias
FROM nombretabla
WHERE nombrecolumna like {patron};

LIKE le permite hacer una búsqueda basada en un patrón en vez de especificar exactamente lo que se desea.

{patrón} generalmente consiste en comodines. Aquí hay algunos ejemplos:

Comodín      _     el underscore representa 1 caracter.
Comodín      %     representa muchos caracteres.


  • 'A_Z': Toda línea que comience con 'A', otro carácter y termine con 'Z'. Por ejemplo, 'ABZ' y 'A2Z' deberían satisfacer la condición, mientras 'AKKZ' no debería (debido a que hay dos caracteres entre A y Z en vez de uno).
  • 'ABC%': Todas las líneas que comienzan con 'ABC'. Por ejemplo, 'ABCD' y 'ABCABC' ambas deberían satisfacer la condición.
  • '%XYZ': Todas las líneas que terminan con 'XYZ'. Por ejemplo, 'WXYZ' y 'ZZXYZ' ambas deberían satisfacer la condición.
  • '%AN%': : Todas las líneas que contienen el patrón 'AN' en cualquier lado. Por ejemplo, 'LOS ANGELES' y 'SAN FRANCISCO' ambos deberían satisfacer la condición.




En este ejemplo, estamos pidiendo todos los registros de la tabla productos que su nombre comience por 'Sal'.

A continuación podemos ver el resultado de la petición, 





select * from productos where descripcion like 'Sal%';


En este ejemplo, estamos pidiendo todos los registros de la tabla productos que su nombre tenga 'll' en alguna parte.

A continuación podemos ver el resultado de la petición, 





select * from productos where descripcion like '%ll%';




Resultados ordenados por ?


Si necesitamos enumerar el resultado en un orden particular utilizamos la clausula order by. Esto podría ser en orden ascendente, en orden descendente, o podría basarse en valores numéricos o de texto.

Sintaxis de la sentencia SQL WHERE

select * | nombrecolumna | expresion as alias
from  nombretabla
where condicion 
order by nombrecolumna;

En este ejemplo, estamos pidiendo todos los registros de la tabla productos que tengan existencias 40 y 100 ordenadas por la descripción.

A continuación podemos ver el resultado de la petición, 


select * 
from productos 
where existencia between 40 and 100 
order by descripcion;







lunes, 22 de septiembre de 2014

DML - Lenguaje de Manipulación de Datos


Se refiere a los comandos que permiten a un usuario manipular los datos de las tablas, es decir, consultar tablas, añadir filas, borrar filas y actualizar columnas.















Metodología de la programación 
Editorial: Alfaomega

Programaciòn en C
Editorial: Mc Graw Hill

introducciòn a las base de datos relacionales
Editorial: Visión Libros

 Fundamentos De Bases De Datos
Editorial: Mc Graw Hil