È possibile trovare il numero di righe in una tabella:
select count(*) from tablename
È possibile trovare il numero di colonne in una tabella?
È possibile trovare il numero di righe in una tabella:
select count(*) from tablename
È possibile trovare il numero di colonne in una tabella?
Risposte:
SELECT COUNT(*)
FROM INFORMATION_SCHEMA.COLUMNS
WHERE table_catalog = 'database_name' -- the database
AND table_name = 'table_name'
database
è equivalente a un schema
in ANSI SQL ed table_catalog
è sempredef
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 dovrebbe essere sostituito dal nome effettivo della tabella
Utilizzo di JDBC in 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
. In questo modo, puoi ottenere lo schema ma nessun dato, il che potrebbe aggiungere un sovraccarico non necessario.
SELECT count(*) FROM information_schema.`COLUMNS` C
WHERE table_name = 'your_table_name'
AND TABLE_SCHEMA = "your_db_name"
Beh, ho provato la risposta di Nathan Koop e non ha funzionato per me. L'ho cambiato nel seguente e ha funzionato:
SELECT COUNT(*)
FROM INFORMATION_SCHEMA.COLUMNS
WHERE table_name = 'table_name'
Inoltre non ha funzionato se ho messo USE 'database_name'
nor WHERE table_catalog = 'database_name' AND table_name' = 'table_name'
. Veramente sarò felice di sapere perché.
database_name
imposta il database predefinito in modo che non sia necessario qualificare i nomi delle tabelle in nessuna istruzione emessa. Qui qualifichi il columns
nome della tabella dicendo che è all'interno di information_schema. table_catalog
esiste in mysql puramente allo scopo di compatibilità con altri db non è lo stesso di table_schema
- vedere i commenti sotto quella risposta.
Oppure usa sys.columns
--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
È possibile trovare il numero di colonne in una tabella semplicemente utilizzando 3 semplici righe di codice PHP.
$sql="SELECT * FROM table";
$query=mysqli_query($connect_dude,$sql);
$num=mysqli_num_fields($query);
$num
restituirebbe il numero di columns
su una determinata tabella in questo caso.
Si spera che possa aiutare gli altri.
Query per contare il numero di colonne in una tabella:
select count(*) from user_tab_columns where table_name = 'tablename';
Sostituisci tablename con il nome della tabella di cui desideri restituire il numero totale di colonne.
Può ottenere utilizzando la seguente istruzione 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 seguente query trova come le colonne nella tabella: -
SELECT COUNT(COLUMN_NAME) FROM USER_TAB_COLUMNS
WHERE TABLE_NAME = 'TableName';
Una risposta MySQL adattata leggermente dall'esempio MSDN per 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]);
}
L'utilizzo MySqlDataReader.FieldCount
ti consentirà di recuperare il numero di colonne nella riga che hai richiesto.
Poiché tutte le risposte utilizzano COUNT()
, puoi anche utilizzare MAX()
per ottenere il numero di colonne in una tabella specifica come
SELECT MAX(ORDINAL_POSITION) NumberOfColumnsInTable
FROM INFORMATION_SCHEMA.COLUMNS
WHERE TABLE_CATALOG = 'YourDatabaseNameHere'
AND
TABLE_SCHEMA = 'YourSchemaNameHere'
AND
TABLE_NAME = 'YourTableNameHere';
Ecco come puoi ottenere un numero di colonne di tabella utilizzando Python 3, sqlite3 e l'istruzione 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()))