Está en la página 1de 17

DAI. DAL4GHC.

EMPEZANDO CON MySql


ÍNDICE DE CONTENIDOS
1. Introducción .................................................................................................................................1
2. Variables de configuración de la Instancia del servidor Mysql. ..................................................2
2.1. Parámetros para la instancia del servidor.............................................................................3
2.2. Parámetros para el cliente de línea de comandos (pantalla negra) mysql.exe .....................9
3. ¿Qué es una cuenta de usuario en MySql?.................................................................................10
3.1. Conectarse y desconectarse del servidor............................................................................10
3.2. ¿Qué cuentas hay en un servidor después de la instalación? .............................................11
4. Gestión de las cuentas de usuarios.............................................................................................11
4.1. Creación de una cuenta de acceso a MySql .......................................................................11
4.2. Conocer los permisos para trabajar de una cuenta .............................................................12
4.3. Dar u otorgar permisos a una cuenta..................................................................................13
4.4. Quitar o revocar los permisos dados a un usuario .............................................................13
4.5. Borrar una cuenta de usuario .............................................................................................14
4.6. Cambiar la contraseña........................................................................................................14
4.7. Cambiar el nombre de un usuario ......................................................................................14
5. Usar una base de datos ...............................................................................................................15
5.1. Crear una base de datos......................................................................................................15
5.2. Usar una base de datos .......................................................................................................15
6. Creación de tablas y vistas .........................................................................................................15
6.1. Creación de tablas ..............................................................................................................15
6.2. Creación de vistas ..............................................................................................................16
7. Manipulación de datos en mysql.exe .........................................................................................17
8. Utilización de script.sql con mysql.exe .....................................................................................17

1. Introducción
Partimos del manual de referencia de la versión 5.0, en formato pdf y tamaño de papel A4 que se
puede conseguir en http://downloads.mysql.com/docs/refman-5.0-es.a4.pdf, y on line en
http://mysql.rediris.es/doc/refman/5.0/es/index.html.
Ya hemos realizado la instalación de MySql en los ordenadores del aula. Repasemos cómo ha
quedado la instalación.
Mysql arranca en Windows como un servicio de arranque automático cada vez que se arranca
Windows, porque así se ha configurado. También podría haberse configurado un arranque manual
para evitar que cargue la CPU del ordenador de clase cuando no se está utilizando.

EMPEZANDO_con_MySql_r09v02.doc Página 1 de 17
DAI. DAL4GHC.
También sabemos que hay una cuenta de superadministrador que se denomina root y que se le puso
por contraseña cmadrid.
Para una instalación desde el paquete XAMPP, el resultado es el mismo pero teniendo en cuenta
que la carpeta mysql estará dentro de la carpeta xampp, y que el usuario root estará creado sin
contraseña (es muy recomendable ponérsela).

2. Variables de configuración de la Instancia del servidor


Mysql.
En relación con la instalación de MySql, interesa tener como referencia los contenidos de los
(Apartados del manual 2.3 y 2.9 ).
El servicio de Windows que arranca la instancia del servidor lo vemos en Panel de Control ->
Herramientas administrativas -> Servicios:

Si hacemos clic en el botón derecho sobre el servicio MySQL y luego elegimos propiedades
aparece una ventana con las propiedades del servicio.

EMPEZANDO_con_MySql_r09v02.doc Página 2 de 17
DAI. DAL4GHC.

Si leemos la información de ruta de acceso al ejecutable, veremos cual es el fichero ejecutable que
es la Instancia de MySQL:
"C:\Archivos de programa\MySQL\MySQL Server 5.2\bin\mysqld-nt" --
defaults-file="C:\Archivos de programa\MySQL\MySQL Server 5.2\my.ini"
MySQL
Es el fichero C:\Archivos de programa\MySQL\MySQL Server 5.2\bin\mysqld-nt.exe.

