sql >> Base de Datos >  >> RDS >> Mysql

Selección de SQL que incluye el tipo de datos y los valores de datos

Podrías SELECT EMPLOYEE.COL1, INFO.DATA_TYPE FROM EMPLOYEE, INFORMATION_SCHEMA.COLUMNS INFO WHERE INFO.TABLE_NAME='EMPLOYEE' AND COLUMN_NAME='COL1' Pero para seleccionar más campos, tendría que agregar otra instancia de INFORMACION_ESQUEMA.COLUMNAS nuevamente con un alias diferente.

Pero no deberías hacer esto por muchas razones.

Técnicamente:CROSS JOIN (las tablas en FROM enumeradas simplemente con una coma) es una gran presión para el servidor de la base de datos. FROM T1, T2 empareja todas las filas de T1 con todas las filas de T2 y examina las filas de resultados. Si T1 tiene n filas y T2 tiene m, entonces el resultado tiene n*m ​​filas.

Lógicamente 1:No deberías necesitar que te devuelvan esta información. Cuando ingresa una consulta (un SELECCIONAR), se conoce el esquema devuelto; la consulta determina qué tipos de datos son las columnas de resultados. Lógicamente 2:dado que cada fila tiene los mismos tipos de datos en las columnas, no necesita que se devuelva la información de tipo en cada fila. P.ej. su ejemplo que devuelve datos de 1000 empleados se transferiría innecesariamente en cada línea que el campo EDAD es INTEGER, el NOMBRE es VARCHAR y así sucesivamente...

Si de alguna manera no conoce el esquema del resultado (por ejemplo, debido a las consultas generadas o similares), la solución anterior no le ayudará.