Principal
/
Soporte Base de Datos
/
Error SQL 1064: una guía para principiantes para corregir el error

Error SQL 1064: una guía para principiantes para corregir el error

¿Alguna vez has encontrado un error SQL 1064 al intentar ejecutar una consulta? Puede ser frustrante, pero no te preocupes, no estás solo. Este mensaje de error generalmente marca un error de sintaxis en tu consulta MySQL.

Afortunadamente, solo hay un puñado de problemas que desencadenan ese error. Puedes resolverlos de manera eficiente con un poco de persistencia y orientación adecuada. En este artículo, explicaremos qué es el error SQL 1064, qué lo causa y cómo resolverlo. Además, aprenderás tres consejos para evitarlo en el futuro.

¿Qué es el error SQL 1064?

SQL (Structured Query Language) es un lenguaje de programación que administra y manipula bases de datos relacionales. Aunque potente, también es complejo y propenso a errores. Uno de los errores más comunes que encuentran los usuarios es el código de error MySQL 1064.

El código de error SQL 1064 representa un error de sintaxis SQL. Significa que la consulta SQL que has escrito no es válida porque contiene un error en la sintaxis. En otras palabras, MySQL no entiende tu solicitud y devuelve el error en respuesta.

Probablemente verás el código de error SQL 1064 en una herramienta de administración de base de datos como phpMyAdmin o MySQL Workbench. Los usuarios de SiteGround tienen phpMyAdmin a su disposición en Site Tools > Sitio Web > MySQL > PHPMYADMIN > ACCEDER A PHPMYADMIN.

Cómo acceder a phpMyAdmin desde la sección MySQL en Site Tools

A continuación, puedes ver una captura de pantalla de phpMyAdmin que produce el error.

Error SQL 1064 en phpMyAdmin

Hay varias variantes del mensaje de error:

  • error 1064 (42000) – tienes un error en tu sintaxis SQL
  • # 1064 – tienes un error en tu sintaxis SQL

Este mensaje de error parece desalentador, especialmente si eres nuevo en SQL. Sin embargo, es esencial recordar que los errores de sintaxis son comunes y, con un poco de práctica, puedes aprender a evitarlos.

Comprensión de la sintaxis SQL

La sintaxis SQL es un aspecto crucial de la administración de bases de datos. Puede crear, modificar y recuperar datos de bases de datos utilizando comandos SQL estructurados correctamente.

La sintaxis SQL es un conjunto de reglas que determinan la estructura de los comandos utilizados para interactuar con una base de datos. Los comandos SQL incluyen los siguientes elementos:

  • operadores,
  • cláusulas,
  • expresiones,
  • palabras clave.

La sintaxis SQL es similar a muchos otros lenguajes de programación. Si bien las palabras clave SQL no distinguen entre mayúsculas y minúsculas, escribirlas en mayúsculas es una práctica estándar. Las sentencias SQL suelen estar separadas por punto y coma.

Familiarizarse con el MySQL Reference Manual es esencial para trabajar con una base de datos MySQL. Obtendrás una mejor comprensión de la sintaxis, lo que a su vez te ayudará a evitar errores de sintaxis en las consultas SQL.

¿Qué causa el error SQL 1064?

Como sugiere la descripción, la razón principal del error de SQL 1064 es un error de sintaxis en tu comando. Sin embargo, otros problemas también pueden desencadenar el error. A continuación, encontrará una lista de los más comunes.

  • Errores de sintaxis: la causa más común del error de SQL 1064. Los errores de sintaxis ocurren cuando la instrucción SQL está mal escrita o viola las reglas de sintaxis establecidas.
  • Comandos obsoletos: uso de comandos obsoletos y en desuso o comandos que ya no se admiten en la versión actual de SQL.
  • Uso de palabras reservadas fuera de contexto: las palabras reservadas son palabras que el lenguaje SQL ya usa para propósitos específicos. Los ejemplos son SELECT, INSERT, UPDATE, ALTER, DELETE, etc. Si usas palabras reservadas para un propósito fuera de su uso designado en tu código SQL, encontrarás el error SQL 1064.
  • Tipos de datos incorrectos: uso de tipos de datos incorrectos en la instrucción SQL. Insertar texto en un campo numérico es un ejemplo típico.
  • Datos faltantes: si intenta insertar o actualizar datos en una base de datos a los que les falta un campo obligatorio, el resultado podría ser un error de SQL 1064.

Cómo reparar el error SQL 1064