Para poner en marcha la instancia se ha utilizado unos parámetros de configuración que están
almacenados en el fichero C:\Archivos de programa\MySQL\MySQL Server 5.2\my.ini
Los contenidos de este fichero pueden ser cambiados a mano o también mediante programas de
administración gráficos como Mysql Administrador en las carpetas Service Control y Startup
Variables, y con MySql System Tray Monitor, la opción Configure Instante.
Si abres este fichero con el editor de textos, por favor, no cambies nada si lo haces en el ordenador
del aula.
En este fichero hay varios apartados, de los cuales ahora solo vamos a ver dos. Dejamos para más
adelante los apartados de configuración para tablas MyISAM y para tablas InnoDB.
2.1. Parámetros para la instancia del servidor
# SERVER SECTION
EMPEZANDO_con_MySql_r09v02.doc Página 3 de 17
DAI. DAL4GHC.
# --------------------------------------------------------------------
# The following options will be read by the MySQL Server. Make sure
that
# you have installed the server correctly (see above) so it reads this
# file.
#
[mysqld]

# The TCP/IP Port the MySQL Server will listen on


port=3306
#Path to installation directory. All paths are usually resolved
relative to this.
basedir="C:/Archivos de programa/MySQL/MySQL Server 5.2/"

#Path to the database root


datadir="C:/Archivos de programa/MySQL/MySQL Server 5.2/Data/"

# The default character set that will be used when a new schema or
table is created and no character set is defined
default-character-set=latin1

# The default storage engine that will be used when create new tables
when
default-storage-engine=INNODB

# Set the SQL mode to strict


Sql-mode =
"STRICT_TRANS_TABLES,NO_AUTO_CREATE_USER,NO_ENGINE_SUBSTITUTION"

# The maximum amount of concurrent sessions the MySQL server will


# allow. One of these connections will be reserved for a user with
# SUPER privileges to allow the administrator to login even if the
# connection limit has been reached.
max_connections=100

Vemos que la instancia ha quedado escuchando peticiones por el puerto TCP/IP 3306, luego todos
los programas clientes que se dirijan a este servidor deben hacerlo por este puerto.
Que el software del servidor y de programas clientes como mysql.exe ha quedado en
basedir="C:/Archivos de programa/MySQL/MySQL Server 5.2/",

EMPEZANDO_con_MySql_r09v02.doc Página 4 de 17
DAI. DAL4GHC.

en cuya carptea ./bin/ será donde buscaremos programas clientes de utilidad como reparadores de
tablas, backups, administradores, etc, todos en línea de comandos (modo texto).

EMPEZANDO_con_MySql_r09v02.doc Página 5 de 17
DAI. DAL4GHC.

Que los ficheros que almacenarán los datos de la/s base/s de datos estarán en
datadir="C:/Archivos de programa/MySQL/MySQL Server 5.2/Data/", directorio que
deberemos proteger para que nadie llegue hasta él y se copie los ficheros de la base de datos. En
esta carpeta hay tantas carpetas como bases de datos estén creadas en el servidor.

EMPEZANDO_con_MySql_r09v02.doc Página 6 de 17
DAI. DAL4GHC.

En un sistema recién instalado solo estarían las carpetas mysql y test.


La segunda es una base de datos para pruebas, a la que, por defecto, tienen acceso todos los
usuarios.
La primera, mysql, es la base de datos que contiene el diccionario de datos y todos los datos
administrativos para el funcionamiento del servidor. Ha esta base de datos solo deberán tener
acceso explícito aquellos usuarios de confianza y con permisos de administración. Esta base de
datos está gestionada con el motor MyISAM. Se caracteriza porque cada tabla de la base de datos
se soporta en tres ficheros. .frm que contiene la definición de la tabla. .MYD que contiene los datos
de la tabla. .MYI que contienen los índices creados para esa tabla (por ejemplo los asociados a las
constraints PRIMARY KEY y UNIQUE). En esta base de datos están las tablas que contienen los
datos de los usuarios que se pueden conectar al sistema, es la tabla user y tablas donde se guardan
los permisos asignados a cada usuario, db, host, tables_priv, column_priv, proc_priv, etc.

