modulo iv - unamdocencia.fca.unam.mx/~rcastro/practica1_demo_mysql.doc · web viewservidor de base...

24
PRACTICA1 MYSQL (MSWindow) Servidor de Base de Datos DBMS Es el sistema administrador de la base de datos es conocido como sistema de administración de base de datos (DBMS) Manejador de Bases de Datos MySQL (pronunciado mai-es-quiu-el), es una manejador de bases de datos relacional bastante robusto, de código abierto bajo la licencia GPL el cual se ha convertido en el más popular hoy en día. Su origen se debió a la búsqueda por parte de los fundadores de crear un manejador de bases de datos que fuera "rápido", todavía más rapido que mSQL. Así surgió MySQL, primero como un producto de la empresa y despúes como software de dominio público. El nombre de My se debe probablemente a que la hija del cofundador Monty Widenius recibía ese sobrenombre, aunque a ciencia cierta nunca se ha revelado el origen. Por otro lado en el año 2002 MySQL tuvo un logo más original que el simple nombre, incluyendo un delfín, el cual a través de una encuesta en la página web recibió su nombre: "Sakila", de origen africano. Por qué usar MySQL ? Es importante resaltar que no se trata de una herramienta de juguete o aprendizaje, MySQL es un manejador que puede competir competir con sus famosas contrapartes comerciales: Oracle, DB2, Informix, Sybase. Básicamente los motivos por los cuales se podría optar por usar MySQL en lugar de otro manejador serían:

Upload: others

Post on 13-Jan-2020

3 views

Category:

Documents


0 download

TRANSCRIPT

Page 1: MODULO IV - UNAMdocencia.fca.unam.mx/~rcastro/Practica1_demo_MySQL.doc · Web viewServidor de Base de Datos DBMS Es el sistema administrador de la base de datos es conocido como sistema

PRACTICA1 MYSQL (MSWindow)

Servidor de Base de Datos

DBMS

Es el sistema administrador de la base de datos es conocido como sistema de administración de base de datos (DBMS)

Manejador de Bases de Datos

MySQL (pronunciado mai-es-quiu-el), es una manejador de bases de datos relacional bastante robusto, de código abierto bajo la licencia GPL el cual se ha convertido en el más popular hoy en día.

Su origen se debió a la búsqueda por parte de los fundadores de crear un manejador de bases de datos que fuera "rápido", todavía más rapido que mSQL. Así surgió MySQL, primero como un producto de la empresa y despúes como software de dominio público.

El nombre de My se debe probablemente a que la hija del cofundador Monty Widenius recibía ese sobrenombre, aunque a ciencia cierta nunca se ha revelado el origen. Por otro lado en el año 2002 MySQL tuvo un logo más original que el simple nombre, incluyendo un delfín, el cual a través de una encuesta en la página web recibió su nombre: "Sakila", de origen africano.

Por qué usar MySQL ?

 Es importante resaltar que no se trata de una herramienta de juguete o aprendizaje, MySQL es un manejador que puede competir competir con sus famosas contrapartes comerciales: Oracle, DB2, Informix, Sybase.

Básicamente los motivos por los cuales se podría optar por usar MySQL en lugar de otro manejador serían:

Es gratis Es extensible

Es robusto

Es rápido

No requiere de una gran número de recursos para funcionar (obviamente para aplicaciones a gran escala es mejor contar con una buena infraestructura)

Page 2: MODULO IV - UNAMdocencia.fca.unam.mx/~rcastro/Practica1_demo_MySQL.doc · Web viewServidor de Base de Datos DBMS Es el sistema administrador de la base de datos es conocido como sistema

Es fácil de administrar

MySQL posee varias versiones 3, 4, 5 siendo la 3 la más estable y la 5 la más experimental

Instalación

MySQL es un manejador de bases de datos relacionales de acceso libre (sin costo) pero ello no significa que sea una herramienta de baja calidad o plagada de errores.Por el contrario es una herramienta robusta y muy documentada. Existen versiones de MySQL para varias plataformas incluyendo Windows y Linux.La versión de MySQL para Windows empleada en este curso es MySQL Server 4.1 y se encuentra en el archivo setup.exe en el directorio mysql_4.1 del disco compacto del curso. Para instalarla siga el siguiente procedimiento:. Haga doble clic en el archivo de instalación, setup.exe. Aparecerá la pantallainicial del asistente de instalación de MySQL Server mostrado en la figura

