Puede establecer alias de tabla en SQL escribiendo el identificador justo después del nombre de la tabla.
SELECT * FROM table t1;
Incluso puede usar la palabra clave AS
para indicar el alias.
SELECT * FROM table AS t1;
¿Cuál es la diferencia entre ellos si hay alguno?
Veo que las personas mayores de DBA tienden a escribir declaraciones sin AS
, pero la mayoría de los nuevos tutoriales lo usan.
Actualización: sé cuál es el propósito de los alias de tabla y columna. Tengo curiosidad, ¿cuál es la razón de tener una palabra clave separada para establecer alias mientras también funciona sin ella?
CREATE PROC Test @Param1 INT AS SELECT @Param1
Respuestas:
No hay diferencia entre las dos declaraciones anteriores. AS es solo una forma más explícita de mencionar el alias
fuente
Todos los que respondieron antes que yo están en lo correcto. Se usa como un nombre de acceso directo de alias para una tabla cuando tiene consultas largas o consultas que tienen uniones. Aquí hay un par de ejemplos.
Ejemplo 1
Ejemplo 2
Ejemplo 3 Es una buena práctica usar la palabra clave AS, y es muy recomendable, pero es posible realizar la misma consulta sin una (y lo hago a menudo).
Como puede ver, omití la palabra clave AS en el último ejemplo. Y se puede usar como un alias.
Ejemplo 4
Salida del ejemplo 4
fuente
Cuando no esté seguro de qué sintaxis elegir, especialmente cuando no parece haber mucho para separar las opciones, consulte un libro sobre heurística. Hasta donde sé, el único libro de heurística para SQL es 'Estilo de programación SQL de Joe Celko':
De esta manera, si a tu equipo no le gusta la convención, puedes culpar a Celko, sé que sí;)
ACTUALIZACIÓN 1: IIRC durante mucho tiempo, Oracle no admitió la
AS
palabra clave (nombre de correlación anterior), lo que puede explicar por qué algunos antiguos no la usan habitualmente.ACTUALIZACIÓN 2: el término 'nombre de correlación', aunque es usado por el Estándar SQL, es inapropiado. El concepto subyacente es el de una ' variable de rango '.
ACTUALIZACIÓN 3: Acabo de volver a leer lo que escribió Celko y se equivoca: ¡no se cambia el nombre de la tabla! Ahora pienso:
fuente
La
AS
palabra clave es dar un nombre ALIAS a la tabla de la base de datos o a la columna de la tabla. En su ejemplo, ambas afirmaciones son correctas, pero hay circunstancias en las que se necesita la cláusula AS (aunque elAS
operador en sí es opcional), por ejemploEn este caso, la
Employee
tabla tiene unasalary
columna y solo queremos el doble del salario con un nuevo nombreDouble Salary
.Lo siento si mi explicación no es efectiva.
Actualización basada en su comentario, tiene razón, mi declaración anterior no era válida. La única razón por la que puedo pensar es que la
AS
cláusula ha existido durante mucho tiempo en el mundo SQL que se ha incorporado en el RDMS actual para compatibilidad con versiones anteriores.fuente
AS
no es obligatorio ni necesario incluso en este caso. TratarSELECT 1 + 1 "result"
.El uso es más obvio si no usa 'SELECCIONAR *' (que es un mal hábito del que debería dejar):
fuente
Es una forma formal de especificar un nombre de correlación para una entidad para que pueda abordarlo fácilmente en otra parte de la consulta.
fuente
En
AS
este caso, es una palabra clave opcional definida en ANSI SQL 92 para definir un<<correlation name>
, comúnmente conocido como alias para una tabla.Parece una práctica recomendada NO utilizar la
AS
palabra clave para los alias de tabla, ya que no es compatible con varias bases de datos de uso común.fuente
as
palabra clave para los alias de tabla.En los primeros días de SQL, se eligió como la solución al problema de cómo tratar con nombres de columnas duplicados (ver nota más abajo).
Para tomar prestada una consulta de otra respuesta:
La columna
ProductID
(y posiblemente otras) es común a ambas tablas y dado que la sintaxis de la condición de unión requiere referencia a ambas, la 'calificación de punto' proporciona desambiguación.Por supuesto, ¡la mejor solución fue nunca haber permitido duplicar nombres de columna en primer lugar! Felizmente, si usa la
NATURAL JOIN
sintaxis más nueva , la necesidad de las variables de rangoP
yO
desaparece:Pero, ¿por qué la
AS
palabra clave es opcional? Mi recuerdo de una discusión personal con un miembro del comité estándar de SQL (ya sea Joe Celko o Hugh Darwen) fue que su recuerdo era que, al momento de definir el estándar, el producto de un proveedor (¿Microsoft?) Requería su inclusión y el de otro proveedor. producto (¿Oracle?) requirió su omisión, por lo que el compromiso elegido fue hacerlo opcional. No tengo ninguna cita para esto, ¡o me crees o no!En los primeros días del modelo relacional, el producto cruzado (o theta-join o equi-join) de las relaciones cuyos encabezados no son disjuntos parecía producir una relación con dos atributos del mismo nombre; La solución de Codd a este problema en su cálculo relacional fue el uso de la calificación de puntos, que luego se emuló en SQL (más tarde se dio cuenta de que la llamada unión natural era primitiva sin pérdida; es decir, la unión natural puede reemplazar todas las uniones y incluso producto cruzado).
Fuente: Sistema de negocios 12, Notas clave para diapositivas de la presentación realizada en el Taller de Implementadores de TTM, Universidad de Northumbria, 2-3 de junio de 2011 por Hugh Darwen
fuente
AS
palabra clave es opcional (¡sin cita, obviamente!). Hugh se retiró hace unos años. Creo que Celko podría estar activo todavía: ¿sus recuerdos agregarían peso? La evidencia y el rastro de papel simplemente no existen :(Si diseña una consulta con el editor de consultas en SQL Server 2012, por ejemplo, obtendrá esto:
Sin embargo, eliminar el AS no hace ninguna diferencia como en lo siguiente:
En este caso, el uso de AS es superfluo, pero en muchos otros lugares es necesario.
fuente