ClickHouse/docs/es/sql-reference/ansi.md
Ivan Blinkov cd14f9ebcb
SQL reference refactoring (#10857)
* split up select.md

* array-join.md basic refactoring

* distinct.md basic refactoring

* format.md basic refactoring

* from.md basic refactoring

* group-by.md basic refactoring

* having.md basic refactoring

* additional index.md refactoring

* into-outfile.md basic refactoring

* join.md basic refactoring

* limit.md basic refactoring

* limit-by.md basic refactoring

* order-by.md basic refactoring

* prewhere.md basic refactoring

* adjust operators/index.md links

* adjust sample.md links

* adjust more links

* adjust operatots links

* fix some links

* adjust aggregate function article titles

* basic refactor of remaining select clauses

* absolute paths in make_links.sh

* run make_links.sh

* remove old select.md locations

* translate docs/es

* translate docs/fr

* translate docs/fa

* remove old operators.md location

* change operators.md links

* adjust links in docs/es

* adjust links in docs/es

* minor texts adjustments

* wip

* update machine translations to use new links

* fix changelog

* es build fixes

* get rid of some select.md links

* temporary adjust ru links

* temporary adjust more ru links

* improve curly brace handling

* adjust ru as well

* fa build fix

* ru link fixes

* zh link fixes

* temporary disable part of anchor checks
2020-05-15 07:34:54 +03:00

181 lines
63 KiB
Markdown
Raw Blame History

This file contains invisible Unicode characters

This file contains invisible Unicode characters that are indistinguishable to humans but may be processed differently by a computer. If you think that this is intentional, you can safely ignore this warning. Use the Escape button to reveal them.

---
machine_translated: true
machine_translated_rev: ad252bbb4f7e2899c448eb42ecc39ff195c8faa1
toc_priority: 40
toc_title: Compatibilidad con ANSI
---
# Compatibilidad de SQL ANSI de ClickHouse SQL Dialect {#ansi-sql-compatibility-of-clickhouse-sql-dialect}
!!! note "Nota"
Este artículo se basa en la Tabla 38, “Feature taxonomy and definition for mandatory features”, Annex F of ISO/IEC CD 9075-2:2013.
## Diferencias en el comportamiento {#differences-in-behaviour}
En la tabla siguiente se enumeran los casos en que la característica de consulta funciona en ClickHouse, pero no se comporta como se especifica en ANSI SQL.
| Feature ID | Nombre de la función | Diferencia |
|------------|----------------------------------------------------|--------------------------------------------------------------------------------------------------------------------------------------------|
| E011 | Tipos de datos numéricos | El literal numérico con punto se interpreta como aproximado (`Float64`) en lugar de exacta (`Decimal`) |
| E051-05 | Los elementos seleccionados pueden ser renombrados | Los cambios de nombre de los elementos tienen un alcance de visibilidad más amplio que solo el resultado SELECT |
| E141-01 | Restricciones NOT NULL | `NOT NULL` está implícito para las columnas de tabla de forma predeterminada |
| E011-04 | Operadores aritméticos | ClickHouse se desborda en lugar de la aritmética comprobada y cambia el tipo de datos de resultado en función de las reglas personalizadas |
## Estado de la función {#feature-status}
| Feature ID | Nombre de la función | Estatus | Comentario |
|------------|---------------------------------------------------------------------------------------------------------------------------------------------------------|----------------------------|------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------|
| **E011** | **Tipos de datos numéricos** | **Parcial**{.text-warning} | |
| E011-01 | Tipos de datos INTEGER y SMALLINT | Sí{.text-success} | |
| E011-02 | REAL, DOUBLE PRECISION y FLOAT tipos de datos tipos de datos | Parcial{.text-warning} | `FLOAT(<binary_precision>)`, `REAL` y `DOUBLE PRECISION` no son compatibles |
| E011-03 | Tipos de datos DECIMAL y NUMERIC | Parcial{.text-warning} | Solo `DECIMAL(p,s)` es compatible, no `NUMERIC` |
| E011-04 | Operadores aritméticos | Sí{.text-success} | |
| E011-05 | Comparación numérica | Sí{.text-success} | |
| E011-06 | Conversión implícita entre los tipos de datos numéricos | No{.text-danger} | ANSI SQL permite la conversión implícita arbitraria entre tipos numéricos, mientras que ClickHouse se basa en funciones que tienen múltiples sobrecargas en lugar de conversión implícita |
| **E021** | **Tipos de cadena de caracteres** | **Parcial**{.text-warning} | |
| E021-01 | Tipo de datos CHARACTER | No{.text-danger} | |
| E021-02 | Tipo de datos CHARACTER VARYING | No{.text-danger} | `String` se comporta de manera similar, pero sin límite de longitud entre paréntesis |
| E021-03 | Literales de caracteres | Parcial{.text-warning} | Sin concatenación automática de literales consecutivos y compatibilidad con el conjunto de caracteres |
| E021-04 | Función CHARACTER\_LENGTH | Parcial{.text-warning} | No `USING` clausula |
| E021-05 | Función OCTET\_LENGTH | No{.text-danger} | `LENGTH` se comporta de manera similar |
| E021-06 | SUBSTRING | Parcial{.text-warning} | No hay soporte para `SIMILAR` y `ESCAPE` cláusulas, no `SUBSTRING_REGEX` variante |
| E021-07 | Concatenación de caracteres | Parcial{.text-warning} | No `COLLATE` clausula |
| E021-08 | Funciones SUPERIOR e INFERIOR | Sí{.text-success} | |
| E021-09 | Función TRIM | Sí{.text-success} | |
| E021-10 | Conversión implícita entre los tipos de cadena de caracteres de longitud fija y longitud variable | No{.text-danger} | ANSI SQL permite la conversión implícita arbitraria entre tipos de cadena, mientras que ClickHouse se basa en funciones que tienen múltiples sobrecargas en lugar de conversión implícita |
| E021-11 | Función POSITION | Parcial{.text-warning} | No hay soporte para `IN` y `USING` cláusulas, no `POSITION_REGEX` variante |
| E021-12 | Comparación de caracteres | Sí{.text-success} | |
| **E031** | **Identificador** | **Parcial**{.text-warning} | |
| E031-01 | Identificadores delimitados | Parcial{.text-warning} | El soporte literal Unicode es limitado |
| E031-02 | Identificadores de minúsculas | Sí{.text-success} | |
| E031-03 | Trailing subrayado | Sí{.text-success} | |
| **E051** | **Especificación básica de la consulta** | **Parcial**{.text-warning} | |
| E051-01 | SELECT DISTINCT | Sí{.text-success} | |
| E051-02 | Cláusula GROUP BY | Sí{.text-success} | |
| E051-04 | GROUP BY puede contener columnas que no estén en `<select list>` | Sí{.text-success} | |
| E051-05 | Los elementos seleccionados pueden ser renombrados | Sí{.text-success} | |
| E051-06 | Cláusula HAVING | Sí{.text-success} | |
| E051-07 | Calificado \* en la lista de selección | Sí{.text-success} | |
| E051-08 | Nombre de correlación en la cláusula FROM | Sí{.text-success} | |
| E051-09 | Cambiar el nombre de las columnas en la cláusula FROM | No{.text-danger} | |
| **E061** | **Predicados básicos y condiciones de búsqueda** | **Parcial**{.text-warning} | |
| E061-01 | Predicado de comparación | Sí{.text-success} | |
| E061-02 | ENTRE predicado | Parcial{.text-warning} | No `SYMMETRIC` y `ASYMMETRIC` clausula |
| E061-03 | Predicado IN con lista de valores | Sí{.text-success} | |
| E061-04 | COMO predicado | Sí{.text-success} | |
| E061-05 | Predicado LIKE: cláusula ESCAPE | No{.text-danger} | |
| E061-06 | Predicado NULL | Sí{.text-success} | |
| E061-07 | Predicado de comparación cuantificado | No{.text-danger} | |
| E061-08 | Predicado EXISTS | No{.text-danger} | |
| E061-09 | Subconsultas en predicado de comparación | Sí{.text-success} | |
| E061-11 | Subconsultas en el predicado IN | Sí{.text-success} | |
| E061-12 | Subconsultas en predicado de comparación cuantificado | No{.text-danger} | |
| E061-13 | Subconsultas correlacionadas | No{.text-danger} | |
| E061-14 | Condición de búsqueda | Sí{.text-success} | |
| **E071** | **Expresiones de consulta básicas** | **Parcial**{.text-warning} | |
| E071-01 | Operador de tabla UNION DISTINCT | No{.text-danger} | |
| E071-02 | Operador de tabla UNION ALL | Sí{.text-success} | |
| E071-03 | EXCEPTO operador de tabla DISTINCT | No{.text-danger} | |
| E071-05 | Las columnas combinadas a través de operadores de tabla no necesitan tener exactamente el mismo tipo de datos | Sí{.text-success} | |
| E071-06 | Operadores de tabla en subconsultas | Sí{.text-success} | |
| **E081** | **Privilegios básicos** | **Parcial**{.text-warning} | Trabajo en curso |
| **E091** | **Establecer funciones** | **Sí**{.text-success} | |
| E091-01 | AVG | Sí{.text-success} | |
| E091-02 | COUNT | Sí{.text-success} | |
| E091-03 | MAX | Sí{.text-success} | |
| E091-04 | MIN | Sí{.text-success} | |
| E091-05 | SUM | Sí{.text-success} | |
| E091-06 | Cuantificador ALL | No{.text-danger} | |
| E091-07 | Cuantificador DISTINCT | Parcial{.text-warning} | No se admiten todas las funciones agregadas |
| **E101** | **Manipulación de datos básicos** | **Parcial**{.text-warning} | |
| E101-01 | Instrucción INSERT | Sí{.text-success} | Nota: la clave principal en ClickHouse no implica el `UNIQUE` limitación |
| E101-03 | Instrucción UPDATE buscada | No{.text-danger} | Hay una `ALTER UPDATE` declaración para la modificación de datos por lotes |
| E101-04 | Instrucción DELETE buscada | No{.text-danger} | Hay una `ALTER DELETE` declaración para la eliminación de datos por lotes |
| **E111** | **Instrucción SELECT de una sola fila** | **No**{.text-danger} | |
| **E121** | **Soporte básico del cursor** | **No**{.text-danger} | |
| E121-01 | DECLARE CURSOR | No{.text-danger} | |
| E121-02 | Las columnas PEDIR POR no necesitan estar en la lista de selección | No{.text-danger} | |
| E121-03 | Expresiones de valor en la cláusula ORDER BY | No{.text-danger} | |
| E121-04 | Declaración ABIERTA | No{.text-danger} | |
| E121-06 | Instrucción UPDATE posicionada | No{.text-danger} | |
| E121-07 | Instrucción DELETE posicionada | No{.text-danger} | |
| E121-08 | Declaración CERRAR | No{.text-danger} | |
| E121-10 | Declaración FETCH: implícita NEXT | No{.text-danger} | |
| E121-17 | CON Cursores HOLD | No{.text-danger} | |
| **E131** | **Soporte de valor nulo (nulos en lugar de valores)** | **Parcial**{.text-warning} | Se aplican algunas restricciones |
| **E141** | **Restricciones de integridad básicas** | **Parcial**{.text-warning} | |
| E141-01 | Restricciones NOT NULL | Sí{.text-success} | Nota: `NOT NULL` está implícito para las columnas de tabla de forma predeterminada |
| E141-02 | Restricción UNIQUE de columnas NOT NULL | No{.text-danger} | |
| E141-03 | Restricciones PRIMARY KEY | No{.text-danger} | |
| E141-04 | Restricción básica FOREIGN KEY con el valor predeterminado NO ACTION para la acción de eliminación referencial y la acción de actualización referencial | No{.text-danger} | |
| E141-06 | Restricción CHECK | Sí{.text-success} | |
| E141-07 | Valores predeterminados de columna | Sí{.text-success} | |
| E141-08 | NO NULL inferido en CLAVE PRIMARIA | Sí{.text-success} | |
| E141-10 | Los nombres de una clave externa se pueden especificar en cualquier orden | No{.text-danger} | |
| **E151** | **Soporte de transacciones** | **No**{.text-danger} | |
| E151-01 | Declaración COMMIT | No{.text-danger} | |
| E151-02 | Instrucción ROLLBACK | No{.text-danger} | |
| **E152** | **Instrucción SET TRANSACTION básica** | **No**{.text-danger} | |
| E152-01 | Instrucción SET TRANSACTION: cláusula ISOLATION LEVEL SERIALIZABLE | No{.text-danger} | |
| E152-02 | Instrucción SET TRANSACTION: cláusulas READ ONLY y READ WRITE | No{.text-danger} | |
| **E153** | **Consultas actualizables con subconsultas** | **No**{.text-danger} | |
| **E161** | **Comentarios SQL usando doble menos inicial** | **Sí**{.text-success} | |
| **E171** | **Soporte SQLSTATE** | **No**{.text-danger} | |
| **E182** | **Enlace de idioma de host** | **No**{.text-danger} | |
| **F031** | **Manipulación básica del esquema** | **Parcial**{.text-warning} | |
| F031-01 | Instrucción CREATE TABLE para crear tablas base persistentes | Parcial{.text-warning} | No `SYSTEM VERSIONING`, `ON COMMIT`, `GLOBAL`, `LOCAL`, `PRESERVE`, `DELETE`, `REF IS`, `WITH OPTIONS`, `UNDER`, `LIKE`, `PERIOD FOR` cláusulas y sin soporte para tipos de datos resueltos por el usuario |
| F031-02 | Instrucción CREATE VIEW | Parcial{.text-warning} | No `RECURSIVE`, `CHECK`, `UNDER`, `WITH OPTIONS` cláusulas y sin soporte para tipos de datos resueltos por el usuario |
| F031-03 | Declaración GRANT | Sí{.text-success} | |
| F031-04 | Sentencia ALTER TABLE: cláusula ADD COLUMN | Parcial{.text-warning} | No hay soporte para `GENERATED` cláusula y período de tiempo del sistema |
| F031-13 | Instrucción DROP TABLE: cláusula RESTRICT | No{.text-danger} | |
| F031-16 | Instrucción DROP VIEW: cláusula RESTRICT | No{.text-danger} | |
| F031-19 | Declaración REVOKE: cláusula RESTRICT | No{.text-danger} | |
| **F041** | **Tabla unida básica** | **Parcial**{.text-warning} | |
| F041-01 | Unión interna (pero no necesariamente la palabra clave INNER) | Sí{.text-success} | |
| F041-02 | Palabra clave INTERNA | Sí{.text-success} | |
| F041-03 | LEFT OUTER JOIN | Sí{.text-success} | |
| F041-04 | RIGHT OUTER JOIN | Sí{.text-success} | |
| F041-05 | Las uniones externas se pueden anidar | Sí{.text-success} | |
| F041-07 | La tabla interna en una combinación externa izquierda o derecha también se puede usar en una combinación interna | Sí{.text-success} | |
| F041-08 | Todos los operadores de comparación son compatibles (en lugar de solo =) | No{.text-danger} | |
| **F051** | **Fecha y hora básicas** | **Parcial**{.text-warning} | |
| F051-01 | Tipo de datos DATE (incluido el soporte del literal DATE) | Parcial{.text-warning} | No literal |
| F051-02 | Tipo de datos TIME (incluido el soporte del literal TIME) con una precisión de segundos fraccionarios de al menos 0 | No{.text-danger} | |
| F051-03 | Tipo de datos TIMESTAMP (incluido el soporte del literal TIMESTAMP) con una precisión de segundos fraccionarios de al menos 0 y 6 | No{.text-danger} | `DateTime64` tiempo proporciona una funcionalidad similar |
| F051-04 | Predicado de comparación en los tipos de datos DATE, TIME y TIMESTAMP | Parcial{.text-warning} | Sólo un tipo de datos disponible |
| F051-05 | CAST explícito entre tipos de fecha y hora y tipos de cadena de caracteres | Sí{.text-success} | |
| F051-06 | CURRENT\_DATE | No{.text-danger} | `today()` es similar |
| F051-07 | LOCALTIME | No{.text-danger} | `now()` es similar |
| F051-08 | LOCALTIMESTAMP | No{.text-danger} | |
| **F081** | **UNIÓN y EXCEPTO en vistas** | **Parcial**{.text-warning} | |
| **F131** | **Operaciones agrupadas** | **Parcial**{.text-warning} | |
| F131-01 | Cláusulas WHERE, GROUP BY y HAVING admitidas en consultas con vistas agrupadas | Sí{.text-success} | |
| F131-02 | Múltiples tablas admitidas en consultas con vistas agrupadas | Sí{.text-success} | |
| F131-03 | Establecer funciones admitidas en consultas con vistas agrupadas | Sí{.text-success} | |
| F131-04 | Subconsultas con cláusulas GROUP BY y HAVING y vistas agrupadas | Sí{.text-success} | |
| F131-05 | SELECCIONAR una sola fila con cláusulas GROUP BY y HAVING y vistas agrupadas | No{.text-danger} | |
| **F181** | **Múltiples módulos de apoyo** | **No**{.text-danger} | |
| **F201** | **Función de fundición** | **Sí**{.text-success} | |
| **F221** | **Valores predeterminados explícitos** | **No**{.text-danger} | |
| **F261** | **Expresión CASE** | **Sí**{.text-success} | |
| F261-01 | Caso simple | Sí{.text-success} | |
| F261-02 | CASO buscado | Sí{.text-success} | |
| F261-03 | NULLIF | Sí{.text-success} | |
| F261-04 | COALESCE | Sí{.text-success} | |
| **F311** | **Instrucción de definición de esquema** | **Parcial**{.text-warning} | |
| F311-01 | CREATE SCHEMA | No{.text-danger} | |
| F311-02 | CREATE TABLE para tablas base persistentes | Sí{.text-success} | |
| F311-03 | CREATE VIEW | Sí{.text-success} | |
| F311-04 | CREATE VIEW: WITH CHECK OPTION | No{.text-danger} | |
| F311-05 | Declaración GRANT | Sí{.text-success} | |
| **F471** | **Valores escalares de la subconsulta** | **Sí**{.text-success} | |
| **F481** | **Predicado NULL expandido** | **Sí**{.text-success} | |
| **F812** | **Marcado básico** | **No**{.text-danger} | |
| **T321** | **Rutinas básicas invocadas por SQL** | **No**{.text-danger} | |
| T321-01 | Funciones definidas por el usuario sin sobrecarga | No{.text-danger} | |
| T321-02 | Procedimientos almacenados definidos por el usuario sin sobrecarga | No{.text-danger} | |
| T321-03 | Invocación de función | No{.text-danger} | |
| T321-04 | Declaración de LLAMADA | No{.text-danger} | |
| T321-05 | Declaración DEVOLUCIÓN | No{.text-danger} | |
| **T631** | **Predicado IN con un elemento de lista** | **Sí**{.text-success} | |