16
1) Crear una nueva BD en MySQL llamada CssCustom 2) Seleccionar la BD CssCustom 3) Crear una tabla llamada usuario con la siguiente estructura: create table usuario( id_nombre int(10) not null primary key, nombre char(250) not null, correo char(250) not null, direccion char(250) not null, telefono char(16) null, usuario char(50) not null, password char(50) not null); Tecleamos desc usuario para mostrar la estructura de la tabla 4) Insertamos los siguientes datos en la tabla usuario desde NAVICAT o MySQL con el comando Insert: 5) Abrimos el programa Navicat y creamos una nueva conexión llamada: css_custom 6) Abrimos nuestra conexión 7) Ya hemos abierto la conexión y se nos muestran las diferentes bases de datos que contiene MySql y que podremos manipular desde Navicat: 8) Lo que a nosotros nos interesa por ahora es la base de datos que creamos en MySQL css_custom, nos situamos sobre ella y damos clic derecho y seleccionamos la opción Open data base como se muestra a continuación:

Práctica II MySQL and Navicat

Embed Size (px)

DESCRIPTION

Bienvenidos a la 2a Evaluación Parcial de la Asignatura de Bases de Datos III, la cual corresponde al Bloque 4 Procesamiento Distribuido de Consultas, que comprende el periodo del 17 de Marzo al 16 de Abril de 2015.

Citation preview

1) Crear una nueva BD en MySQL llamada CssCustom2) Seleccionar la BD CssCustom3) Crear una tabla llamada usuario con la siguiente estructura:create table usuario(id_nombre int(10) not null primary key,nombre char(250) not null,correo char(250) not null,direccion char(250) not null,telefono char(16) null,usuario char(50) not null,password char(50) not null);

Tecleamos desc usuario para mostrar la estructura de la tabla

4) Insertamos los siguientes datos en la tabla usuario desde NAVICAT o MySQL con el comando Insert:

5) Abrimos el programa Navicat y creamos una nueva conexin llamada: css_custom6) Abrimos nuestra conexin

7) Ya hemos abierto la conexin y se nos muestran las diferentes bases de datos que contiene MySql y que podremos manipular desde Navicat:

8) Lo que a nosotros nos interesa por ahora es la base de datos que creamos en MySQL css_custom, nos situamos sobre ella y damos clic derecho y seleccionamos la opcin Open data base como se muestra a continuacin:

9) En el rbol de la base de datos abierta se nos muestra el contenido de la misma, podemos observar que aparece la tabla usuario que creamos previamente, demos clic sobre la tabla:

10) Como Podemos ver del lado derecho aparece la misma tabla y en la parte de encima varias opciones seleccionemos la opcin design table:

11) Bueno si recordamos un poco veremos que el resultado que se nos muestra lo habamos obtenido antes con el comando Desc usuario en la consola de MySql, solo que de una manera primitiva. La forma grfica en la que trabaja Navicat nos da cierta facilidad sobre el diseo de nuestra tabla.

12) Recordamos que para observar el contenido de la tabla desde MySQL tenamos que recurrir al comando select * from usuario y se nos desplegaba el contenido de la tabla; con esta herramienta basta seleccionar la opcin open table o dar doble clic sobre la tabla, como se muestra en la siguiente imagen:

13) Como podemos observar se ha desplegado el contenido de la tabla que con anterioridad hemos capturado, y esto queda de la siguiente forma:

14) Bien en el semestre anterior solo utilizamos llaves primarias, ahora utilizaremos llaves forneas y aprenderemos a crear referencias de uno a uno y de uno a muchos, lo cual resulta ser muy sencillo con Navicat, por el momento adelantmonos editando la tabla usuario donde agregaremos un nuevo campo que llamaremos fk_post, con este campo haremos referencia a la nueva tabla que crearemos llamada post. Primero que nada seleccionamos la tabla usuario y damos clic en la opcin Design Table y agregamos el nuevo campo como se muestra a continuacin:

15) En la imagen anterior el campo de llave primaria aparece sealado con un color verde y sufri una modificacin, si observas bien la parte de abajo he habilitado la opcin de auto incremento, por otro lado el nuevo campo aparece de color rojo. En MySQL creamos la tabla usuario tecleando el cdigo: 1. create table usuario( 2. id_nombre int(10) not null primary key, 3. nombre char(250) not null, 4. correo char(250) not null, 5. direccion char(250) not null, 6. telefono char(16) null, 7. usuario char(50) not null, 8. password char(50) not null);

Esto implica una mayor inversin de tiempo para nosotros, adems de que la sintaxis debe escribirse correctamente, pero con Navicat se crean de manera grfica, slo es necesario dar clic en la opcin New Table como se muestra a continuacin:

16) Una vez que presionamos la opcin new table aparecer el asistente donde capturaremos los nombre, tipos y opciones de nuestros campos, tal como se muestra en la siguiente imagen:

17) Una vez capturados los datos da clic en la opcin Save aparecer un recuadro donde pondrs el nombre de la tabla, en nuestro caso ser post.

