Caracteres y símbolos en SQL

Los elementos más básicos de la sintaxis SQL son los caracteres y los tokens. Los tokens son las unidades sintácticas básicas del lenguaje SQL.

Caracteres

Los símbolos básicos de las palabras clave y los operadores en el lenguaje SQL son caracteres. Los caracteres se clasifican en letras, dígitos o caracteres especiales.

  • Una letra es cualquiera de las 26 letras mayúsculas (A-Z) y 26 minúsculas (a-z) del alfabeto inglés. 1
  • Un dígito es cualquiera de los caracteres del 0 al 9.
  • Un carácter especial es cualquier carácter que no sea una letra o un dígito.

Señales

Las unidades sintácticas básicas del lenguaje SQL se denominan tokens. Una señal consta de uno o más caracteres que no son espacios en blancos, caracteres de control o caracteres incluidos en el identificador de una constante de serie o delimitador.

Los tokens se clasifican como tokens ordinarios o delimitadores :

  • Un símbolo ordinario es una constante numérica, un identificador ordinario, un identificador del lenguaje principal o una palabra clave. Los siguientes ejemplos son fichas ordinarias:
        1        .1        +2        SELECT        E        3
  • Un símbolo delimitador es una constante de tipo serie, un identificador delimitado, un símbolo de operador o cualquier carácter especial mostrado en los diagramas de sintaxis. Un signo de interrogación (?) también es un token delimitador cuando sirve como marcador de parámetro, como se explica en la instrucción PREPARE. Los siguientes ejemplos incluyen símbolos delimitadores:
        ,        'string'        "fld1"        =        .

Espacios

Un espacio es una secuencia de uno o más caracteres en blanco.

Caracteres de control

Un carácter de control es un carácter especial que se utiliza para la alineación de cadenas. Tratado de forma similar a un espacio, un carácter de control no provoca que se produzca una acción concreta. La siguiente tabla muestra los caracteres de control que reconoce Db2 y sus valores hexadecimales.

Inicio del cambio
Tabla 1. Valores hexadecimales para los caracteres de control que reconoce Db2
Carácter de control Valor hex EBCDIC UTF-8 valor hexadecimal UTF-16 valor hexadecimal
Ficha 05 09 U+0009
Salto de página 0C 0C U+000C
Retorno de carro 0D 0D U+000D
Línea nueva 15 C285 U+0085
Salto de línea 25 0A U+000A
Espacio DBCS - - U+3000
fin del cambio

Los tokens, a excepción de las constantes de cadena y ciertos identificadores delimitados, no deben incluir un carácter de control o espacio. Un carácter de control o un espacio pueden seguir a un token. Cada token ordinario debe ir seguido de un token delimitador, un carácter de control o un espacio. Si la sintaxis no permite que un token delimitador siga a un token ordinario, dicho token ordinario debe ir seguido de un carácter de control o un espacio.

Caracteres trigraph

Los caracteres del corchete izquierdo ([) y del corchete derecho (]) se utilizan en la sintaxis para referirse a un elemento de una matriz. Esos caracteres no se pueden especificar con algunos CCSID. Los siguientes trígrafos pueden utilizarse como una forma alternativa de especificar los corchetes izquierdo y derecho:

  • La cadena ??( puede especificarse en lugar de un corchete izquierdo ([).
  • La cadena ??) puede especificarse en lugar de un corchete derecho (]).

Comentarios

Las sentencias de SQL dinámico pueden incluir comentarios de SQL. Las sentencias de SQL estático pueden incluir comentarios SQL o del lenguaje principal. Se pueden especificar comentarios dondequiera que se pueda especificar un espacio, excepto dentro de un símbolo delimitador o entre las palabras clave EXEC y SQL. En Java™, los comentarios SQL no están permitidos dentro de las expresiones Java incrustadas. Existen dos tipos de comentarios de SQL:

comentarios simples
Los comentarios simples se introducen con dos guiones consecutivos (--). Los comentarios simples no pueden continuar más allá del final de la línea.
comentarios compuestos
Los comentarios entre corchetes se introducen con /* y terminan con */. Un comentario entre corchetes puede continuar más allá del final de la línea.
El siguiente ejemplo muestra cómo incluir comentarios en una instrucción SQL dentro de un programa C. El ejemplo utiliza comentarios simples y entre corchetes:
   EXEC SQL
     CREATE VIEW PRJ_MAXPER         --projects with most support personnel
       /*
        * Returns number and name of the project
        */
      AS SELECT PROJNO, PROJNAME     -- number and name of project
           FROM DSN8910.PROJ
        /*
         * E21 is the systems support dept code
         */
      WHERE DEPTNO = 'E21'           -- systems support dept code
      AND PRSTAFF > 1;

Para más información, consulte los comentarios de SQL.

Mayúsculas y minúsculas

Un token en una instrucción SQL puede incluir letras minúsculas, pero las letras minúsculas en un token normal se convierten en mayúsculas. Sin embargo, las letras minúsculas se convierten en mayúsculas en un programa C o Java solo si se especifica la opción de precompilador adecuada. Los símbolos delimitadores no se convierten nunca a mayúsculas.

Por ejemplo, las dos siguientes afirmaciones son equivalentes después de la carpeta:
   select * from DSN8C10.EMP where lastname = 'Smith';
   SELECT * FROM DSN8C10.EMP WHERE LASTNAME = 'Smith';
1 Las letras también incluyen tres puntos de código reservados como extensores alfabéticos para los idiomas nacionales ($, # y @ en los Estados Unidos). Estos tres puntos de código ( X'5B', X'7B', y X'7C' ) deben evitarse porque representan caracteres diferentes según el CCSID.