Bir tablodaki sütun sayısını bulun


122

Bir tablodaki satır sayısını bulmak mümkündür:

select count(*) from tablename

Bir tablodaki sütun sayısını bulmak mümkün mü?

Yanıtlar:


204
SELECT COUNT(*)
  FROM INFORMATION_SCHEMA.COLUMNS
 WHERE table_catalog = 'database_name' -- the database
   AND table_name = 'table_name'

1
Merhaba, standın altında kalamıyorum, burada bilgi lütfen bana sorguyu bir kez daha verebilir misiniz .. tablo adı = gönderi sütunları = Gönderi Kimliği, GönderiTarihi, Gövde
praveenjayapal

2
Kafam karışmadıkça, tabloda kaç tane sütun olduğunu arıyorsunuz. Aşağıdaki sorguyu yürütürseniz, 3 döndürür (yalnızca sütunların PostingId, PostingDate ve Body olduğu varsayılarak) INFORMATION_SCHEMA.COLUMNS'DAN COUNT (*) SEÇİN table_name = 'post'
Nathan Koop

10
'Database_name' değişkeni için yukarıdaki "table_schema" 'yı "TABLE_CATALOG" ile değiştirmeniz gerektiğini düşünüyorum
Harvey Darvey

MySQL alanında (soruda etiketlenmiş) ... Bir MySQL database, schemaANSI table_catalogdef
SQL'deki

1
"table_catalog" "TABLE_SCHEMA" olarak değişmeli
Chamara Maduranga

39
SELECT COUNT(COLUMN_NAME) 
FROM INFORMATION_SCHEMA.COLUMNS 
WHERE 
    TABLE_CATALOG = 'Database name' 
    AND TABLE_SCHEMA = 'dbo' 
    AND TABLE_NAME = 'table name'

1
Bu cevap mükemmel çalışıyor, en azından Microsoft SQL Server ile
Antonio Serrano

8
SELECT count(*)
FROM information_schema.columns
WHERE table_name = 'Your_table_name';

Not: Your_table_name, gerçek tablo adınızla değiştirilmelidir


6

Java'da JDBC'yi kullanma:

    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);

2
Bu iyi bir genel yaklaşımdır (RDBMS agnostik). Sadece sorguyu olarak değiştirmenizi öneririm SELECT * FROM sample2 WHERE 1=2. Bu şekilde, şemayı alabilirsiniz, ancak gereksiz ek yük ekleyebilecek verileri elde edemezsiniz.
Cascader

5

Biraz geç oldu ama lütfen benden al ...

Editörde (Yeni Sorgu) veritabanı nesnesini seçerek bir tablo da olabilir, Kısayol Tuşunu Alt + F1 kullanırsak nesnenin tüm bilgilerini alacağız ve bence probleminizi de çözeceğiz.


4
SELECT count(*) FROM information_schema.`COLUMNS` C
WHERE table_name = 'your_table_name'
AND TABLE_SCHEMA = "your_db_name"

4

Nathan Koop'un cevabını denedim ve benim için işe yaramadı. Bunu şu şekilde değiştirdim ve işe yaradı:

SELECT COUNT(*)
FROM INFORMATION_SCHEMA.COLUMNS
WHERE table_name = 'table_name'

Ne koyarsam USE 'database_name'da işe yaramadı WHERE table_catalog = 'database_name' AND table_name' = 'table_name'. Aslında nedenini bildiğim için mutlu olacağım.


KULLAN database_name, varsayılan veritabanını ayarlar, böylece verdiğiniz herhangi bir ifadede tablo adlarını nitelendirmeniz gerekmez. Burada bilgi_seması columnsiçinde olduğunu söyleyerek tablo adını nitelendirirsiniz . table_catalogmysql'de yalnızca diğer dbs ile uyumluluk amacıyla bulunur, bununla aynı değildir table_schema- bu cevabın altındaki yorumlara bakın.
Paul Campbell

3

Veya sys.columns'u kullanın

--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