2. Haga clic en el botón Next. Aparecerá el cuadro de dialogo de la figura 6.2. Aquíse establece el tipo de instalación deseada. Como se hará la instalación típicano modifique nada.

Page 3: MODULO IV - UNAMdocencia.fca.unam.mx/~rcastro/Practica1_demo_MySQL.doc · Web viewServidor de Base de Datos DBMS Es el sistema administrador de la base de datos es conocido como sistema

3. Haga clic en el botón Next. Aparecerá el cuadro de dialogo de la figura 6.3 paraconfirmar el tipo de instalación y la ubicación de los archivos

Page 4: MODULO IV - UNAMdocencia.fca.unam.mx/~rcastro/Practica1_demo_MySQL.doc · Web viewServidor de Base de Datos DBMS Es el sistema administrador de la base de datos es conocido como sistema

4. Acepte esta configuración, haciendo clic en el botón Install. Al hacerlo empezarála instalación de MySQL Server. Después aparecerá el cuadro de la figura 6.4.Aquí podemos crear una cuenta en MSQL.com o acceder a ella si ya latenemos.

Page 5: MODULO IV - UNAMdocencia.fca.unam.mx/~rcastro/Practica1_demo_MySQL.doc · Web viewServidor de Base de Datos DBMS Es el sistema administrador de la base de datos es conocido como sistema

5. No lo haremos. Hacemos clic en el botón de radio Skip Sign-Up y en el botónNext. Al hacerlo, la instalación terminará mostrando el recuadro de la figura 6.5.

Page 6: MODULO IV - UNAMdocencia.fca.unam.mx/~rcastro/Practica1_demo_MySQL.doc · Web viewServidor de Base de Datos DBMS Es el sistema administrador de la base de datos es conocido como sistema

6. En este cuadro la caja de selección Configure the MySQL Server now estáseleccionada para que terminar la instalación se proceda a configurar a MySQLServer y crear la cuenta de root (administrador). Acepte esto, presionando elbotón Finísh. Al hacerlo aparecerá la pantalla inicial del asistente deconfiguración de MySQL Server mostrada en la figura 6.6

7. Haga clic en el botón Next. Aparecerá el cuadro de la figura 6.7, permitiéndonosseleccionar el tipo de configuración. Seleccionaremos la configuración estándarseleccionando el botón de radio Standard Configuration y haciendo clic en elbotón Next. Aparecerá el cuadro de la figura 6.8.

8. En el caso de Windows 2000 y Windows XP, MySQL Server puede serinstalado como un servicio y en este cuadro la primera caja de selección: InstallAs Windows Service, nos permite aceptar su instalación como un servicio. Loaceptaremos. La segunda caja de selección, Launch the MySQL Serverautomatically, nos permite seleccionar si deseamos que arrancar a MySQLServer. Acéptelo. La tercera caja de selección permite incluir la carpeta bin deMySQL Server en la ruta de búsqueda de Windows para que podamos accedera los programas en esta carpeta desde cualquier carpeta desde una ventana deDOS. Marque la caja de selección y presione el botón Next. Aparecerá elcuadro de la figura 6.9.

Page 7: MODULO IV - UNAMdocencia.fca.unam.mx/~rcastro/Practica1_demo_MySQL.doc · Web viewServidor de Base de Datos DBMS Es el sistema administrador de la base de datos es conocido como sistema

9. En este cuadro teclee la contraseña de la cuenta de root. Tecléela de nuevopara confirmar. Deje el resto del cuadro como se muestra en la figura 9 ypresione el botón Next. Aparecerá el cuadro de la figura 6.10.

Page 8: MODULO IV - UNAMdocencia.fca.unam.mx/~rcastro/Practica1_demo_MySQL.doc · Web viewServidor de Base de Datos DBMS Es el sistema administrador de la base de datos es conocido como sistema
Page 9: MODULO IV - UNAMdocencia.fca.unam.mx/~rcastro/Practica1_demo_MySQL.doc · Web viewServidor de Base de Datos DBMS Es el sistema administrador de la base de datos es conocido como sistema