EMPEZANDO_con_MySql_r09v02.doc Página 7 de 17
DAI. DAL4GHC.

Que los caracteres de texto se codificarán por defecto con default-character-set=latin1.


Que el motor de almacenamiento para nuevas tablas, siempre que no se especificique otro será
default-storage-engine=INNODB. Este motor tiene como principal característica que admite
definiciones de CONSTRAINT FOREIGN KEY … REFERENCES …
Las tablas creadas con este motor guardarán el la carpeta de la base de datos solo un fichero con el
nombre de la tabla y la extensión .FRM que contiene la definición de la tabla.

Los datos y los índices de las tablas creadas con ENGINE=INNODB se almacenan en un fichero
llamado ibdata1. Este fichero se denomina TABLESPACE de bases de datos. Junta a él hay otros
dos llamados ib_logfile1 y ib_logfile2 que almacenan/registran las sentencias SQL mediante las
cuales se hacen cambios de objetos o de datos en la base de datos, esta sentencias se denominan
TRANSACCIONES. Sacar dinero del cajero es una transacción económica respecto a mi cuenta
corriente en la bd del banco, pero consultar el saldo de mi cuenta corriente no es una transacción
económica. Crear una tabla, insertar filas, actualizar datos en las columnas de las filas, borrar filas,
son transacciones de bases de datos.

EMPEZANDO_con_MySql_r09v02.doc Página 8 de 17
DAI. DAL4GHC.

Para finalizar, en la carpeta que contiene los ficheros de datos del servidor están los ficheros
nombre.pid que almacena información sobre los procesos que se ejecutan en el Servidor asociados
a las conexiones de usuarios y peticiones de estos, y el fichero nombre.err que contiene el registro
de información generada durante el arranque y parada de la instancia del servidor. A continuación,
aparecen un extracto del contenido de este fichero.
/* Arranque */
090205 19:18:28 InnoDB: Started; log sequence number 0 3048912
090205 19:18:37 [ERROR] Fatal error: Can't open and lock privilege
tables: Table 'mysql.servers' doesn't exist
090205 19:18:37 [Note] C:\Archivos de programa\MySQL\MySQL Server
5.2\bin\mysqld-nt: ready for connections.
Version: '5.2.3-falcon-alpha-community-nt' socket: '' port: 3306
MySQL Community Server (GPL)
090205 19:18:38 [Note] SCHEDULER: Loaded 0 events

/* Parada */
090205 20:26:41 [Note] C:\Archivos de programa\MySQL\MySQL Server
5.2\bin\mysqld-nt: Normal shutdown

090205 20:26:41 [Note] SCHEDULER: Purging queue. 0 events


090205 20:26:41 InnoDB: Starting shutdown...
090205 20:26:43 InnoDB: Shutdown completed; log sequence number 0
3048912
090205 20:26:43 [Note] C:\Archivos de programa\MySQL\MySQL Server
5.2\bin\mysqld-nt: Shutdown complete

2.2. Parámetros para el cliente de línea de comandos (pantalla negra)


mysql.exe
# CLIENT SECTION

EMPEZANDO_con_MySql_r09v02.doc Página 9 de 17
DAI. DAL4GHC.
# --------------------------------------------------------------------
# The following options will be read by MySQL client applications.
# Note that only client applications shipped by MySQL are guaranteed
# to read this section. If you want your own MySQL client program to
# honor these values, you need to specify it as an option during the
# MySQL client library initialization.
#
[client]

port=3306

[mysql]

default-character-set=latin1

En las líneas anteriores especifica que cuando ejecutemos el programa cliente mysql.exe para
conectarnos al servidor utilizará por defecto el puerto TCP/IP 3306 y la codificación de caracteres
que presente en pantalla la hará con el juego latin1.

3. ¿Qué es una cuenta de usuario en MySql?