El error de sintaxis SQL puede originarse por varios problemas. Aquí tienes un orden que puedes seguir para encontrar el origen del problema y resolverlo.

  • Paso 1.Leer el mensaje de error con cuidado

    Cuando te encuentres con un error SQL 1064, lee el mensaje de error con atención. Indicará qué línea o sección de la declaración SQL contiene un error.

    A continuación se muestra un ejemplo de phpMyAdmin que produce el error y señala qué parte es problemática.

    Comprueba el mensaje de error SQL 1064
    [/ li]
  • Paso 2.Comprueba si hay errores de sintaxis en tu consulta MySQL

  • Una vez que hayas identificado la parte de la declaración SQL que causa el error, verifica el código SQL en busca de errores de sintaxis. Busque los corchetes que faltan, las comas o los operadores, cláusulas, expresiones o palabras clave mal escritas.

    El ejemplo del paso anterior muestra que la parte problemática del comando SQL es:

    ''WERE `fpj_options`.`option_id` = 1' at line 1

    Mirando de cerca la línea, queda claro que el problema proviene de la cláusula “WERE” mal escrita. Su forma correcta es “WHERE” por lo que la “ H” que falta ”provocó el error. La corrección de la cláusula da como resultado una ejecución exitosa del comando SQL.

    Ejecución exitosa de la consulta SQL después de corregir un error de sintaxis

    [/ li]

  • Paso 3.Comprueba si estás usando palabras reservadas

  • Si estás usando MySQL y recibes un mensaje de error con el código 1064, puede ser porque usaste palabras que MySQL considera especiales. Estos se denominan “palabras reservadas“, y algunos ejemplos son ALTER, TABLE, SELECT, etc.

    Las palabras reservadas tienen significados específicos en MySQL. No puedes usarlos como nombres para tablas, columnas u otras partes de una base de datos MySQL sin causar errores. A continuación se muestra un ejemplo del error de sintaxis SQL causado al usar la palabra reservada alter como nombre de tabla.

    Error de SQL 1064 causado por el uso de la palabra reservada "alter"

    Para evitar este error, comprueba si hay palabras reservadas que se hayan usado fuera de lugar en tus consultas. Puedes encontrar una lista completa de estas palabras en el manual de MySQL. Si usas una palabra reservada, cámbiala por otra.

    Si prefieres usar la palabra reservada, márcala con comillas invertidas (`). Estas comillas invertidas indicarán a MySQL que la trate como un nombre y no como una palabra reservada.

    Arreglando el error SQL 1064 usando comillas invertidas en la palabra reservada "alter"

    [/ li]

  • Paso 4.Reemplazar comandos obsoletos

  • MySQL ha sufrido varias revisiones y cambios a lo largo de los años. Algunos de estos cambios han afectado a las reglas de sintaxis SQL. Muchos de los comandos han sido abandonados y reemplazados por otros nuevos.

    Puedes comprobar la versión del servidor MySQL que estás usando en phpMyAdmin. Para obtener más información, lee esta guía sobre cómo comprobar la versión de MySQL en el servidor que aloja tu cuenta.

    Si ha identificado que está utilizando comandos obsoletos o que ya no son compatibles, reemplázalos con comandos actualizados.

    Para editar comandos desactualizados en archivos, puedes ahorrar tiempo usando herramientas de búsqueda y reemplazo en tu Gestor archivos. Pueden reemplazar todos los comandos que causan el problema con las nuevas versiones correctas de una vez.

    El Gestor archivos en Site Tools ofrece esta funcionalidad para los usuarios de SiteGround. Abre el archivo que deseas editar y presiona el botón Reemplazar.

    La función "Reemplazar" en el Gestor archivos para reemplazar comandos obsoletos

    En el campo Find, escribe el comando obsoleto que necesitas actualizar. En Replace, escribe el comando actualizado para reemplazar el anterior. La herramienta reescribirá todas las instancias del comando desactualizado con el nuevo.

    ¡IMPORTANTE! Es posible que el nuevo comando SQL no funcione correctamente. Antes de realizar cambios en el archivo, crea una copia de seguridad del sitio web. Te permitirá restaurar tu sitio web rápidamente en caso de que los cambios lo afecten negativamente.
  • Paso 5.Comprueba si estás utilizando el tipo de datos correcto

    Las bases de datos SQL están diseñadas para almacenar varios tipos de datos. Cada uno tiene su propio formato específico y requisitos de almacenamiento. Por ejemplo, un valor numérico requiere una cantidad diferente de espacio de almacenamiento que un valor de cadena.

    Si estás intentando insertar datos de un tipo en una columna de otro tipo, encontrarás el error SQL 1064. Este mensaje de error suele ir acompañado de “Tienes un error en la sintaxis SQL; comprueba la que corresponda a la versión de tu servidor MySQL para que la sintaxis correcta se utilice cerca de … “.

    Por ejemplo, si inserta una cadena de texto en una columna definida como un valor numérico, obtendrá el error SQL 1064.

    Tipo de datos incorrecto que causa el error SQL 1064

    Para evitar este error en la base de datos, asegúrate de que los tipos de datos de las columnas en tu código SQL coincidan con los tipos de datos de los valores que estás insertando .
    [/ li]

  • Paso 6.Añadir datos que faltan

  • Otra causa común del error SQL 1064 es la falta de datos. Por ejemplo, si intenta insertar datos en una tabla con campos obligatorios pero deja algunos campos vacíos, obtendrá un error SQL 1064.

    Para arreglar este error, asegúrate de haber proporcionado todos los datos requeridos. Puede que tengas que añadir los datos que faltan manualmente.

    Además, el error puede aparecer al importar su base de datos desde un archivo de copia de seguridad dañado. Crea una nueva copia de seguridad de tu base de datos original e impórtala en el nuevo servidor.

    Los usuarios de SiteGround pueden aprovechar la herramienta Importar volcado de base de datos para importar bases de datos más grandes.

    Usa "Importar volcado de base de datos" en Site Tools para importar bases de datos grandes

    Si no estás seguro de los campos obligatorios, comprueba la definición de la tabla o consulta con el administrador de la base de datos.

  • Paso 7.Buscar asistencia

    Si has intentado todos los pasos anteriores y todavía no puedes solucionar el error SQL 1064, intenta encontrar ayuda.

    Puedes contactar con el administrador de la base de datos o consultar un foro online o comunidad dedicada a la programación SQL.

    Muchos recursos en línea están disponibles tanto para principiantes como para programadores experimentados, y puedes encontrar respuestas a la mayoría de las preguntas relacionadas con SQL. Puedes encontrar información útil en el foro oficial de MySQL, donde los usuarios se ayudan entre sí con problemas más elaborados y comparten sus experiencias.

3 consejos para evitar el error SQL 1064

Puede evitar el error SQL 1064 siguiendo buenas prácticas que reducen la posibilidad de cometer un error de sintaxis.

Usar un validador de SQL para detectar un error de sintaxis

Un validador de SQL es una herramienta que comprueba la sintaxis de tu código SQL e identifica errores. Su uso te permite detectar y corregir errores antes de ejecutar el código.

EverSQL es una de las herramientas de validación de SQL gratuitas más populares. Envía tu consulta SQL y presiona el botón Validate SQL Syntax. El verificador inspeccionará el código y señalará posibles errores en las consultas de MySQL.

Validador de SQL EverSQL

Usar alias SQL

Los alias SQL te permiten asignar un nombre temporal a una tabla o columna. Usando alias, puedes simplificar tu código SQL y evitar errores de sintaxis causados por errores tipográficos o ambigüedades. Ten en cuenta que el alias de SQL permanece activo solo mientras dura la consulta de SQL.

La cláusula AS habilita un alias para una tabla o columna. Para asignar un alias a una columna, usa la siguiente plantilla.

SELECT column_name AS alias_name
FROM table_name;

Para asignar un alias a una tabla, usa el siguiente formato.

SELECT column_name(s) 
FROM table_name AS alias_name;

Reemplaza column_name y table_name con los nombres existentes en tu base de datos y alias_name – con el alias personalizado que hayas elegido.

Desglose de sentencias SQL

Dividir sentencias SQL complejas en partes más pequeñas y manejables puede ayudarte a identificar errores fácilmente. Al probar partes más pequeñas de su código SQL, puedes aislar y corregir errores antes de que causen problemas significativos.

Conclusión

El error SQL 1064 es un error común que encuentran los programadores de SQL. Los errores de sintaxis, los comandos obsoletos, los tipos de datos incorrectos, los datos faltantes u otros errores en el código SQL generalmente causan este error.

Siguiendo los pasos descritos en esta guía e implementando los consejos para prevenir el error MySQL 1064, puedes evitarlo y asegurarte de que tu código SQL se ejecute sin problemas. Recuerda comprobar siempre si hay errores de sintaxis y buscar ayuda cuando sea necesario.

Comparte este artículo