10. Aquí MySQL Server nos pide confirmación antes de proceder con laconfiguración. Clic en el botón Execute para confirmar. MySQL Serverempezará la configuración y al teminar desplegará el cuadro de la figura 6.11.Haga clic en el botón Finís para terminar cerrar el asistente.

Page 10: MODULO IV - UNAMdocencia.fca.unam.mx/~rcastro/Practica1_demo_MySQL.doc · Web viewServidor de Base de Datos DBMS Es el sistema administrador de la base de datos es conocido como sistema

La instalación fue exitosa

Ruta de programas de mySQL: C:\Archivos de programa\MySQL\MySQL Server 5.0\bin

Como accesar al manejador de la Base de Datos MySQL

Desde el menu de inicio, programas, MySQL, MySQL Server 5, MySQL Command Line Client.Entra al modo consola.Enter Password:Ingresa el password root “admin.”

- Tablas del sistema

Al instalarse MySQL Server crea una base de datos llamada mysql con varias tablas.Para ver las bases de datos existentes en el servidor podemos usar una de lasvariantes del comando show:

mysql> show databases;

La base de datos mysql contiene varias tablas empleadas para la administración delservidor. Primero se establece que se va a trabajar ella, usando el comando use,

Page 11: MODULO IV - UNAMdocencia.fca.unam.mx/~rcastro/Practica1_demo_MySQL.doc · Web viewServidor de Base de Datos DBMS Es el sistema administrador de la base de datos es conocido como sistema

tecleando:MySQL posee 3 tipos de Bases de datos

information_schema informacionmysql BD de Mysqltest BD de prueba

mysql> use mysql;

MySQL Server responde:Database changed

Indicando que la base de datos en uso es mysql. Para ver las tablas de la base dedatos mysql, usaremos el comando show, tecleando:

mysql> show tables; (para ver las tablas del sistema)

MySQL responde:+---------------------------+| Tables_in_mysql |+---------------------------+| columns_priv || db || func || help_category || help_keyword || help_relation || help_topic || host || tables_priv || time_zone || time_zone_leap_second || time_zone_name || time_zone_transition || time_zone_transition_type || user |+---------------------------+15 rows in set (0.00 sec)

Cuentas de usuario

Generalmente los DBMSs nos permiten manejar un esquema de cuentas de usuario donde tenemos el superusuario “root” seguido por los usuarios requridos para accesar la Base de Datos.

Page 12: MODULO IV - UNAMdocencia.fca.unam.mx/~rcastro/Practica1_demo_MySQL.doc · Web viewServidor de Base de Datos DBMS Es el sistema administrador de la base de datos es conocido como sistema

Una de las tablas, la tabla user, contiene la relación de los usuarios y desde dondetienen acceso a la base de datos. Para visualizar el contenido parcial o total de una omás tablas usaremos el comando select. Para listar los campos user, password y hostde la tabla teclearemos:

mysql> select user,password,host from user;

MySQL responde:+------+-------------------------------------------+-----------+| user | password | host |+------+-------------------------------------------+-----------+| root | *E3BD66E01EE21D5E235BAA48A35FEC5D42C87EB2 | localhost |+------+-------------------------------------------+-----------+1 row in set (0.00 sec)Mostrando un usuario: root con acceso local, es decir, desde la computadora que tieneMySQL Server (localhost). Note que la contraseña está encriptada.

Ahora crearemos un nuevo usuario que tendrá acceso local. Para ello usaremos elcomando insert:

mysql> insert into user (host,user,password) values ('localhost','usuario', password('contraseña'));

Donde usuario es el nombre del nuevo usuario y contraseña es su contraseña.MySQL Server responde:Query OK, 1 row affected (0.11 sec)

Los comandos muy largos pueden segmentarse en varias líneas para que los podamos visualizar más claramente. Para ello podemos presionar la tecla [Intro] cuando queramos partir la línea. Recuerde que el comando sólo termina cuando tecleamos un punto y coma (;) seguido de la tecla [Intro]. Al presionar la tecla [Intro] para partir la línea, MySQL Server nos despliega una flecha indicándonos que espera el resto del comando. Por ejemplo, el comando insert anterior pudo haberse tecleado como:

