Làm cách nào để nhận được số lượng trường/mục nhập trong cơ sở dữ liệu bằng cách sử dụng một câu lệnh SQL?Lấy số trường trong cơ sở dữ liệu bằng một câu lệnh SQL?
Trả lời
mmm tất cả các trường trong tất cả các bảng? giả định tiêu chuẩn (MSSQL, mysql, postgres), bạn có thể phát hành một truy vấn trên bảng information_schema
SELECT COUNT(*)
FROM INFORMATION_SCHEMA.COLUMNS
Hoặc nhóm lại theo bảng:
SELECT TABLE_NAME, COUNT(*)
FROM INFORMATION_SCHEMA.COLUMNS
GROUP BY TABLE_NAME
Nếu nhiều schemas có tên bảng trong cùng DB, bạn PHẢI bao gồm tên lược đồ là tốt (ví dụ: dbo.Books, user.Books, company.Books, v.v.) Nếu không bạn sẽ nhận được kết quả sai. Vì vậy, các thực hành tốt nhất là:
SELECT TABLE_SCHEMA, TABLE_NAME, COUNT(*)
FROM INFORMATION_SCHEMA.COLUMNS
GROUP BY TABLE_SCHEMA, TABLE_NAME
thử điều này, điều này sẽ loại trừ quan điểm, rời khỏi mệnh đề where ra nếu bạn muốn xem
select count(*) from information_schema.columns c
join information_schema.tables t on c.table_name = t.table_name
and t.table_type = 'BASE TABLE'
Âm thanh như thế này là những gì bạn cần.
select CountOfFieldsInDatabase = count(*)
from information_schema.columns
ROWS đếm của nó trong bảng mô tả các cột. Một hàng trên mỗi cột trong cơ sở dữ liệu. –
@Ken: Không, nó chắc chắn đếm số cột trên tất cả các bảng trong DB. (Đó là một điều hơi vô dụng để làm, nhưng đó là những gì OP yêu cầu.) –
Ken, mỗi hàng sẽ là một cột – SQLMenace
select count(column_name) from information_schema.columns
where table_name = **name of your table here **
Chỉ cần cho bất kỳ độc giả khác đang googling ...
Có một số giải pháp phi SQL, có thể hữu ích cho người sử dụng .. đây là 2 mà tôi sử dụng.
Ví dụ 1: Tiếp cận VBA:
'Microsoft Access VBA
Function Count_Fields(Table_Name As String) As Integer
Dim myFieldCount As Integer
Dim db As DOA.Database
Dim rs As DAO.Recordset
Set db = CurrentDb
Set rs = db.OpenRecordset(Table_Name, dbOpenDynaset)
myFieldCount = rs.Fields.Count
'return the count
Count_Fields = myFieldCount
'tidy up
Set rs = Nothing
Set db = Nothing
End Function
Ví dụ 2: PHP 5.1:
<?php
// PHP5 Implementation - uses MySQLi.
function countFields ($tableName) {
$db = new mysqli('myserver.me.com', 'user' ,'pass', 'databasename');
if(!$db) {
echo 'ERROR: Could not connect to the database.';
}
else {
$rs->$db->query("SELECT * FROM ".$tableName.");
$fieldCount = $rs->field_count;
}
return $fieldCount;
?>
xin vui lòng tha bất kỳ lỗi đánh máy của ở trên - hy vọng ai đó tìm thấy này hữu ích
bạn hỏi làm thế nào để có được số thuộc tính của một bảng có cộng với số lượng hàng trong bảng? – northpole
Bạn có ý nghĩa gì bởi các trường/mục nhập? Bạn có nghĩa là số hàng không? Số cột? Số bàn? Tất cả những điều trên? Nếu có, bạn đang sử dụng công cụ cơ sở dữ liệu nào? –
"mục" trong cơ sở dữ liệu? bạn có nghĩa là hồ sơ, hoặc cột trong một bảng, hoặc số bảng? – devio