6 El cliente MySQL

Bien, ha llegado el momento de empezar a trabajar con el SGBD, es decir, vamos a empezar a entendernos con MySQL.

Existen muchas formas de establecer una comunicación con el servidor de MySQL. En nuestros programas, generalmente, usaremos un API para realizar las consultas con el servidor. En PHP, por ejemplo, este API está integrado con el lenguaje, en C/C++ se trata de bibliotecas de enlace dinámico, etc.

Para este curso usaremos MySQL de forma directa, mediante un cliente ejecutándose en una consola (una ventana DOS en Windows, o un Shell en otros sistemas). En otras secciones se explicarán los diferentes APIs.

Veamos un ejemplo sencillo. Para ello abrimos una consola y tecleamos "mysql". (Si estamos en Windows y no está definido el camino para MySQL tendremos que hacerlo desde "C:\mysql\bin").

Para entrar en la consola de MySQL se requieren ciertos parámetros. Hay que tener en cuenta que el servidor es multiusuario, y que cada usuario puede tener distintos privilegios, tanto de acceso a tablas como de comandos que puede utilizar.

La forma general de iniciar una sesión MySQL es:

mysql -h host -u usuario -p
Cliente de consola MySQL
Cliente de consola MySQL

Podemos especificar el ordenador donde está el servidor de bases de datos (host) y nuestro nombre de usuario. Los parámetros "-h" y "-u" indican que los parámetros a continuación son, respectivamente, el nombre del host y el usuario. El parámetro "-p" indica que se debe solicitar una clave de acceso.

En versiones de MySQL anteriores a la 4.1.9 es posible abrir un cliente de forma anónima sin especificar una contraseña. Pero esto es mala idea, y de hecho, las últimas versiones de MySQL no lo permiten. Durante la instalación de MySQL se nos pedirá que elijamos una clave de acceso para el usuario 'root', deberemos usar esa clave para iniciar una sesión con el cliente MySQL.

mysql -h localhost -u root -p
Enter password: *******
Welcome to the MySQL monitor.  Commands end with ; or \g.
Your MySQL connection id is 76 to server version: 4.1.9-nt

Type 'help;' or '\h' for help. Type '\c' to clear the buffer.

mysql>

Para salir de una sesión del cliente de MySQL se usa el comando "QUIT".

mysql> QUIT
Bye

C:\mysql\bin>

Algunas consultas

Ahora ya sabemos entrar y salir del cliente MySQL, y podemos hacer consultas. Lo más sencillo es consultar algunas variables del sistema o el valor de algunas funciones de MySQL. Para hacer este tipo de consultas se usa la sentencia SQL SELECT, por ejemplo:

mysql> SELECT VERSION(), CURRENT_DATE;
+-----------+--------------+
| VERSION() | CURRENT_DATE |
+-----------+--------------+
| 4.0.15-nt | 2003-12-12   |
+-----------+--------------+
1 row in set (0.02 sec)

mysql>

SELECT es la sentencia SQL para seleccionar datos de bases de datos, pero también se puede usar, como en este caso, para consultar variables del sistema o resultados de funciones. En este caso hemos consultado el resultado de la función VERSION y de la variable CURRENT_DATE.

Esto es sólo un aperitivo, hay muchísimas más opciones, y mucho más interesantes.

En los próximos capítulos, antes de entrar en profundidad en esta sentencia, usaremos SELECT para mostrar todas las filas de una tabla. Para ello se usa la sentencia:

mysql> SELECT * FROM <tabla>;

Usuarios y privilegios

Cuando trabajemos con bases de datos reales y con aplicaciones de gestión de bases de datos, será muy importante definir otros usuarios, además del root, que es el administrador. Esto nos permitirá asignar distintos privilegios a cada usuario, y nos ayudará a proteger las bases de datos.

Podremos por ejemplo, crear un usuario que sólo tenga posibilidad de consultar datos de determinadas tablas o bases de datos, pero que no tenga permiso para añadir o modificar datos, o modificar la estructura de la base de datos.

Otros usuarios podrán insertar datos, y sólo algunos (o mejor, sólo uno) podrán modificar la estructura de las bases de datos: los administradores.

Dedicaremos un capítulo completo a la gestión de usuarios y privilegios, pero de momento trabajaremos siempre con todos ellos, de modo que tendremos cuidado con lo que hacemos. Además, trabajaremos sólo con las bases de datos de ejemplo.