Ejecutar instrucciones SQL

Una vez que haya conectado con el servidor, ya puede emitir instrucciones SQL para su ejecución en el servidor. En este tutorial describiremos principios generales sobre cómo interactuar con mysql.

Para introducir una instrucción en mysql, basta con escribirla. Al final de la instrucción, añada punto y coma (;) y pulse Intro. El punto y coma indica a mysql que la instrucción está entera. Tras ello, la envía al servidor para su ejecución. El servidor la procesa y devuelve el resultado a mysql, que lo muestra.

El siguiente ejemplo ilustra una sencilla instrucción que solicita el sistema que muestre la fecha y hora actuales:

mysql> SELECT NOW();
NOW()
2019-03-21 10:51:23
1 row in set (0.00 sec)

Otra forma de determinar una instrucción consiste en utilizar \g en lugar de punto y coma:

mysql> SELECT NOW() \g
NOW()
2019-03-21 10:51:28
1 row in set (0.00 sec)

También puede usar \G, que muestra el resultado en formato vertical, un valor por línea.

mysql> SELECT NOW(), USER(), VERSION() \G
NOW(): 2019-03-21 10:51:34
USER(): sampadm@localhost
VERSION(): 5.0.60-log
1 row in set (0.03 sec)

En instrucciones que generan líneas breves, \G no resulta especialmente útil, pero si las líneas son extensas, facilita la legibilidad del resultado.

mysql muestra el resultado de la instrucción y una línea que indica el número de filas del resultado y el tiempo de procesamiento transcurrido.

Como mysql espera el carácter final de la instrucción, no es necesario introducir la instrucción en una misma línea. Puede distribuirlas en varias líneas si lo desea:

mysql> SELECT NOW(),
-> USER(),
-> VERSION()
->;

NOW()USER()VERSION()
2019-03-21 10:51:37sampadm@localhost5.0.60-log

Fíjese en que el símbolo de línea de comandos cambia de mysql> a -> tras introducir la primera línea de la instrucción. Significa que mysql piensa que sigue introduciendo la instrucción. Si se olvida del punto y coma al final de la instrucción, el cambio de símbolo le recuerda que falta algo. En caso contrario, podría esperar impacientemente preguntándose por qué tarda tanto en ejecutar la instrucción y mysql esperaría que terminara.

Si ha comenzado a introducir una instrucción de varias líneas y decide que no desea ejecutarla, introduzca \c para borrarla:

mysql> SELECT NOW(),
> VERSION(),
> \c
mysql>

El símbolo de la línea de comandos vuelve a cambiar a mysql> para indicar que mysql está listo para una nueva instrucción.

Lo contario a introducir una instrucción en varias líneas consiste en introducir varias instrucciones en una misma línea, separadas por terminadores:

mysql> SELECT NOW(); SELECT USER(); SELECT VERSION();
NOW()
2019-03-21 10:52:31
USER()
sampadm@localhost
VERSION()
5.0.60-log

Por lo general, es irrelevante que utilice mayúsculas, minúsculas o ambas para introducir instrucciones. Todas recuperan la misma información (aunque los encabezados de columna que muestran el resultado difieren del formato):

SELECT USER();
select user();
SeLeCt UsEr();

Al invocar una función en una instrucción, conviene no dejar espacios entre el nombre de la función y el siguiente paréntesis. En algunos casos, los espacios provocan errores sintácticos.

Puede almacenar instrucciones para crear una secuencia de comandos SQL e indicar a mysql que lea las instrucciones de ese archivo y no del teclado. Para ello, utilice las funciones de redirección de su línea de comandos. Por ejemplo, si almacena instrucciones en el archivo myscript.sql, puede ejecutar sus contenidos con el siguiente comando (no olvide especificar las opciones de conexión necesarias):

% mysql < myscript.sql

Puede asignar al archivo el nombre que desee. Hemos utilizado el sufijo .sql para indicar que el archivo contiene instrucciones SQL.

Es más cómodo cargar una tabla y que mysql lea instrucciones INSERT de un archivo que tener que añadirlas manualmente.

Más adelante veremos diversas instrucciones SQL que puede probar personalmente. Se indican añadiendo mysql> por delante de la instrucción y los ejemplos incluyen el resultado de la instrucción. Podrá introducir las instrucciones tal y como se muestran, y el resultado debería ser el mismo. Las instrucciones mostradas sin símbolo de línea de comandos simplemente ilustran un concepto, y no es necesario que las ejecute.
Puede probarlas si lo desea. Si utiliza mysql para hacerlo, no olvide incluir un terminador (;) al final de cada instrucción.

Comparte