[英]Find the number of columns in a table
我想知道是否可以在表中找到行數和列數。
SELECT COUNT(*)
FROM tablename
SELECT COUNT(*)
FROM INFORMATION_SCHEMA.COLUMNS
WHERE table_catalog = 'database_name' -- the database
AND table_name = 'table_name'
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';
注意:Your_table_name 應替換為您的實際表名
在 Java 中使用 JDBC:
String quer="SELECT * FROM sample2 where 1=2";
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 的編輯器(New Query)中,數據庫 object也可以是一個表格,如果我們使用快捷鍵Alt+F1 ,我們將獲得 object 的所有信息,並認為會解決您的問題。
好吧,我嘗試了 Nathan Koop 的答案,但它對我不起作用。 我將其更改為以下內容,並且確實有效:
SELECT COUNT(*)
FROM INFORMATION_SCHEMA.COLUMNS
WHERE table_name = 'table_name'
如果我把USE 'database_name'
也沒有WHERE table_catalog = 'database_name' AND table_name' = 'table_name'
也不起作用。 我真的很高興知道為什么。
SELECT count(*) FROM information_schema.`COLUMNS` C
WHERE table_name = 'your_table_name'
AND TABLE_SCHEMA = "your_db_name"
或使用 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
它正在工作(mysql):
SELECT TABLE_NAME , count(COLUMN_NAME)
FROM information_schema.columns
GROUP BY TABLE_NAME
SELECT COUNT(COLUMN_NAME) FROM INFORMATION_SCHEMA.COLUMNS WHERE
TABLE_CATALOG = 'database_name' AND TABLE_SCHEMA = 'dbo'
AND TABLE_NAME = 'table_name'
只需使用 3 行簡單的 PHP 代碼,就可以找到表中的列數。
$sql="SELECT * FROM table";
$query=mysqli_query($connect_dude,$sql);
$num=mysqli_num_fields($query);
在這種情況下, $num
將返回給定表上的columns
數。
希望它會幫助其他人。
SELECT COUNT(*)
FROM INFORMATION_SCHEMA.COLUMNS
WHERE
TABLE_NAME = 'table_name';
查詢以計算表中的列數:
select count(*) from user_tab_columns where table_name = 'tablename';
將 tablename 替換為要返回其總列數的表的名稱。
可以使用以下 sql 語句:
select count(*) Noofcolumns from SYSCOLUMNS where id=(select id from SYSOBJECTS where name='table_name')
db2 'describe table "SCHEMA_NAME"."TBL_NAME"'
以下查詢查找表中的列:-
SELECT COUNT(COLUMN_NAME) FROM USER_TAB_COLUMNS
WHERE TABLE_NAME = 'TableName';
MySQL 答案略微改編自MySqlDataReader.GetValues 的 MSDN 示例:
//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]);
}
使用MySqlDataReader.FieldCount
將允許您檢索您查詢的行中的列數。
SELECT TABLE_SCHEMA
, TABLE_NAME
, number = COUNT(*)
FROM INFORMATION_SCHEMA.COLUMNS
GROUP BY TABLE_SCHEMA, TABLE_NAME;
這個對我有用。
由於所有答案都使用COUNT()
,您還可以使用MAX()
來獲取特定表中的列數
SELECT MAX(ORDINAL_POSITION) NumberOfColumnsInTable
FROM INFORMATION_SCHEMA.COLUMNS
WHERE TABLE_CATALOG = 'YourDatabaseNameHere'
AND
TABLE_SCHEMA = 'YourSchemaNameHere'
AND
TABLE_NAME = 'YourTableNameHere';
SELECT table_name, COUNT(*) AS column_count
FROM information_schema.columns
WHERE table_schema = 'your_schema_name'
GROUP BY table_name
有關架構中所有表及其各自列數的列表。 您可能需要在 where 子句中添加 table_catalog = 'your_database_name' 條件。
以下是使用 Python 3、sqlite3 和 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()))
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.