Es posible encontrar el número de filas en una tabla:
select count(*) from tablename
¿Es posible encontrar el número de columnas en una tabla?
Es posible encontrar el número de filas en una tabla:
select count(*) from tablename
¿Es posible encontrar el número de columnas en una tabla?
Respuestas:
SELECT COUNT(*)
FROM INFORMATION_SCHEMA.COLUMNS
WHERE table_catalog = 'database_name' -- the database
AND table_name = 'table_name'
database
es equivalente a un schema
ANSI SQL y table_catalog
siempre lo esdef
SELECT COUNT(COLUMN_NAME)
FROM INFORMATION_SCHEMA.COLUMNS
WHERE
TABLE_CATALOG = 'Database name'
AND TABLE_SCHEMA = 'dbo'
AND TABLE_NAME = 'table name'
SELECT count(*)
FROM information_schema.columns
WHERE table_name = 'Your_table_name';
Nota: Your_table_name debe reemplazarse por el nombre real de la tabla
Usando JDBC en Java:
String quer="SELECT * FROM sample2";
Statement st=con.createStatement();
ResultSet rs=st.executeQuery(quer);
ResultSetMetaData rsmd = rs.getMetaData();
int NumOfCol=0;
NumOfCol=rsmd.getColumnCount();
System.out.println("Query Executed!! No of Colm="+NumOfCol);
SELECT * FROM sample2 WHERE 1=2
. De esta forma, puede obtener el esquema pero no datos, lo que podría agregar una sobrecarga innecesaria.
SELECT count(*) FROM information_schema.`COLUMNS` C
WHERE table_name = 'your_table_name'
AND TABLE_SCHEMA = "your_db_name"
Bueno, probé la respuesta de Nathan Koop y no funcionó para mí. Lo cambié a lo siguiente y funcionó:
SELECT COUNT(*)
FROM INFORMATION_SCHEMA.COLUMNS
WHERE table_name = 'table_name'
Tampoco funcionó si pongo USE 'database_name'
ni WHERE table_catalog = 'database_name' AND table_name' = 'table_name'
. De hecho, me alegrará saber por qué.
database_name
establece la base de datos predeterminada para que no necesite calificar los nombres de las tablas en las declaraciones que emita. Aquí puede calificar el columns
nombre de la tabla diciendo que está dentro del esquema de información. table_catalog
existe en mysql simplemente con el propósito de compatibilidad con otros dbs, no es lo mismo que table_schema
- vea los comentarios debajo de esa respuesta.
O use las columnas sys.
--SQL 2005
SELECT *
FROM sys.columns
WHERE OBJECT_NAME(object_id) = 'spt_values'
-- returns 6 rows = 6 columns
--SQL 2000
SELECT *
FROM syscolumns
WHERE OBJECT_NAME(id) = 'spt_values'
-- returns 6 rows = 6 columns
SELECT *
FROM dbo.spt_values
-- 6 columns indeed
Es posible encontrar el número de columnas en una tabla simplemente usando 3 líneas simples de código PHP.
$sql="SELECT * FROM table";
$query=mysqli_query($connect_dude,$sql);
$num=mysqli_num_fields($query);
$num
devolvería el número de columns
en una tabla dada en este caso.
Con suerte, ayudaría a otros.
Consulta para contar el número de columnas en una tabla:
select count(*) from user_tab_columns where table_name = 'tablename';
Reemplace tablename con el nombre de la tabla cuyo número total de columnas desea devolver.
Puede usar la siguiente instrucción sql:
select count(*) Noofcolumns from SYSCOLUMNS where id=(select id from SYSOBJECTS where name='table_name')
SELECT COUNT(*)
FROM INFORMATION_SCHEMA.COLUMNS
WHERE
TABLE_NAME = 'table_name';
db2 'describe table "SCHEMA_NAME"."TBL_NAME"'
La siguiente consulta encuentra cómo las columnas en la tabla: -
SELECT COUNT(COLUMN_NAME) FROM USER_TAB_COLUMNS
WHERE TABLE_NAME = 'TableName';
Una respuesta de MySQL se adaptó ligeramente del ejemplo de MSDN para MySqlDataReader.GetValues :
//assumes you've already created a connection, opened it,
//and executed a query to a reader
while(reader.Read())
{
Object[] values = new Object[reader.FieldCount];
int fieldCount = reader.GetValues(values);
Console.WriteLine("\nreader.GetValues retrieved {0} columns.", fieldCount);
for (int i = 0; i < fieldCount; i++)
Console.WriteLine(values[i]);
}
El uso MySqlDataReader.FieldCount
le permitirá recuperar el número de columnas en la fila que ha consultado.
Como todas las respuestas están usando COUNT()
, también puede usar MAX()
para obtener el número de columnas en una tabla específica como
SELECT MAX(ORDINAL_POSITION) NumberOfColumnsInTable
FROM INFORMATION_SCHEMA.COLUMNS
WHERE TABLE_CATALOG = 'YourDatabaseNameHere'
AND
TABLE_SCHEMA = 'YourSchemaNameHere'
AND
TABLE_NAME = 'YourTableNameHere';
Así es como puede obtener una serie de columnas de tabla usando Python 3, sqlite3 y la declaración pragma:
con = sqlite3.connect(":memory:")
con.execute("CREATE TABLE tablename (d1 VARCHAR, d2 VARCHAR)")
cur = con.cursor()
cur.execute("PRAGMA table_info(tablename)")
print(len(cur.fetchall()))