(Ver apartados del manual 5.6.5)
Un usuario o cliente que se quiera conectar a un servidor MySql debe definir su nombre y el
ordenador o conjunto de ordenadores desde los que se quiere conectar. Cada definición de una
pareja nombre_usuario@ordenador_cliente se convierte en un usuario distinto para MySql.
Después de instalado Mysql, en el servidor existe la cuenta root@localhost, que define al usuario
de nombre root y le permite conectarse sentado en el ordenador localhost, que en este caso es el
mismo que en el que está instalado el servidor. Es decir, que la primera administración hay que
hacerla "in situ", sobre el ordenador en que se ha instalado MySql.
3.1. Conectarse y desconectarse del servidor
(Ver apartados del manual 3.1, 5.6.4)
Una vez instalado el servidor, este estará funcionando como un servicio de Windows, escuchando
por el puerto TCP/IP 3306 para atender las peticiones de clientes que le lleguen por la red.
Para conectarse a un servidor, en los parámetros de conexión deberán especificarse el nombre del
host donde se ejecuta el servidor de Mysql (localhost si es en la misma máquina), el nombre del
usuario (root si es la primera vez después de la instalación, pues no habrá más cuentas de usuarios
que ésta) y la contraseña del usuario. Las siguientes líneas muestran el proceso de conexión usando
el programa cliente mysql.exe.
shell> mysql -h nombreServidorMysql -u nombreUsuario -p
Enter password: ********
Welcome to the MySQL monitor. Commands end with ; or \g.
Your MySQL connection id is 25338 to server version: 5.0.9-beta-
standard
Type 'help;' or '\h' for help. Type '\c' to clear the buffer.
mysql>
mysql>

EMPEZANDO_con_MySql_r09v02.doc Página 10 de 17
DAI. DAL4GHC.
mysql>
mysql>QUIT o EXIT [ENTER] /* PARA DESCONECTAR */

¿Cómo se sabe que usuario soy, es decir, con que nombre de usuario y de ordenador estoy
conectado?
Con la sentencias siguientes, que devuelven la combinación de
usuario@ordenador.
SELECT USER(); o
SELECT CURRENT_USER();
mysql> select user();
+----------------+
| user() |
+----------------+
| root@localhost |
+----------------+
1 row in set (0.00 sec)

3.2. ¿Qué cuentas hay en un servidor después de la instalación?


Después de la instalación, la cuenta principal es root, sin contraseña, o con la que se haya definido
durante la instalación, asociada al ordenador donde está instalado el SGBD MySql (localhost).
En un principio, podremos conectarnos con root desde el propio servidor:
Sistema>mysql –u root –p [intro]

Si conseguimos entrar seremos el super administrador.


¿Qué más usuarios pueden conectarse al servidor?
Lo podemos ver en la tabla user que está en la base de datos mysql con la siguiente sentencia:
Use mysql;
select user, host from mysql.user order by 1, 2;

Todos los usuarios que aparezcan en la lista se pueden conectar. Pero, ¿qué pueden hacer una vez
conectados?

4. Gestión de las cuentas de usuarios


(Ver apartados del manual 13.5.1.).

4.1. Creación de una cuenta de acceso a MySql


Si un usuario no está en la tabla user en la base de datos mysql, es decir, no hay una fila que tenga
el nombre de usuario y nombre del ordenador desde el que se quiere conectar, entonces habrá que
crear una cuenta de usuario específica. Lo haremos con la sentencia CREATE USER.
CREATE USER 'nombre_usuario'@'nombre_ordenador' [IDENTIFIED BY
'password'] [, user [IDENTIFIED BY [PASSWORD] 'password']] ...;
Por ejemplo, crear el usuario luis que se conectará desde el ordenador 'depto2.informatica' y con la
contraseña inicial de 'primeravez'
CREATE USER 'luis'@'depto2.informatica' IDENTIFIED BY 'primeravez';
EMPEZANDO_con_MySql_r09v02.doc Página 11 de 17
DAI. DAL4GHC.