mysql> insert into user (host,user,password)-> values ('localhost', 'usuario', password('contraseña'));

insert into user (host,user,password,ssl_type,ssl_cipher,x509_issuer,x509_subject) values ('localhost', 'jose',password('con'),1,1,1,1);

Page 13: MODULO IV - UNAMdocencia.fca.unam.mx/~rcastro/Practica1_demo_MySQL.doc · Web viewServidor de Base de Datos DBMS Es el sistema administrador de la base de datos es conocido como sistema

Debido a los caches internos usados por MySQL Server, puede ser que los cambios hechos comando insert no se guarden inmediatamente en la tabla user. Para forzar la actualización inmediata de la tabla podemos usar el comando flush, tecleando:

mysql> flush privileges;mysql responde:Query OK, 0 rows affected (0.10 sec)

Para verificar que se creo el nuevo usuario, repetimos el comando select:mysql> select user, password, host from user;

mysql responde:+---------+-------------------------------------------+-----------+| user | password | host |+---------+-------------------------------------------+-----------+| root | *E3BD66E01EE21D5E235BAA48A35FEC5D42C87EB2 | localhost || usuario | *65EE8013472A455529AE1173AD495800460BA919 | localhost |+---------+-------------------------------------------+-----------+2 rows in set (0.00 sec)

Creación de una Base de DatosA continuación crearemos una base de datos llamada musica, usando el comando create. Para ello teclearemos:

mysql> create database musica;

mysql responde:Query OK, 1 row affected (0.00 sec)Para verificar que se creó la base de datos, usamos el comando show, tecleando:

mysql> show databases;mysql responde:

+-------------+| Database |+----------+| musica || mysql || test |+----------+3 rows in set (0.00 sec)Ahora usamos el comando use para usar la base de datos musicamysql> use musicamysql responde:Database changed

Page 14: MODULO IV - UNAMdocencia.fca.unam.mx/~rcastro/Practica1_demo_MySQL.doc · Web viewServidor de Base de Datos DBMS Es el sistema administrador de la base de datos es conocido como sistema

Ahora le daremos todos los privilegios de acceso local a las tablas de la base de datos musica al usuario creado en la sección anterior. Para ello usamos el comando grant:

mysql> grant all privileges on musica.*-> to usuario@localhost identified by 'contraseña'-> with grant option;Donde usuario es el nombre del nuevo usuario y contraseña es su contraseña.

mysql> grant all privileges on musica.* to root@localhost identified by 'admin' with grant option;

mysql responde:Query OK, 0 rows affected (0.06 sec)

Podemos usar el comando grant para crear un usuario y darle privilegios de acceso a una base de datos. Por ejemplo, para crear un usuario y darle acceso remoto para consultar, insertar, actualizar y borrar a las tablas de la base de datos musica desde una máquina remota teclearemos:

mysql> grant select, insert, update, delete on musica.*-> to usuario@'%' identified by 'contraseña';Donde usuario es el nombre del nuevo usuario y contraseña es su contraseña.

mysql> grant select, insert, update, delete on musica.* to root@'%' identified by 'admin';

mysql responde:Query OK, 0 rows affected (0.11 sec)Termine la sesión.

Ahora abriremos una sesión como usuario y usaremos la base de datos musica.Podemos abrir una sesión y seleccionar una base de datos al mismo tiempo con la siguiente variante de la llamada a mysql:

C:\mysql\bin>mysql -u usuario -p musicamysql responde:Enter password:

Al teclear la contraseña, mysql responde:Welcome to the MySQL monitor. Commands end with ; or \g.Your MySQL connection id is 5 to server version: 4.0.12-max-debugType 'help;' or '\h' for help. Type '\c' to clear the buffer.

Page 15: MODULO IV - UNAMdocencia.fca.unam.mx/~rcastro/Practica1_demo_MySQL.doc · Web viewServidor de Base de Datos DBMS Es el sistema administrador de la base de datos es conocido como sistema

Creación de una TablaCrearemos una tabla llamada canciones en la base de datos musica. Los campos de la tabla se muestra en el siguiente diagrama entidad – relación

