Vamos hacer una pequeña aclaración:
- El estandar SQL no determina ningún uso específico para los corchetes ([]), o las llaves ({}).
- Los diferente DBMS (en especial SQL Server) le pueden haber dado a alguno de ellos usos específicos, pero eso es propio de cada DBMS. No está estandarizado.
- En lo que a MySQL se refiere, los corchetes y llaves no tienen uso específico, aunque se usan dentro del manual para claridad de ciertas explicaciones (ver
MySQL Reference Manual 5.6: Convenciones tipográficas y gramaticales)
- Es en los manuales donde la cosa cambia: Las convenciones de cada uno determina el uso de estos símbolos en las explicaciones de las sintaxis: Los corchetes se usan para indicar que clausulas o elementos son opcionales, mientras que las llaves son elementos de inclusión obligatoria. Son mandatorios todos aquellos elementos que no tienen ni llaves ni corchetes.
Pero todo esto no significa que en MySQL esos dos elementos (corchetes y llaves) deban estar dentro de las consultas escritas, porque pueden generar errores de evaluación (cuando se usan en cadenas) o errores de sintaxis.
No, insisto, no son parte de la sentencia en SQL. Son elementos descriptivos en el manual de referencia.
Nota: Como única excepción que yo conozca, los corchetes se usan en el caso de REGEXP(), es decir, con las expresiones regulares. fuera de ese caso, ninguno de los dos caracteres tiene aplicación en las consultas.