jueves, 6 de diciembre de 2012

Resolución ejercicio final (7) - Listar Clientes sin email.


RESOLUCIÓN DEL PUNTO 4 DEL ENUNCIADO DEL EJERCICIO FINAL.


En esta entrada resolveremos el punto 4:
Listar Clientes sin email.





El proceso para localizar a los clientes sin email, depende de como se hayan creado la tabla clientes de la base de datos.

En concreto dependerá de si se permite el valor NULL y de cual sea el valor por defecto.

Si no se permite el valor NULL, el campo que no contenga un email tendrá el valor "" (cadena vacía, lo cual es distinto de NULL)

En el caso de que se permita el valor NULL y no se asigne un valor por defecto entonces el campo en el que aún no se ha escrito un email contendrá el valor NULL.

Sin embargo si en ese campo se escribe un email, y posteriormente se elimina, existe la posibilidad de que almacene una cadena vacía.

NOTA: Para estar seguro de identificar el campo que no contenga un email,se deberán comprobar dos valores de forma simultánea, el valor NULL y la cadena vacía.

Por lo tanto el campo podrá contener el valor NULL  o el valor cadena vacía, por lo tanto será necesario utilizar el operador OR.

select * from clientes where email = "" OR email is NULL;


En este caso el resultado es un Empty set (un DataSet vacío), debido a que todos los clientes tienen email.

Resolución ejercicio final (6) - Buscar un Proveedor por nombre, código y DNI/CIF.


RESOLUCIÓN DEL PUNTO 3 DEL ENUNCIADO DEL EJERCICIO FINAL.


En esta entrada resolveremos el punto 3:
Buscar un Proveedor por nombre, código y DNI/CIF.

El proceso es idéntico al punto 2, pero sobre la tabla proveedores.

La tabla proveedores tiene la siguiente estructura:




Buscaremos proveedores por código, para lo cual se usará una condición de igualdad dentro de la subcláusula WHERE.

Para localizar un cliente por su código se usará la siguiente consulta:

select * from proveedores where id_proveedor = 1;




La búsqueda por DNI es idéntica a la búsqueda por código de cliente, con la salvedad de que el campo nif es te tipo texto, por lo que el dato a localizar se deberá indicar entrecomillado (se podrán usar comillas simples o dobles).

select * from proveedores where nif = "11111111A";



La búsqueda por nombre, al igual que la búsqueda por descripción de los artículos, debe buscar datos por contenido, mediante el operador LIKE y los comodines % y _.

select * from proveedores where nombre LIKE "%distri%";



Resolución ejercicio final (8)



RESOLUCIÓN DEL PUNTO 5 DEL ENUNCIADO DEL EJERCICIO FINAL.


En esta entrada resolveremos el punto 5:
Listar Clientes con email.





Al igual que al localizar los clientes sin email, para localizar los clientes con email será preciso comprobar dos condiciones.

Por un lado que el campo no es nulo.
select * from clientes where email is not NULL; 

Sin embargo con esta condición aparecerán en el listado los clientes a los que se les ha borrado el email o a los que se les ha inicializado el email a una cadena vacía.

Por lo tanto será preciso comprobar también aquellos campos que sean distintos de la cadena vacía.

select * from clientes where email <> "";

Para que la consulta conjunta funcione es preciso unirlas mediante el operador AND.

select * from clientes where email is not NULL AND email <> "";



Resolución ejercicio final (5) - Buscar un Cliente por nombre, código y DNI/CIF.

RESOLUCIÓN DEL PUNTO 2 DEL ENUNCIADO DEL EJERCICIO FINAL.


En esta entrada resolveremos el punto 2:
Buscar un Cliente por nombre, código y DNI/CIF.

La tabla clientes tiene la siguiente estructura:



Buscaremos clientes por código, para lo cual se usará una condición de igualdad dentro de la subcláusula WHERE.

Para localizar un cliente por su código se usará la siguiente consulta:

select * from clientes where id_cliente = 1;




La búsqueda por DNI es idéntica a la búsqueda por código de cliente, con la salvedad de que el campo nif es te tipo texto, por lo que el dato a localizar se deberá indicar entrecomillado (se podrán usar comillas simples o dobles).

