Digamos que tengo una tabla llamada myTable. ¿Cuál es el comando SQL para devolver todos los nombres de campo de esta tabla? Si la respuesta es específica de la base de datos, entonces necesito SQL Server ahora, pero también estaría interesado en ver la solución para otros sistemas de bases de datos.¿Cuál es el comando SQL para devolver los nombres de campo de una tabla?
Respuesta
MySQL 3 y 4 (y 5):
desc tablename
que es un alias para
show fields from tablename
SQL Server (desde 2000) y MySQL 5:
select COLUMN_NAME from INFORMATION_SCHEMA.COLUMNS
where TABLE_NAME = 'tablename'
Completando la respuesta: al igual que las personas a continuación han dicho, en SQL Server también puede utilizar el procedimiento almacenado sp_help
exec sp_help 'tablename'
Si sólo desea los nombres de columna y, a continuación
select COLUMN_NAME from INFORMATION_SCHEMA.COLUMNS where TABLE_NAME = 'tablename'
en MS SQL Server, para obtener más información sobre la mesa, tales como los tipos de las columnas, utilice
sp_help 'tablename'
SQL -92 estándar define INFORMATION_SCHEMA que cumple con rdbms como MS SQL Server. Las siguientes obras para MS SQL Server 2000/2005/2008 y MySQL 5 y por encima de
select COLUMN_NAME from INFORMATION_SCHEMA.COLUMNS where TABLE_NAME = 'myTable'
MS SQL Server específicos:
exec sp_help 'myTable'
Esta solución devuelve varios conjuntos de resultados dentro del cual es la información que desee, donde como el anterior le da exactamente lo que quiere.
También para completar, puede consultar directamente las tablas del sistema. Esto no se recomienda ya que el esquema puede cambiar entre las versiones de SQL Server e INFORMATION_SCHEMA es una capa de abstracción sobre estas tablas. Pero aquí está de todos modos para SQL Server 2000
select [name] from dbo.syscolumns where id = object_id(N'[dbo].[myTable]')
MySQL es el mismo:
select COLUMN_NAME from INFORMATION_SCHEMA.COLUMNS where TABLE_NAME = 'tablename'
Puede utilizar las vistas del sistema proporcionadas para hacer esto:
por ejemplo
select * from INFORMATION_SCHEMA.COLUMNS
where table_name = '[table name]'
alternativamente, puede usar el sistema proc sp_help
por ejemplo
sp_help '[table name]'
Esto también es específico de MySQL:
show fields from [tablename];
ésto no solo muestran los nombres de las tablas, sino que también se saca toda la información sobre los campos.
MySQL
describe tablename
Para aquellos que buscan una respuesta en Oracle:
SELECT column_name FROM user_tab_columns WHERE table_name = 'TABLENAME'
PostgreSQL entiende la sintaxis
select column_name from information_schema.columns where table_name = 'myTable'
. Si está trabajando en la cáscara psql, también se puede utilizar
\d myTable
para una descripción (columnas, y sus tipos de datos y limitaciones)
simplemente para la corrección, ya que MySQL y Postgres ya se han mencionado: con SQLite, utilice "pragma table_info()
"
sqlite> pragma table_info('table_name');
cid name type notnull dflt_value pk
---------- ---------- ---------- ---------- ---------- ----------
0 id integer 99 1
1 name 0 0
En Sybase SQL Anywhere, las columnas y los datos de esta tabla se almacenan por separado, por lo que necesita una combinación:
select c.column_name from systabcol c
key join systab t on t.table_id=c.table_id
where t.table_name='tablename'
Para IBM DB2 (duplicará comprobar esto el lunes para estar seguro.)
SELECT TABNAME,COLNAME from SYSCAT.COLUMNS where TABNAME='MYTABLE'
- 1. Comando SQL para extraer el esquema de una tabla SQLite?
- 2. ¿Cómo devuelves los nombres de las columnas de una tabla?
- 3. ¿Cuál es la forma preferida de devolver una tabla vacía en SQL?
- 4. ¿Cómo puedo obtener los nombres de campo de una tabla de base de datos?
- 5. Renombrar las columnas de una tabla SQL con los valores de campo de una tabla
- 6. SQL - Actualizar una tabla con un campo de otra tabla
- 7. SQL INSERT performance ¿omite los nombres de campo?
- 8. función mysql para devolver una tabla
- 9. Comando SQL para copiar la tabla
- 10. Usar SQL para devolver una cadena JSON
- 11. ¿Cuál es el sentido de dar nombres a los constructores?
- 12. ¿Cuál es su PRIMER comando SQL que se ejecuta para solucionar el rendimiento del Servidor SQL?
- 13. ¿Es posible devolver un campo calculado de una consulta MongoDB?
- 14. Mostrar los nombres de todas las restricciones para una tabla en Oracle SQL
- 15. ¿Cuál es el uso de los corchetes [] en sentencias sql?
- 16. ¿Cómo modifico esta consulta t-sql para devolver el valor máximo para diferentes nombres de columna?
- 17. ¿Qué es el T-SQL para normalizar una tabla existente?
- 18. ¿Cuál es el tamaño de un contenido de campo de imagen en SQL Server?
- 19. ¿Es posible obtener el alias SQL de una tabla de unión para una Hibernate sqlRestriction?
- 20. Nombres de Alias Múltiples para una tabla
- 21. SQL Unirme a la función de tabla con tabla donde campo de tabla es una entrada de función
- 22. Comando simple de Unix, ¿cuál es el {} y \; para
- 23. ¿Cuál es el comando para truncar un archivo de registro de SQL Server?
- 24. forzar mysqldb dict cursor para devolver prefijo todos los nombres de columna con el nombre de tabla
- 25. ¿Cuál es una convención de nombres adecuada para MySQL FK?
- 26. ¿Obtiene todos los nombres de tabla de una base de datos particular mediante consulta SQL?
- 27. Seleccionar varios recuentos de una tabla de base de datos en un comando sql
- 28. ¿Cuál es el mejor esquema de SQL para este proyecto?
- 29. ¿Qué comando SQL puedo usar para ver la estructura de una tabla en SQL Server?
- 30. ¿Cuál es el mejor campo para guardar el cumpleaños?
la información del esquema están disponibles en SQL Server 2000 también. – Martynnw
Y en Postgres, en de 8.0 (no se verificó en versiones anteriores) – Mureinik
también funciona: muestra columnas de nombre de tabla – Amnon