Este usuario, por el hecho de haber sido creado, ya tiene el permiso de conectarse con el servidor
(permiso de USAGE), pero no puede acceder a ninguna de la bases de datos del servidor.
Para crear un usuario que se pueda conectar desde cualquier ordenador al servidor mysql hay que
usar el comodín % o no poner nada como nombre de servidor. Crear el usuario mariajose con
contraseña pepa para que se pueda conectar desde cualquier ordenador.
create user mariajose@'%' identified by 'pepa';
que también es igual que
create user mariajose identified by 'pepa';

4.2. Conocer los permisos para trabajar de una cuenta


¿Cómo se ve qué permisos tiene un usuario? Con SHOW GRANTS.
SHOW GRANTS [FOR usuario@ordenador];
Si no se aporta nombre de usuario, se mostrarán los permisos concedidos al usuario que invoca la
orden.
mysql> SELECT USER();
+----------------+
| USER() |
+----------------+
| root@localhost |
+----------------+
1 row in set (0.00 sec)
mysql> show grants;
+-------------------------------------------------------------------------------
--------------------------------+
| Grants for root@localhost
|
+-------------------------------------------------------------------------------
--------------------------------+
| GRANT ALL PRIVILEGES ON *.* TO 'root'@'localhost' IDENTIFIED BY PASSWORD
'1215c03248cd83fb' WITH GRANT OPTION |
+-------------------------------------------------------------------------------
--------------------------------+
1 row in set (0.00 sec)
Atención que con esta información sabremos también a que bases de datos tenemos acceso y a que
tablas, leyedo lo que ponga a continuación de on …. en cada detalle de grant.
 *.* significa a todas las bases de datos, o al servidor según el permiso que sea.
 nombreBaseDatos.* significa a una base de datos y todas sus tablas
 nombreBaseDatos.nombreTabla significa a una tabla determinada en una base de datos
También se pueden dar permisos solo para acceder a determinadas columnas de una tabla, estos
permisos de columnas son: SELECT, UPDATE y REFERENCES. Ejemplo:
grant select (nombre, apellidos, telefonos), update (telefonos) on
ventas.clientes to secretaria1@'%';

EMPEZANDO_con_MySql_r09v02.doc Página 12 de 17
DAI. DAL4GHC.
4.3. Dar u otorgar permisos a una cuenta
Si una cuenta tiene insuficientes permisos debemos ampliarle los permisos con GRANT ....
Ejemplos:
Crear el usuario paula@localhost con la contraseña 'paula2008' y concedele permisos para que sea
una superadministradora, y que pueda además conceder permisos a otros usuarios.
create user paula@localhost IDENTIFIED BY 'paula2008';
grant all privileges on *.* to paula@localhost with grant option;
with grant option es la cláusula que permite a un usuario que los permisos que le hayan sido
otorgados con ella pueda trasferirlos a un tercero (amigo).
El comando GRANT tiene la particularidad de que si un usuario no existe lo crea, por lo que la
sentencia siguiente hubiese sido suficiente:
grant all privileges on *.* to paula@localhost identified by
'paula2008' with grant option;
Conceder a 'luis'@'depto2' permisos para seleccionar filas en todas las tablas de la base de datos
inventario.
grant select on inventario.* to luis@depto2;
Dar permisos a lola@server1 para que pueda seleccionar filas, insertar filas, modificar columnas y
borrar filas en la tabla proveedores de la base de datos supermercado.
grant select, insert, update, delete on supermercado.proveedores to
lola@server1;
Dar permisos a juan@oficina_ y silvia@oficina_ para que pueda hacer selecciones y
modificaciones en las columnas telefonos, fax, email de la tabla clientes en la base de datos
supermercado.
grant select (telefonos, fax, email), update (telefonos, fax, email)
on supermercado.clientes to juan@'oficina_', silvia@'oficina_';
Dar permisos a conecta1@localhost para que pueda seleccionar todas las tablas de la base de datos
test y solo pueda tener una conexión activa.
grant select on test.* to conecta1@localhost with max_user_connections
1;
Crear un cuenta portalweb@servidor2 con contraseña 'portal' que pueda seleccionar, insertar, borrar
filas y actualizar datos en filas existentes, en las tablas de la base de datos bdWeb con un límite de
consultas de 3600.
grant select, insert, delete, update on bdWeb.* to portalweb@servidor2
identified by 'portal' with max_queries_per_hour 3600;