clave varchar(7) clave que se le asigna titulo varchar(35) titulo de la cancion interprete varchar(35) Quien canta la cancion autorLetra varchar(35) Quien es el autor de la letra autorMusica varchar(35) Quien es el autor de la musica genero varchar(20) De que genero es la cancion album varchar(35) A que album pertenece disquera varchar(35) Que disquera la produce duracion int(10) Que duración tiene fecha date Fecha en que se dio de alta

Para crear la tabla usaremos el comando create:

mysql> create table canciones (clave varchar(7) not null, titulo varchar(35) not null, interprete varchar(35) not null, autorLetra varchar(35) not null,autorMusica varchar(35) not null, genero varchar(20) not null, album varchar(35),disquera varchar(35), duracion int(10), fecha date, primary key(clave));

Donde la expresión varchar(n) indica que el tipo del campo es una cadena de ncaracteres, la expresión not null indica que al insertar un renglón en la tabla, ese campo no puede dejarse vacío y la expresión primary key nos indica que ese campo es la llaveprimaria (de ordenamiento).mysql responde:Query OK, 0 rows affected (0.11 sec)

Para verificar que se creo la tabla canciones, veremos la lista de tablas de la base dedatos musica, mediante el comando show:

mysql> show tables;

También podemos ver los campos de la tabla canciones usando otra variante delcomando show:mysql> show columns from canciones;mysql responde:

Inserción de un Renglón en una TablaPara insertar un renglón en la tabla canciones, usaremos el comando insert:

Page 16: MODULO IV - UNAMdocencia.fca.unam.mx/~rcastro/Practica1_demo_MySQL.doc · Web viewServidor de Base de Datos DBMS Es el sistema administrador de la base de datos es conocido como sistema

mysql> insert into canciones values( 'C000003', 'The long and winding road', 'The Beatles', 'John Lennon', 'Paul McCartney', 'Balada', 'Let it be', 'Apple', 3, '1970-03-24');

Actividad: Con este comando ingresa por lo menos 5 registros mas.

mysql responde:Query OK, 1 row affected (0.00 sec)

Selección de registros

Se usa el comando select para la selección y despliegue de registros

Por ejemplo.- selecciona la clave, titulo y el interpretemysql> select clave, titulo, interprete from canciones;

Creación de Tablas a través de un Esquema Que problemas encontraste al usar el comando create ?.La creación de tablas usando el comando create desde la línea de comando, sobre todo en tablas con muchas columnas, es un proceso en el cual es fácil cometer errores al estar tecleando el comando, lo que nos obliga a empezar de nuevo cada vez que cometemos un error.

Una alternativa al uso de este comando es el de escribir lasInstrucciones SQLs para la creación de tablas en un archivo texto y hacer que mysql procese las sentencias contenidas en este archivo, tal y como lo haría si las sentencias se teclearan en la línea de comando. Un archivo con sentencias sql que deseamos que mysql ejecute, se conoce como un esquema de Base de Datos.

Actividad: Hacer un esquema “tablas_musica.sql” para crear 2 tablas en la Base de Datos musica. Las descripciones son las siguientes:

Para la tabla canciones clave varchar(7) NOT NULL default titulo varchar(35) NOT NULL default,interprete varchar(35) NOT NULL default autorLetra varchar(35) NOT NULL default autorMusica varchar(35) NOT NULL defaultgenero varchar(20) NOT NULL default

album varchar(35) default NULL,disquera varchar(35) default NULL,duracion int(10) default '0',fecha date default NULL,PRIMARY KEY (clave)

Page 17: MODULO IV - UNAMdocencia.fca.unam.mx/~rcastro/Practica1_demo_MySQL.doc · Web viewServidor de Base de Datos DBMS Es el sistema administrador de la base de datos es conocido como sistema

.

Nombre del archivo: tablas_musica.sql-- Esquema para crear las tablas `canciones` y `peliculas` en la base de-- de datos musica. La base de datos ya debe existir.---- Sintaxis para crear las tablas a partir de este esquema:---- mysql -u root -p musica < tablas_musica.sql------ Borra las tablas si ya existen--DROP TABLE IF EXISTS canciones;DROP TABLE IF EXISTS peliculas;---- Crea las tablas--CREATE TABLE canciones (clave varchar(7) NOT NULL default '',titulo varchar(35) NOT NULL default '',interprete varchar(35) NOT NULL default '',autorLetra varchar(35) NOT NULL default '',autorMusica varchar(35) NOT NULL default '',genero varchar(20) NOT NULL default '',album varchar(35) default NULL,disquera varchar(35) default NULL,duracion int(10) default '0',fecha date default NULL,PRIMARY KEY (clave)) ENGINE=InnoDB;