INFORMATION_SCHEMA.COLUMNS WHERE TABLE_NAME = '<YOURTABLENAME>' içinden COUNT (*) seçin
Rudy Hinojosa

2
SELECT COUNT(COLUMN_NAME) FROM INFORMATION_SCHEMA.COLUMNS WHERE 
TABLE_CATALOG = 'database_name' AND TABLE_SCHEMA = 'dbo'
AND TABLE_NAME = 'table_name'

2

Bir tablodaki sütun sayısını sadece 3 basit PHP kod satırı kullanarak bulmak mümkündür.

$sql="SELECT * FROM table";
$query=mysqli_query($connect_dude,$sql);    
$num=mysqli_num_fields($query);

$numcolumnsbu durumda belirli bir tablodaki sayısını döndürür .

Umarım başkalarına yardımcı olur.


1

Bir tablodaki sütunların sayısını saymak için sorgu:

select count(*) from user_tab_columns where table_name = 'tablename';

Tablo adını, toplam sütun sayısının döndürülmesini istediğiniz tablonun adıyla değiştirin.


MYSQL için de geçerli mi, çünkü
yürütemiyorum

1

Aşağıdaki sql ifadesini kullanabilirsiniz:

select count(*) Noofcolumns from SYSCOLUMNS where id=(select id from SYSOBJECTS where name='table_name')

1
SELECT COUNT(*) 
FROM INFORMATION_SCHEMA.COLUMNS 
WHERE 
   TABLE_NAME = 'table_name';

Yukarıda belirtilenler, SQL Server Veritabanında belirtilen bir tablodaki sütun sayısını almak için çalışmalıdır.
Aneel Goplani

1

db2 'describe table "SCHEMA_NAME"."TBL_NAME"'


1
Bu, orijinal soruyu çözebilir ancak en iyisi bir açıklama eklemektir, böylece neler olup bittiğini öğrenebiliriz.
Tedinoz

1
Lütfen yanıt olarak yalnızca kod göndermeyin, aynı zamanda kodunuzun ne yaptığı ve sorunun sorununu nasıl çözdüğüne dair bir açıklama ekleyin. Açıklamalı yanıtlar genellikle daha kalitelidir ve olumlu oyları alma olasılığı daha yüksektir.
Suraj Kumar

0

Aşağıdaki sorgu, tablodaki sütunların nasıl olduğunu bulur: -

 SELECT COUNT(COLUMN_NAME) FROM USER_TAB_COLUMNS
 WHERE TABLE_NAME = 'TableName';

0

MySqlDataReader.GetValues için MSDN örneğinden biraz uyarlanmış bir MySQL yanıtı :

//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]);
}

Kullanmak MySqlDataReader.FieldCount, sorguladığınız satırdaki sütun sayısını almanıza olanak sağlar.


0
SELECT TABLE_SCHEMA
    , TABLE_NAME
    , number = COUNT(*) 
FROM INFORMATION_SCHEMA.COLUMNS
GROUP BY TABLE_SCHEMA, TABLE_NAME;

Bu benim için çalıştı.


0

Tüm yanıtlar kullanıldığından COUNT(), MAX()belirli bir tablodaki sütun sayısını aşağıdaki gibi almak için de kullanabilirsiniz:

SELECT MAX(ORDINAL_POSITION) NumberOfColumnsInTable
FROM INFORMATION_SCHEMA.COLUMNS
WHERE TABLE_CATALOG = 'YourDatabaseNameHere'
      AND 
      TABLE_SCHEMA = 'YourSchemaNameHere'
      AND
      TABLE_NAME = 'YourTableNameHere';

Görmek The INFORMATION_SCHEMA COLUMNS Table


-1

Python 3, sqlite3 ve pragma deyimini kullanarak bir dizi tablo sütununu nasıl elde edeceğiniz aşağıda açıklanmıştır:

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()))

Kaynak

Sitemizi kullandığınızda şunları okuyup anladığınızı kabul etmiş olursunuz: Çerez Politikası ve Gizlilik Politikası.
Licensed under cc by-sa 3.0 with attribution required.