4.4. Quitar o revocar los permisos dados a un usuario


Si un usuario tiene permisos que ya no debe utilizar, hay que quitárselos. También es necesario
quitar a un usuario todos los permisos que tiene antes de poder borrarlo.
Ejemplos:
Quitar a luis@oficina_ permisos para seleccionar datos en la base de datos supermercado.
revoke select on supermercado.* from luis@oficina;
Quitar a paula@localhost los privilegios de superadministradora que tenía.

EMPEZANDO_con_MySql_r09v02.doc Página 13 de 17
DAI. DAL4GHC.
revoke all privileges, grant option on *.* from paula@localhost;

4.5. Borrar una cuenta de usuario


Si un usuario no debe poder conectarse más a MySql, hay que borrar su cuenta. Para ello, primero
hay que asegurarse de que no tenga ningún permiso otorgado.
Ejercicio:
Borrar al usuario prueba@localhost.
show grants for prueba@localhost; /* Ver permisos concedidos */
+--------------------------------------------------+
| Grants for prueba@localhost |
+--------------------------------------------------+
| GRANT USAGE ON *.* TO 'prueba'@'localhost' |
| GRANT CREATE ON `test`.* TO 'prueba'@'localhost' |
+--------------------------------------------------+
2 rows in set (0.00 sec)
REVOKE CREATE ON test.* from prueba@localhost;
/* El permiso USAGE solo se quita al borrar el usuario */
DROP USER prueba@localhost;

4.6. Cambiar la contraseña


Es necesario muchas veces cambiar la contraseña, tanto la nuestra, como la de otro usuario que
administremos por que se haya olvidado de ella.
SET PASSWORD = PASSWORD('some password')
/* Cambia la contraseña del usuario que la ejecuta */
SET PASSWORD FOR user = PASSWORD('some password')
/* Cambia la contraseña de otro usuario */

Ejemplos:
Estoy conectado y decido cambiar mi contraseña a 'mercurio'.
SET PASSWORD = PASSWORD('mercurio');
Soy administrador y tengo que cambiar la contraseña de luis@oficina_ a una nueva que será
'20082009'
SET PASSWORD FOR luis@'oficina_' = PASSWORD('20082009');

4.7. Cambiar el nombre de un usuario


Para reorganizar los usuarios puede que en vez de borrar una cuenta que ya tiene un conjunto de
permisos asignados y crear otra nueva y reasignarle los permisos de la anterior, quizá sea más
interesante renombrar la vieja cuenta con el nombre de la nueva.
RENAME USER old_user TO new_user

[, old_user TO new_user] ...

Ejemplo: Cambiar al usuario rx21@localhost por roxana21@localhost.

EMPEZANDO_con_MySql_r09v02.doc Página 14 de 17
DAI. DAL4GHC.
RENAME USER rx21@localhost TO roxana21@localhost
;

5. Usar una base de datos


Después de conectado a mysql, para poder hacer operaciones de definición de datos o de
manipulación de datos debemos usar una base de datos de la colección de bases de datos creadas o
usar una base de datos nueva.
5.1. Crear una base de datos
create database nombreBaseDatos;

5.2. Usar una base de datos


Usar una base de datos es equivalente a abrirla para hacer operaciones en ella.
use nombreBaseDatos;
Es una buena costumbre cuando uno trabaja con varias bases de datos utilizar siempre el nombre de
la base de datos en las sentencias sql para asegurarnos que las operaciones se hacen en la base de
datos deseada.
create table nombreBaseDatos.nombreTabla (…);

select * from nombreBaseDatos.nombreTabla


...;

insert into nombreBaseDatos.nombreTabla


values (...);

update nombreBaseDatos.nombreTabla
set columna = valor
where condicion;

delete nombreBaseDatos.nombreTabla
where condicion;

6. Creación de tablas y vistas


Para crear tablas y vistas en mysql lo primer que debemos hacer es situarnos en una base de datos
en la que tengamos permisos para crear estos objetos, o tener en cuidado de anteponer al nombre de
la tabla el nombre de la base de datos.
6.1. Creación de tablas
Los dos grupos de sentencias siguientes son equivalentes.
use ventas;
create table clientes ( ...);

create table ventas.clientes (...);

EMPEZANDO_con_MySql_r09v02.doc Página 15 de 17
DAI. DAL4GHC.
En Mysql es muy interesante saber cual es el motor de base de datos que se utiliza por defecto en el
momento de creación de una tabla. Los motores más comúnmente utilizados son MyIsam y
Innodb.
Como puede verse en el apartado 2.1, la instalación de Mysql que se estudia en este documento ha
quedado configurada para que utilice por defecto la máquina innodb, eso se ve en la entrada
default-storage-engine=INNODB
Diferencias entre los dos motores:
MyIsam: Es más rápido. Utiliza una carpeta para guardar todas las tablas de la base de datos. Cada
tabla tiene tres ficheros asociados. No responde a la cláusualas FOREIGN KEY
REFERENCES de la definición de tablas, por lo que no se aplicará la integridad referencial
que se haya definido en el modelo de base de datos. Además no es transaccional, lo que
implica que no admite empaquetar sentencias sql entre
start transaction
y…
commit o rollback
InnoDB: Es un poco más lento. Utiliza una carpeta para guardar las definiciones de las tablas de la
base de datos, pero los datos y los índices de las tablas los guarda en un fichero común para
todas las tablas de bases de datos creadas con este motor. Responde a las cláusulas
FOREIGN KEY REFERENCES de la definición de tablas, por lo que sí se aplicará la
integridad referencial que se haya definido en el modelo de base de datos. Es transaccional.
Toda sentencia de creación de tabla puede llevar después del cierre de paréntesis de definición de
columnas y constraints la cláusula engine=motor. Si no se indica se utiliza la máquina configurada
por defecto en la instalación de mysql.
Luego una creación de tabla debería tener el siguiente formato:
create table nombreTabla
(columna1 tipo datos
,columna2
, ...
)
engine={myisam|innodb}

6.2. Creación de vistas


Igual ocurre con los dos grupos de sentencias siguientes:
use almacen;
create view v_ventas_lacteos as
select * from pedidos
where categoria='LACTEOS';

create view almacen.v_ventas_lacteos as


select * from almacen.pedidos
where categoria='LACTEOS';

EMPEZANDO_con_MySql_r09v02.doc Página 16 de 17
DAI. DAL4GHC.

7. Manipulación de datos en mysql.exe


Para manipular datos en una base de datos mysql lo primer que debemos hacer es situarnos en una
base de datos en la que tengamos permisos para crear estos objetos, o tener en cuidado de anteponer
al nombre de la tabla el nombre de la base de datos.
use foro;
select *
from mensajes
where month(fecha)=1;
Es equivalente a:
select *
from foro.mensajes
where month(fecha)=1;

8. Utilización de script.sql con mysql.exe


Los scripts sql los podemos tener guardados en ficheros de texto con extensión .sql. Si los hemos
creado en casa y queremos ejecutarlos en el servidor del aula para que sean los mismos, podemos
hacerlo de la siguiente manera:
1. Conectándonos con myslq.exe y usar la base de datos adecuada; abrir el fichero .sql y copiar
en el portapapeles el codigo; situarnos en el programa mysql y pegar el código copiado.
2. Copiar el fichero.sql en una ubicación a la que tengamos acceso con el programa mysql.exe,
para después ejecutar el fichero de la siguiente manera:
 Estando conectados con mysql.exe: mysql> \. /path/fichero.sql
 Ejecutando mysql en bach
mysql -u usuario -h host -p -D nombreBD < /path/fichero.sql

EMPEZANDO_con_MySql_r09v02.doc Página 17 de 17

También podría gustarte