Dentro de MySQL - Primeros Pasos
Ejecutando algunas consultas
En este momento debimos de haber podido conectarnos ya al servidor MySQL, aún cuando no
hemos seleccionado alguna base de datos para trabajar.
Lo que haremos a continuación es escribir
algunos comandos para irnos familiarizando con el funcionamiento de mysql.
Utilizaremos los comandos SELECT VERSION y CURRENT_DATE, para familiarizarnos con las consultas en modo TERMINAL de MySQL.
Escribimos en línea de comandos las instrucciones siguientes :
- mysql> select version, current_date;
Podemos observar el prompt mysql>, seguido de las instrucciones select version (que muestra información sobre la versión del motor, la coma que separa los comandos (ya que se puede incluir más de un comando por línea), y el comando current_date que nos muestra la fecha.
Observemos que al final incluimos un punto y coma, el cual le indica a mysql que ejecute los comandos indicados.
En caso de que no indiquemos el final de línea (;), mysql mostrará el prompt →, el cual indica que se encuentra a la espera de un nuevo comando o la orden de fin de línea (;).
Mostraremos a continuación una imagen de lo explicado anteriormente y ejecutado en una consola LINUX-UBUNTU.
Este comando ilustra distintas cosas acerca de MySQL:
- Un comando normalmente consiste de un sentencia SQL seguida por un punto y coma.
- Cuando emitimos un comando, MySQL lo manda al servidor para que lo ejecute, nos muestra los resultados y regresa al prompt, indicando que está listo para recibir más consultas.
- MySQL muestra los resultados de la consulta como una tabla (filas y columnas). La primera fila contiene etiquetas para las columnas; las filas siguientes, muestran los resultados de la consulta. Normalmente las etiquetas de las columnas son los nombres de los campos de las tablas que estamos usando en alguna consulta. Si lo que estamos recuperando es el valor de una expresión (como en el ejemplo anterior) las etiquetas en las columnas son la expresión en sí.
- MySQL muestra cuántas filas fueron regresadas y cuanto tiempo tardó en ejecutarse la consulta, lo cual puede darnos una idea de la eficiencia del servidor, aunque estos valores pueden ser un tanto imprecisos ya que no se muestra la hora del CPU, y porque pueden verse afectados por otros factores, tales como la carga del servidor y la velocidad de comunicación en una red.
- Las palabras clave pueden ser escritas usando mayúsculas y minúsculas.
En el próximo ejemplo advertimos, como se pueden escribir en línea de comandos, expresiones matemáticas y trigonométricas separadas por una coma:
Aunque hasta este momento se han escrito sentencias sencillas de una sóla línea, es posible escribir más de una sentencia por línea, siempre y cuando estén separadas por punto y coma:
Un comando no necesita ser escrito en una sóla línea, así que los comandos que requieran de varias líneas no son un problema. MySQL determinará en dónde finaliza la sentencia cuando encuentre el punto y coma, no cuando encuentre el fin de línea.
Aquí está un ejemplo que muestra un consulta simple escrita en varias líneas:
En este ejemplo debe notarse como cambia el prompt (de mysql> a →) cuando se escribe una consulta en varias líneas.
Esta es la manera en cómo MySQL indica que está esperando a que finalice la consulta. Sin embargo si deseamos cortar la consulta, podemos hacerlo al escribir \c como se muestra en el siguiente ejemplo:
mysql> SELECT -> USER(), -> \c mysql>
De nuevo, se nos regresa el comando el prompt mysql> que nos indica que MySQL está listo para una nueva consulta.
En la siguiente tabla se muestran cada uno de los prompts que podemos obtener y una breve descripción de su significado para MySQL:
Prompt | Significado |
---|---|
mysql> | Listo para una nueva consulta |
→ | Esperando la línea siguiente de una consulta multi-línea |
'> | Esperando la siguiente línea para completar una cadena que |
comienza con una comilla sencilla ( ' ) | |
“> | Esperando la siguiente línea para completar una cadena que |
comienza con una comilla doble ( ” ) |
Normalmente, los comandos multilínea, se ejecutan por error, para esas situaciones en donde por error damos enter sin haber finalizado de escribir el comando MySQL, queda esperando por la finalización del comando, indicándolo como lo mostramos a continuación.
mysql> SELECT USER() ->
En este caso el prompt de MySQL, queda esperando el ; como final de comando.
Los prompts '> y “> ocurren durante la escritura de cadenas. En MySQL podemos escribir cadenas utilizando comillas sencillas o comillas dobles (por ejemplo, 'hola' y “hola”), y MySQL nos permite escribir cadenas que ocupen múltiples líneas. De manera que cuando veamos el prompt '> o ”>, MySQL nos indica que hemos empezado a escribir una cadena, pero no la hemos finalizado con la comilla correspondiente.
Aunque esto puede suceder si estamos escribiendo una cadena muy grande, es más frecuente queobte ngamos alguno de estos prompts si inadvertidamente escribimos alguna de estas comillas.
Por ejemplo:
mysql> SELECT * FROM mi_tabla WHERE nombre = "Lupita AND edad < 30; ">
Si escribimos esta consulta SELECT y entonces presionamos ENTER para ver el resultado, no sucederá nada. En lugar de preocuparnos porque la consulta ha tomado mucho tiempo, debemos notar la pista que nos da MySQL cambiando el prompt.
Esto nos indica que MySQL está esperando que finalicemos la cadena iniciada (“Lupita).
En este caso, ¿qué es lo que debemos hacer?. La cosa más simple es cancelar la consulta. Sin embargo, no basta con escribir \c, ya que MySQL interpreta esto como parte de la cadena que estamos escribiendo. En lugar de esto, debemos escribir antes la comilla correspondiente y después \c :
mysql> SELECT * FROM mi_tabla WHERE nombre = "Lupita AND edad < 30; "> " \c mysql>
El prompt cambiará de nuevo al ya conocido mysql>, indicándonos que MySQL está listo para una nueva consulta.
Es sumamente importante conocer lo que significan los prompts '> y ”>, ya que si en algún momento nos aparece alguno de ellos, todas la líneas que escribamos a continuación serán consideradas como parte de la cadena, inclusive cuando escribimos QUIT.
Esto puede ser confuso, especialmente si no sabemos que es necesario escribir la comilla correspondiente para finalizar la cadena, para que podamos escribir después algún otro comando, o terminar la consulta que
deseamos ejecutar.