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
mysql> SELECT VERSION(), CURRENT_DATE;
+-----------+--------------+
| VERSION() | CURRENT_DATE |
+-----------+--------------+
| 3.23.41 | 2002-10-01 |
+-----------+--------------+
1 row in set (0.03 sec)
mysql> Esta 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
el 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.
Las siguientes consultas son equivalentes:
mysql> SELECT VERSION(), CURRENT_DATE;
mysql> select version(), current_date;
mysql> SeLeCt vErSiOn(), current_DATE;Aquí está
otra consulta que demuestra como se pueden escribir algunas
expresiones matemáticas y trigonométricas:
mysql> SELECT SIN(PI()/4), (4+1)*5;
+-------------+---------+
| SIN(PI()/4) | (4+1)*5 |
+-------------+---------+
| 0.707107 | 25 |
+-------------+---------+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:
mysql> SELECT VERSION(); SELECT NOW();
+-----------+
| VERSION() |
+-----------+
| 3.23.41 |
+-----------+
1 row in set (0.01 sec)
+---------------------+
| NOW() |
+---------------------+
| 2002-10-28 14:26:04 |
+---------------------+
1 row in set (0.01 sec)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 donde 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:
mysql> SELECT
-> USER(),
-> CURRENT_DATE;
+----------------+--------------+
| USER() | CURRENT_DATE |
+----------------+--------------+
| root@localhost | 2002-09-14 |
+----------------+--------------+
1 row in set (0.00 sec)
mysql>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 no
terminar de escribir 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 (").
Los comandos multi-línea comúnmente
ocurren por accidente cuando tecleamos ENTER, pero olvidamos
escribir el punto y coma. En este caso mysql se queda
esperando para que finalicemos la consulta:
mysql> SELECT USER()
->Si esto llega a suceder, muy probablemente mysql
estará esperando por un punto y coma, de manera
que si escribimos el punto y coma podremos completar la
consulta y mysql podrá ejecutarla:
mysql> SELECT USER()
-> ;
+----------------+
| USER() |
+----------------+
| root@localhost |
+----------------+
1 row in set (0.00 sec)
mysql>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 multiple 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 que obtengamos
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.
|