CREATE TABLE peliculas (clave varchar(7) NOT NULL default '',titulo varchar(35) NOT NULL default '',actor1 varchar(35) NOT NULL default '',actor2 varchar(35) default NULL,actor3 varchar(35) default NULL,actor4 varchar(35) default NULL,director varchar(35) NOT NULL default '',genero varchar(20) default NULL,productora varchar(35) default NULL,duracion int(10) default '0',fecha date default NULL,PRIMARY KEY (clave)) ENGINE=InnoDB;

Page 18: MODULO IV - UNAMdocencia.fca.unam.mx/~rcastro/Practica1_demo_MySQL.doc · Web viewServidor de Base de Datos DBMS Es el sistema administrador de la base de datos es conocido como sistema

Esquema para Insertar Renglones en TablasAl igual que en el caso de la creación de tablas, podemos crear un esquema parainsertar renglones en tablas. Por ejemplo, el recuadro siguiente muestra el contenido del archivo datos_musica.sql, un esquema con las sentencias necesarias para insertar tres renglones en la tabla canciones y dos renglones en la tabla películas.

datos_musica.sql-- Esquema para insertar renglones en las tablas `canciones` y `peliculas` en-- la base de de datos musica. La base de datos y las tablas ya deben-- existir.---- Sintaxis para insertar renglones en las tablas a partir de este esquema:---- mysql -u root -p musica < datos_musica.sql------ Datos de la tabla `canciones`--INSERT INTO canciones VALUES ('C000001','Desafinado','Joao Gilberto','JoaoGilberto','Joao Gilberto','Bossanova','Bossanova Jazz Vol1','Prodisc',3,'1970-03-24');INSERT INTO canciones VALUES ('C000002','Garota de Ipannema','Los IndiosTabajaras','Antonio Carlos Jobim','Antonio CarlosJobim','Bossanova','Bossanova Jazz Vol 1', 'Prodisc',3,'1980-12-1');INSERT INTO canciones VALUES ('C000003','The long and winding road','TheBeatles','John Lennon','Paul McCartney','Balada','Let it be','Apple',3,'1970-03-24');---- Datos de la tabla `peliculas`--INSERT INTO peliculas VALUES ('P000001','Casa Blanca','HumphreyBogart','Ingrid Bergman','','','Michael Curtiz','Drama','WarnerBrothers',102,'1942-01-01');INSERT INTO peliculas VALUES ('P000002','2001 Space Odyssey','KeirDullea','Gary Lockwood','William Sylvester','Daniel Richter','StanleyKubrick','Ciencia Ficción','Metro-Goldwyn-Mayer',141,'1968-01-01');

Los esquemas para crear tablas y para agregarle renglones a tablas puedencombinarse en un solo esquema, siempre y cuando primero se escriba la sentencia para crear una tabla y después se escriban las sentencias para agregarle renglones.

Page 19: MODULO IV - UNAMdocencia.fca.unam.mx/~rcastro/Practica1_demo_MySQL.doc · Web viewServidor de Base de Datos DBMS Es el sistema administrador de la base de datos es conocido como sistema

Ejecución de un Esquema

Pasos de construccion de una Base de Datos a partir de un esquema.

1.- En Bloc de Notas crear un archivo .SQL que ejecutará de manera automática la creación de la Base de Datos especificada2.- Poner el archivo .SQL en la carpeta de bin de MySQL : C:\Archivos de programa\MySQL\MySQL Server 5.0\bin3.- con el comando cmd entrar a DOS e ir a la carpeta de bin de MySQL4.- La sintaxis del cpmando es: Mysql –u root –p BaseDeDatos < esquema

Ejemplo: Mysql –u root –p musica < tablas_musica.sql

Nos pide la contraseña de root:5.- Revisar que la BD se haya creado entrando a MySQL