18) Ahora se mostrara la creacin de una relacin uno a uno (1:1) mediante la creacin de una llave fornea. Lo que tenemos que hacer es seleccionar la tabla usuario y dar clic en la opcin Design Table, una vez que nos encontremos en el asistente de diseo damos clic en la pestaa Foreing Keys y llenamos los datos como se muestra a continuacin y damos clic en guardar:

Los campos son: fk_post, fk_post, css_custom, post, id_post, restrict, restrictpor si no se alcanzan a apreciar en la imagen.

19) Ya tenemos relacionadas las dos tablas para ver si esto es correcto crearemos una vista, para lo cual damos clic en el men View y seleccionamos la opcin new view como se muestra en la imagen:

20) Aparece el asistente de vistas y un rea que esta remarcada con amarillo representa el rea de edicin donde escribiremos las sentencias para filtrar los datos entre ambas tablas:

21) Nosotros escribiremos sentencias SQL breves que despus Navicat transformara a otras ms especficas, empecemos tecleando esta:

22) Damos clic en la opcin Save y en el recuadro que aparece tecleamos view1:

23) Al guardar la vista nuestra herramienta genera un cdigo similar al siguiente:

24) Con la sentencia Select * from usuario, como recordar, sigue para desplegar toda la informacin contenida en la tabla usuario para ver que despus podamos realizar filtrados ms especficos entre las dos tablas, y esto es lo que muestra la sentencia anterior:

25) Como apreciamos no tenemos datos en el campo fk_post por tanto tendremos que capturarlos, pero como nuestra llave fornea depende de la tabla post primero tenemos que capturar datos en la tabla post y quedara de la siguiente forma:

26) Una vez rellenada la tabla proseguimos con el llenado del campo fk_post de la tabla usuario:

27) Los datos que capturemos debern existir en la tabla post de lo contrario cuando queramos guardar nos marcar un error. Ahora crearemos una segunda vista siguiendo los pasos que se mencionaron anterior mente para crear la vista1 y ponemos el siguiente cdigo:

28) Ahora guardamos como view2 y se nos mostrar el cdigo generado:

29) Para proseguir y mirar resultados nos disponemos a ejecutar la vista2 dando doble clic sobre la misma y nos arrojara el siguiente resultado:

30) Como podemos ver nos arroj demasiados datos siendo que solo tenemos dos usuarios y por tanto deberan de aparecer solo 2 registros, para solucionar esto utilizaremos la clusula where para filtrar solo los datos que coincida con lo que buscamos, podemos editar la view2 pero mejor crearemos una nueva para seguir practicando:

El cdigo de la vista es: select * from usuario,post where usuario.fk_post = post.id_post

31) Guardamos nuestra vista como view3 y se nos mostrara el nuevo cdigo generado:

32) Ahora si ejecutemos esta vista y miremos lo que paso:

33) Como podemos observar se nos muestran solo dos registros y en los cuales he sealado con verde los campos con los que se han enlazado cada uno de los registros de las diferentes tablas. Pero esto hasta ahora es solo para practicar pues una consulta de este tipo no nos sirve para nada, anteriormente capturamos 4 registros en la tabla post y solo 2 en la tabla usuario, pero

Qu pasara si un usuario tiene asignado ms de un post y queremos que se nos muestre esto?, claro que no podramos hacer dicha peticin realidad puesto que la relacin establecida es de 1:1.

Solucin: Lo que se tiene que hacer es crear una tercera tabla donde incorporaremos dos lleves forneas, pero antes tenemos que eliminar ciertas cosas, empecemos con la llave fornea fk_post en la tabla usuario.

Entramos en el asistente de diseo, seleccionamos la pestaa foreing keys, y damos clic en la opcin delete foreign key.

34) Ahora seleccionamos la opcin Fields y eliminaremos el campo fk_post pues ya no nos ser til y lo hacemos de esta manera:

35) Como ya eliminamos los campos y llaves que no utilizaremos ms procedemos con la creacin de la nueva tabla, la cual llamaremos usuario_post y quedar constituida de la siguiente forma:

No olvidemos que algunas llaves primarias son de tipo: Auto incremento

36) Si ya creaste la tabla y los campos con su descripcin ahora selecciona la pestaa foreing keys para crear las llaves forneas que quedaran as:

37) Lo siguiente es capturar en usuario_post la relacin entre el usuario y el post quedando de la siguiente forma:

38) Lo que hice en la tabla anterior fue asignar al usuario 1 (custom) los post 1,2,3 y al usuario2 (usuario) solo el post 4 por lo que al realizar nuestra 4 vista y al ejecutarla se debern mostrar 4 registros y cada uno con la condicin establecida. Creemos la siguiente vista:

39) La guardamos con el nombre de view4 y nos mostrar el cdigo generado por nuestra herramienta:

40) Ya podemos ejecutar nuestra vista y ver los resultados:

41) Como podemos observar los datos que se generaron si son los esperados a cada usuario se le asign el post que escribi, bueno por ultimo desechemos todas las vistas no funcionales:

Hasta aqu hemos terminado con la creacin de base de datos, tablas, registros y consultas con la herramienta Navicat