select * from clientes where nif = "11111111A";




La búsqueda por nombre, al igual que la búsqueda por descripción de los artículos, debe buscar datos por contenido, mediante el operador LIKE y los comodines % y _.

select * from clientes where nombre LIKE "%maria%";



miércoles, 5 de diciembre de 2012

Resolución ejercicio final (4) - Buscar un Artículo por nombre, familia, código y código de barras.

Resolución del punto 1 del enunciado del ejercicio final.

En una base de datos las consultas más sencillas, suelen ser las que incluyen una sola tabla.

Empezaremos resolviendo las consultas a una única tabla, correspondientes al enunciado de este ejercicio.

Resolveremos el punto 1:
Buscar un Artículo por nombre, familia, código y código de barras.

A continuación se muestra la descripción de los campos de la tabla articulos. (Ver esquema)



Se trata de obtener los artículos que cumplan las condiciones.

En este caso las dos últimas condiciones solo mostrarán un artículo, mientras que las otras dos condiciones pueden corresponderse a uno o más artículos.

Para obtener un artículo correspondiente a un código determinado, se tendrá que usar una condición de igualdad con el campo id_articulo.

Por ejemplo para obtener el artículo cuyo id_articulo sea 17, la consulta es:

select * from articulos where id_articulo = 17;



Del mismo modo para obtener el artículo cuyo código de barras es 3259154376612, que se corresponde al mismo artículo, la consulta es:

select * from articulos where codigo_barras = 3259154376612;




En cuanto a la búsqueda por familia, también se usa una condición de igualdad, pero en este caso el resultado puede ser más de un artículo.

Nota: En SQL se pueden usar indistintamente las comillas dobles (tecla del número 2) o las simples (apóstrofe inglés, tecla del signo de cierre de interrogación ?)

En este caso la consulta es:

select * from articulos where familia = "Bebidas";



El caso más complicado de este primer punto es la búsqueda por nombre, la cual no  se suele implementar con una condición de igualdad, sino con una de similitud, mediante el operador LIKE.

Nota: Para indicar que se desea permitir la existencia de otros caracteres se pueden usar los comodines % para cualquier cantidad de caracteres (incluso ninguno) y _ para indicar un único carácter. Siendo el más usado el %.
En Access los comodines son los mismos que en el sistema Operativo MSDOS * y ?.

Si se desea encontrar un texto que comience por la cadena introducida se usará cadena%, mientras que si lo que se desea es que contenga a la cadena se usará %cadena%, siendo este el caso más habitual.

En este caso la consulta es:

select * from articulos where nombre LIKE "%chocolate%";





miércoles, 28 de noviembre de 2012

Gestión de usuarios y privilegios en MySQL

En esta entrada os dejo los enlaces de los tres vídeos, en los que se muestra como crear, modificar y eliminar usuarios, así como la forma de gestionar sus permisos.

Mysql: usuarios parte1 - www.ofimaticaparatorpes.com
http://www.youtube.com/watch?v=Lf5eg2J-Xf0&feature=related



Mysql: usuarios parte 2 - www.ofimaticaparatorpes.com
http://www.youtube.com/watch?v=Z6Pp2OTWCi0&feature=related



Mysql: usuarios parte 3 - www.ofimaticaparatorpes.com
http://www.youtube.com/watch?v=yLFTj9c7aq8&feature=relmfu


viernes, 23 de noviembre de 2012

Resolución ejercicio final (3)

En este caso y como complemento al post anterior (http://bbdd2012.blogspot.com.es/2012/11/resolucion-ejercicio-final-2.html) os dejo un volcado (dump) de la Base de Datos del ejercico del Cash.

En este volcado, se incluyen las instrucciones de creación de las tablas, así como las de inserción de datos, para poder proceder a crear las consultas que se han solicitado en el enunciado del proyecto.

Descargar volcado de Base de Datos del ejercicio del Cash

Nota:
Se trata de un fichero SQL, con el volcado de los datos.

El proceso para utilizarlo, pasa por crear una nueva Base de Datos, e importar los datos desde este fichero, proceso que se puede realizar fácilmente desde PhpMyAdmin.

Paso 1:

Paso 2: