Anda di halaman 1dari 17

DAI. DAL4GHC.

EMPEZANDO_con_MySql_r09v02.doc Pgina 1 de 17
EMPEZANDO CON MySql
NDICE DE CONTENIDOS
1. Introduccin ................................................................................................................................. 1
2. Variables de configuracin de la Instancia del servidor Mysql. .................................................. 2
2.1. Parmetros para la instancia del servidor............................................................................. 3
2.2. Parmetros para el cliente de lnea 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 despus de la instalacin? ............................................. 11
4. Gestin de las cuentas de usuarios............................................................................................. 11
4.1. Creacin 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 contrasea........................................................................................................ 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. Creacin de tablas y vistas ......................................................................................................... 15
6.1. Creacin de tablas .............................................................................................................. 15
6.2. Creacin de vistas .............................................................................................................. 16
7. Manipulacin de datos en mysql.exe ......................................................................................... 17
8. Utilizacin de script.sql con mysql.exe ..................................................................................... 17

1. Introduccin
Partimos del manual de referencia de la versin 5.0, en formato pdf y tamao 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 instalacin de MySql en los ordenadores del aula. Repasemos cmo ha
quedado la instalacin.
Mysql arranca en Windows como un servicio de arranque automtico cada vez que se arranca
Windows, porque as se ha configurado. Tambin podra haberse configurado un arranque manual
para evitar que cargue la CPU del ordenador de clase cuando no se est utilizando.
DAI. DAL4GHC.
EMPEZANDO_con_MySql_r09v02.doc Pgina 2 de 17
Tambin sabemos que hay una cuenta de superadministrador que se denomina root y que se le puso
por contrasea cmadrid.
Para una instalacin 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
contrasea (es muy recomendable ponrsela).
2. Variables de configuracin de la Instancia del servidor
Mysql.
En relacin con la instalacin 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 botn derecho sobre el servicio MySQL y luego elegimos propiedades
aparece una ventana con las propiedades del servicio.
DAI. DAL4GHC.
EMPEZANDO_con_MySql_r09v02.doc Pgina 3 de 17

Si leemos la informacin 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 parmetros de configuracin que estn
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 tambin mediante programas de
administracin grficos como Mysql Administrador en las carpetas Service Control y Startup
Variables, y con MySql System Tray Monitor, la opcin 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 ms
adelante los apartados de configuracin para tablas MyISAM y para tablas InnoDB.
2.1. Parmetros para la instancia del servidor
# SERVER SECTION
DAI. DAL4GHC.
EMPEZANDO_con_MySql_r09v02.doc Pgina 4 de 17
# --------------------------------------------------------------------
# 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/",
DAI. DAL4GHC.
EMPEZANDO_con_MySql_r09v02.doc Pgina 5 de 17

en cuya carptea ./bin/ ser donde buscaremos programas clientes de utilidad como reparadores de
tablas, backups, administradores, etc, todos en lnea de comandos (modo texto).
DAI. DAL4GHC.
EMPEZANDO_con_MySql_r09v02.doc Pgina 6 de 17


Que los ficheros que almacenarn los datos de la/s base/s de datos estarn 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 estn creadas en el servidor.
DAI. DAL4GHC.
EMPEZANDO_con_MySql_r09v02.doc Pgina 7 de 17

En un sistema recin instalado solo estaran 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 debern tener
acceso explcito aquellos usuarios de confianza y con permisos de administracin. 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 definicin 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 estn 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.
DAI. DAL4GHC.
EMPEZANDO_con_MySql_r09v02.doc Pgina 8 de 17


Que los caracteres de texto se codificarn 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 caracterstica que admite
definiciones de CONSTRAINT FOREIGN KEY REFERENCES
Las tablas creadas con este motor guardarn el la carpeta de la base de datos solo un fichero con el
nombre de la tabla y la extensin .FRM que contiene la definicin 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 transaccin econmica respecto a mi cuenta
corriente en la bd del banco, pero consultar el saldo de mi cuenta corriente no es una transaccin
econmica. Crear una tabla, insertar filas, actualizar datos en las columnas de las filas, borrar filas,
son transacciones de bases de datos.
DAI. DAL4GHC.
EMPEZANDO_con_MySql_r09v02.doc Pgina 9 de 17


Para finalizar, en la carpeta que contiene los ficheros de datos del servidor estn los ficheros
nombre.pid que almacena informacin 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 informacin generada durante el arranque y parada de la instancia del servidor. A continuacin,
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. Parmetros para el cliente de lnea de comandos (pantalla negra)
mysql.exe
# CLIENT SECTION
DAI. DAL4GHC.
EMPEZANDO_con_MySql_r09v02.doc Pgina 10 de 17
# --------------------------------------------------------------------
# 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 lneas anteriores especifica que cuando ejecutemos el programa cliente mysql.exe para
conectarnos al servidor utilizar por defecto el puerto TCP/IP 3306 y la codificacin 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 definicin de una
pareja nombre_usuario@ordenador_cliente se convierte en un usuario distinto para MySql.
Despus 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 administracin 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 parmetros de conexin debern especificarse el nombre del
host donde se ejecuta el servidor de Mysql (localhost si es en la misma mquina), el nombre del
usuario (root si es la primera vez despus de la instalacin, pues no habr ms cuentas de usuarios
que sta) y la contrasea del usuario. Las siguientes lneas muestran el proceso de conexin 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>
DAI. DAL4GHC.
EMPEZANDO_con_MySql_r09v02.doc Pgina 11 de 17
mysql>
mysql>QUIT o EXIT [ENTER] /* PARA DESCONECTAR */

Cmo se sabe que usuario soy, es decir, con que nombre de usuario y de ordenador estoy
conectado?
Con la sentencias siguientes, que devuelven la combinacin 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 despus de la instalacin?
Despus de la instalacin, la cuenta principal es root, sin contrasea, o con la que se haya definido
durante la instalacin, 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 ms 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. Gestin de las cuentas de usuarios
(Ver apartados del manual 13.5.1.).
4.1. Creacin 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 especfica. 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
contrasea inicial de 'primeravez'
CREATE USER 'luis'@'depto2.informatica' IDENTIFIED BY 'primeravez';
DAI. DAL4GHC.
EMPEZANDO_con_MySql_r09v02.doc Pgina 12 de 17

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 comodn % o no poner nada como nombre de servidor. Crear el usuario mariajose con
contrasea pepa para que se pueda conectar desde cualquier ordenador.
create user mariajose@'%' identified by 'pepa';
que tambin es igual que
create user mariajose identified by 'pepa';

4.2. Conocer los permisos para trabajar de una cuenta
Cmo se ve qu permisos tiene un usuario? Con SHOW GRANTS.
SHOW GRANTS [FOR usuario@ordenador];
Si no se aporta nombre de usuario, se mostrarn 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)
Atencin que con esta informacin sabremos tambin a que bases de datos tenemos acceso y a que
tablas, leyedo lo que ponga a continuacin de on . en cada detalle de grant.
*.* significa a todas las bases de datos, o al servidor segn 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
Tambin 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@'%';
DAI. DAL4GHC.
EMPEZANDO_con_MySql_r09v02.doc Pgina 13 de 17
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 contrasea 'paula2008' y concedele permisos para que sea
una superadministradora, y que pueda adems 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 clusula 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 conexin activa.
grant select on test.* to conecta1@localhost with max_user_connections
1;
Crear un cuenta portalweb@servidor2 con contrasea 'portal' que pueda seleccionar, insertar, borrar
filas y actualizar datos en filas existentes, en las tablas de la base de datos bdWeb con un lmite 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 quitrselos. Tambin 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 tena.
DAI. DAL4GHC.
EMPEZANDO_con_MySql_r09v02.doc Pgina 14 de 17
revoke all privileges, grant option on *.* from paula@localhost;
4.5. Borrar una cuenta de usuario
Si un usuario no debe poder conectarse ms a MySql, hay que borrar su cuenta. Para ello, primero
hay que asegurarse de que no tenga ningn 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 contrasea
Es necesario muchas veces cambiar la contrasea, tanto la nuestra, como la de otro usuario que
administremos por que se haya olvidado de ella.
SET PASSWORD = PASSWORD('some password')
/* Cambia la contrasea del usuario que la ejecuta */
SET PASSWORD FOR user = PASSWORD('some password')
/* Cambia la contrasea de otro usuario */

Ejemplos:
Estoy conectado y decido cambiar mi contrasea a 'mercurio'.
SET PASSWORD = PASSWORD('mercurio');
Soy administrador y tengo que cambiar la contrasea 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 ms
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.
DAI. DAL4GHC.
EMPEZANDO_con_MySql_r09v02.doc Pgina 15 de 17
RENAME USER rx21@localhost TO roxana21@localhost
;
5. Usar una base de datos
Despus de conectado a mysql, para poder hacer operaciones de definicin de datos o de
manipulacin de datos debemos usar una base de datos de la coleccin 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. Creacin 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. Creacin de tablas
Los dos grupos de sentencias siguientes son equivalentes.
use ventas;
create table clientes ( ...);

create table ventas.clientes (...);

DAI. DAL4GHC.
EMPEZANDO_con_MySql_r09v02.doc Pgina 16 de 17
En Mysql es muy interesante saber cual es el motor de base de datos que se utiliza por defecto en el
momento de creacin de una tabla. Los motores ms comnmente utilizados son MyIsam y
Innodb.
Como puede verse en el apartado 2.1, la instalacin de Mysql que se estudia en este documento ha
quedado configurada para que utilice por defecto la mquina innodb, eso se ve en la entrada
default-storage-engine=INNODB
Diferencias entre los dos motores:
MyIsam: Es ms rpido. Utiliza una carpeta para guardar todas las tablas de la base de datos. Cada
tabla tiene tres ficheros asociados. No responde a la clusualas FOREIGN KEY
REFERENCES de la definicin de tablas, por lo que no se aplicar la integridad referencial
que se haya definido en el modelo de base de datos. Adems no es transaccional, lo que
implica que no admite empaquetar sentencias sql entre
start transaction
y
commit o rollback
InnoDB: Es un poco ms 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 comn para
todas las tablas de bases de datos creadas con este motor. Responde a las clusulas
FOREIGN KEY REFERENCES de la definicin 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 creacin de tabla puede llevar despus del cierre de parntesis de definicin de
columnas y constraints la clusula engine=motor. Si no se indica se utiliza la mquina configurada
por defecto en la instalacin de mysql.
Luego una creacin de tabla debera tener el siguiente formato:
create table nombreTabla
(columna1 tipo datos
,columna2
, ...
)
engine={myisam|innodb}

6.2. Creacin 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';
DAI. DAL4GHC.
EMPEZANDO_con_MySql_r09v02.doc Pgina 17 de 17
7. Manipulacin 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. Utilizacin de script.sql con mysql.exe
Los scripts sql los podemos tener guardados en ficheros de texto con extensin .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. Conectndonos 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 cdigo copiado.
2. Copiar el fichero.sql en una ubicacin a la que tengamos acceso con el programa mysql.exe,
para despus 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

Anda mungkin juga menyukai