Pregunta

¿Cuáles son los pros y los contras del uso de los alias de tabla en SQL?Yo personalmente trato de evitarlos, como creo que hacen que el código sea más legible (especialmente cuando la lectura a través de las grandes, donde/y declaraciones), pero estaría interesado en escuchar cualquier contador de puntos para este.Cuando es generalmente una buena idea utilizar los alias de tabla, y usted tiene cualquiera de los formatos preferidos?

¿Fue útil?

Solución

Los alias de tabla son un mal necesario cuando se trata altamente normalizada de esquemas.Por ejemplo, y yo no soy el arquitecto de este DB, así que tengan paciencia conmigo, puede tomar 7 se une con el fin de tener un ambiente limpio y completo registro de la espalda, que incluye el nombre de la persona, dirección, número de teléfono y la afiliación de la compañía.

En lugar de algo individual estándar personaje de alias, que tienden a favorecer una palabra corta alias el ejemplo anterior de SQL termina buscando como:

select person.FirstName
      ,person.LastName
      ,addr.StreetAddress
      ,addr.City
      ,addr.State
      ,addr.Zip
      ,phone.PhoneNumber
      ,company.CompanyName
from tblPeople person
left outer join tblAffiliations affl on affl.personID = person.personID
left outer join tblCompany company on company.companyID = affl.companyID

...etc

Otros consejos

Bueno, hay algunos casos en los que debe el uso de ellos, como cuando usted necesita para unirse a la misma tabla dos veces en una consulta.

También depende de si usted tiene nombres de columna única a través de tablas.En nuestra base de datos heredados tenemos 3-carta de los prefijos de todas las columnas, a partir de una forma abreviada de la tabla, simplemente porque un antiguo sistema de base de datos una vez fuimos compatible con lo que no tenía el apoyo de la tabla de alias del todo bien.

Si usted tiene los nombres de columna que se producen en más de una tabla, especificando el nombre de la tabla como parte de la columna de referencia es una necesidad, y por lo tanto un alias de tabla permitirá disminuir la duración de la sintaxis.

Soy la única persona aquí que realmente odia?

En general, yo no los uso, a menos que tengo que hacer.Yo realmente odio tener que leer algo como

select a.id, a.region, a.firstname, a.blah, b.yadda, b.huminahumina, c.crap
from table toys as a
inner join prices as b on a.blah = b.yadda
inner join customers as c on c.crap = something else
etc

Cuando leí SQL, me gustaría saber exactamente de lo que estoy seleccionando cuando lo leí;alias realmente me confundan más porque tengo que slog a través de las líneas de columnas antes de llegar a el nombre de la tabla, que representa generalmente la información acerca de los datos que el alias no.Tal vez está bien si usted hizo el alias, pero que suelen leer las preguntas en StackOverflow con el código que parece utilizar el alias por ninguna buena razón.(Además, a veces, alguien va a crear un alias en una declaración y simplemente no utilizarlo.¿Por qué?)

Creo que los alias de tabla se utiliza mucho debido a que una gran cantidad de personas que se oponen a escribir.Yo no creo que sea una buena excusa, aunque.Que la excusa es la razón por la que terminan con terrible de nombres de variables, terrible función de siglas, el código de malo...yo me tome el tiempo de escribir el nombre completo.Soy un rápido typer, aunque, así que tal vez tiene algo que ver con ella.(Tal vez en el futuro, cuando tengo túnel carpiano, voy a reconsiderar mi opinión sobre los alias.:P ), sobre todo me gusta correr a través de los alias de tabla en el código PHP, donde creo que no hay absolutamente ninguna razón para hacerlo, sólo tienes que escribir de una vez!

Yo siempre uso la columna de la fase de clasificación en mis declaraciones, pero yo no soy reacio a escribir mucho, así que con mucho gusto le escriba el nombre completo varias veces.(Concedido, me hacen abuso de MySQL tab.) A menos que sea una situación en la que tengo que usar un alias (como algunos que se describen en otras respuestas), me parece que la capa de abstracción adicional engorroso e innecesario.

Editar: (Más de un año después) estoy en contacto con algunos de los procedimientos almacenados que el uso de alias (yo no se escribir y soy nuevo en este proyecto), y son una especie de doloroso.Me doy cuenta de que la razón por la que no me gusta alias es debido a cómo están definidos.Usted sabe como es generalmente una buena práctica declarar variables en la parte superior de su alcance?(Y por lo general al principio de una línea?) Los alias de SQL no siguen esta convención, que me hace moler los dientes.Por lo tanto, tengo que buscar el código completo para un solo alias para averiguar de dónde es (y lo que es frustrante es, tengo que leer a través de la lógica antes de encontrar el alias de la declaración).Si no fuera por que, sinceramente me gustaría que el sistema sea mejor.

Si alguna vez vuelvo a escribir un procedimiento almacenado que alguien más tendrá que lidiar con el, estoy poniendo mi definiciones de alias en un bloque de comentario al principio del archivo, como una referencia.Honestamente no puedo entender cómo los chicos no te vuelvas loco sin ella.

Microsoft SQL de la consulta del optimizador de beneficios de utilizar cualquiera de los nombres completos o alias.

Personalmente prefiero los alias, y menos tengo un montón de mesas tienden a ser de una sola letra queridos.

--seems pretty readable to me ;-)
select a.Text
from Question q
    inner join Answer a
        on a.QuestionId = q.QuestionId

También hay un límite práctico en cuanto a la duración de una cadena Sql que se pueda ejecutar con los alias de este límite más fáciles de evitar.

Bueno

Como se ha mencionado varias veces antes, es una buena práctica prefijo todos los nombres de columna para ver fácilmente la columna que pertenece a la tabla a y los alias son más cortos que completa los nombres de tabla por lo que la consulta es más fácil de leer y entender.Si utiliza un buen aliasing esquema de curso.

Y si usted cree o leer el código de una aplicación, que utiliza almacenado externamente o generadas dinámicamente los nombres de tabla, a continuación, sin alias es realmente difícil decir a primera vista lo que todos aquellos "%s"es o de otros marcadores de posición de pie para.No es un caso extremo, por ejemplo, muchas aplicaciones web permiten personalizar la tabla de prefijos de nombre en el momento de la instalación.

Si yo escribo una consulta yo (escribiendo en el editor y no con un diseñador) yo siempre uso de alias para el nombre de la tabla, así que sólo tienes que escribir el nombre de tabla completa de una vez.

Realmente me gusta la lectura de consultas generadas por un diseñador con el nombre de tabla completa como un prefijo para cada nombre de columna.

Supongo que la única cosa que realmente habla en contra de ellos es el exceso de abstracción.Si usted tendrá una buena idea de lo que el alias se refiere a (buena nomenclatura de ayuda;'a', 'b', 'c' puede ser muy problemático, especialmente cuando usted está leyendo la declaración de meses o años más tarde), yo no veo nada de malo con aliasing.

Como otros han dicho, se une a requieren si estás utilizando la misma tabla (o vista) varias veces, pero incluso fuera de esa situación, un alias puede servir para aclarar un origen de datos de propósito en un determinado contexto.En el alias del nombre, intenta contestar por qué usted está accediendo a datos concretos, no ¿ los datos se.

Me ENCANTA alias!!!!He hecho algunas pruebas usando vsno y he visto algunos de procesamiento de las ganancias.Mi conjetura es que el procesamiento de las ganancias sería mayor cuando usted está tratando con conjuntos de datos más grandes y complejas consultas anidadas que sin el.Si soy capaz de probar esto, voy a dejar que usted sabe.

Usted necesita si usted va a participar en la mesa a sí mismo, o si el uso de la columna de nuevo en una subconsulta...

Los alias son grandes si usted considerar que mi organización tiene la tabla de nombres como:SchemaName.DataPointName_SubPoint_Sub-SubPoint_Sub-Sub-Párrafo...Mi equipo utiliza un bonito conjunto estándar de abreviaturas, por lo que la conjetura es minimizado.Tendremos decir ProgramInformationDataPoint acortado a pidp, y propuestas a los sub.

Lo bueno es que una vez que se va de esta manera y la gente está de acuerdo con ella, hace que esos HAYUGE archivos de sólo un poco más pequeño y más fácil de manejar.Al menos para mí, menos caracteres para transmitir la misma información parece ir un poco más fácil en mi cerebro.

Me gusta mucho explícitos los nombres de tabla (no es raro que más de 100 caracteres) porque yo uso muchas tablas y si los nombres no son explícitos, yo podría ser confundido con lo que cada tabla almacena.

Así que cuando escribo una consulta, yo tiendo a usar más corto alias que tengan sentido dentro del ámbito de la consulta y que hace que el código mucho más legible.

Yo siempre uso de alias en mi consulta y es parte del código de la guía en mi empresa.En primer lugar usted necesita alias o nombres de tabla cuando hay columnas con nombres idénticos en la combinación de tablas.En mi opinión el alias de mejorar la legibilidad en consultas complejas y me permite ver rápidamente la ubicación de cada una de las columnas.Incluso podemos utilizar el alias con una sola tabla de consultas, porque la experiencia ha demostrado que la única tabla de consultas no te quedes sola tabla por mucho tiempo.

En mi humilde opinión, no importa realmente corta con los nombres de las tablas que hacen de sentido, en una ocasión trabajó en las bases de datos de donde el nombre de la tabla podría ser algo como VWRECOFLY o alguna otra cadena aleatoria (dictado por la política de la empresa) que realmente representa a los usuarios, así que en ese caso me parece alias realmente ayudar a hacer el código más legible.(los usuarios.nombre de usuario tiene mucho más sentido, a continuación, VWRECOFLY.nombre de usuario)

Yo siempre uso el alias, ya que para obtener el rendimiento adecuado en MSSQL necesita prefijo con el esquema en todo momento.Así que usted verá un montón de

Seleccione Persona.Nombre De
dbo.Persona Como Persona

Yo siempre uso alias la hora de escribir consultas.Generalmente trato y abreviar el nombre de la tabla a 1 o 2 representante de las letras.Para que los Usuarios se convierte en u y debtor_transactions se convierte en dt etc...

Se ahorra escribiendo y todavía lleva algún significado.

Los nombres más cortos hace que sea más legible para mí.

Si usted no usa un alias, es un error en el código, esperando a suceder.

SELECT Description -- actually in a
 FROM
 table_a a,
 table_b b
 WHERE
 a.ID = b.ID

Qué sucede cuando usted hace una pequeña cosa como agregar una columna llamada Descripción para Table_B.Eso es correcto, obtendrá un error.La adición de una columna no necesita romper nada.Nunca veo a escribir buen código libre de errores de código, como un mal necesario.

Los alias son necesarias cuando la combinación de tablas con columnas que tienen nombres idénticos.

Licenciado bajo: CC-BY-SA con atribución
No afiliado a StackOverflow
scroll top