Trong bài viết này, chúng ta sẽ viết một truy vấn SQL để đếm số hàng trong một bảng. Vì là chúng ta sẽ sử dụng hàm đếm [] của SQL. Đối với bài viết này, chúng tôi sẽ sử dụng Microsoft SQL Server làm cơ sở dữ liệu của chúng tôi
Hãy làm tương tự bằng cách xây dựng một bảng bên trong cơ sở dữ liệu và đếm các hàng của nó. Đầu tiên chúng ta sẽ tạo một cơ sở dữ liệu có tên “ geeks ” và sau đó tạo một “Employee” table in this database and will execute our query on that table.
Tạo cơ sở dữ liệu
Sử dụng câu lệnh SQL bên dưới để tạo cơ sở dữ liệu có tên geeks
CREATE DATABASE geeks;
Sử dụng cơ sở dữ liệu
USE geeks;
Định nghĩa bảng
Chúng tôi có bảng Nhân viên sau trong cơ sở dữ liệu geeks của chúng tôi.
CREATE TABLE geeks[ id int[20] , name varchar[200]];
đầu ra
Bạn có thể sử dụng câu lệnh dưới đây để truy vấn mô tả của bảng đã tạo
EXEC sp_columns employees;
Thêm dữ liệu vào bảng
Sử dụng câu lệnh dưới đây để thêm dữ liệu vào bảng Nhân viên
INSERT INTO geeks[id,name] values[1,'nikhil']; INSERT INTO geeks[id,name] values[2,'kartik'];
Truy vấn SQL để đếm số hàng
Hàm SQL COUNT[ ] được sử dụng để trả về số hàng trong một bảng. Nó được sử dụng với câu lệnh Select[]
Syntax: SELECT COUNT[colmn_name] from table_name;
Thí dụ
Sử dụng ‘ * ‘ chúng tôi nhận được tất cả các hàng như hình dưới đây
SELECT * FROM geeks;
Điều này sẽ dẫn đến hình ảnh dưới đây
Bảng chúng ta sẽ thao tác có 2 hàng. Vì vậy, hãy đưa vào truy vấn để có được câu trả lời không. của các hàng một cột cụ thể [giả sử, id] là
Có một số cách để lấy số lượng hàng trong MySQL. Một số sản phẩm quản lý cơ sở dữ liệu cung cấp số liệu thống kê cơ sở dữ liệu như kích thước bảng, nhưng nó cũng có thể được thực hiện bằng SQL thẳng. Trong mẹo hôm nay, chúng ta sẽ sử dụng hàm gốc COUNT[] để truy xuất số hàng trong một bảng hoặc dạng xem trong cơ sở dữ liệu MySQL. Trong phần 2, chúng ta sẽ tìm hiểu cách lấy số lượng hàng từ nhiều bảng hoặc thậm chí từ tất cả các bảng trong cơ sở dữ liệu
Có thể bạn đã biết hàm COUNT[] trả về số hàng trong bảng. Nhưng còn nhiều điều hơn thế nữa, vì hàm COUNT[] có thể được sử dụng để đếm tất cả các hàng trong một bảng hoặc chỉ những hàng khớp với một điều kiện cụ thể. Bí mật nằm ở chữ ký hàm, trong đó có một số dạng. COUNT[*], COUNT[biểu thức] và COUNT[biểu thức DISTINCT]
Trong mỗi trường hợp, hàm COUNT[] trả về BIGINT chứa số lượng hàng phù hợp hoặc bằng 0 nếu không tìm thấy
Để đếm tất cả các hàng trong một bảng, cho dù chúng có chứa giá trị NULL hay không, hãy sử dụng COUNT[*]. Dạng đó của hàm COUNT[] về cơ bản trả về số hàng trong tập kết quả được trả về bởi câu lệnh SELECT
CHỌN ĐẾM [*] TỪ các thành phố;Một câu lệnh giống như câu lệnh ở trên gọi hàm COUNT[*] mà không có mệnh đề WHERE hoặc các cột bổ sung, sẽ hoạt động rất nhanh trên các bảng MyISAM vì số lượng hàng được lưu trữ trong cột table_rows trong bảng bảng của cơ sở dữ liệu lược đồ thông tin
Đối với các công cụ lưu trữ giao dịch như InnoDB, việc lưu trữ số lượng hàng chính xác là một vấn đề vì InnoDB không giữ số lượng hàng nội bộ trong một bảng. Nếu đúng như vậy, các giao dịch đồng thời có thể “thấy” số lượng hàng khác nhau cùng một lúc. Do đó, các câu lệnh SELECT COUNT[*] chỉ đếm các hàng hiển thị cho giao dịch hiện tại. Điều đó có nghĩa là việc chạy truy vấn bằng COUNT[*] trong khi khối lượng công việc lớn có thể dẫn đến các con số hơi không chính xác
Không chuyển gì cho COUNT[] thực thi phiên bản COUNT[expr] của hàm, nhưng sans tham số. Gọi COUNT[] theo cách đó chỉ trả về các hàng không bao gồm các giá trị NULL. Ví dụ: giả sử rằng chúng tôi có một bảng đơn giản có tên code_values
mã_giá_trị+-------+
mã số
+-------+
1
+-------+
+-------+
+-------+
4
+-------+
Chọn COUNT[] từ bảng sẽ trả về 2, mặc dù có 4 hàng
CHỌN COUNT[*] TỪ code_values;+---------+
ĐẾM[]
+---------+
2
+---------+
Lưu ý rằng phiên bản này của hàm COUNT[] hiếm khi được sử dụng vì các hàng NULL không phải là vấn đề trong cơ sở dữ liệu chuẩn hóa, một điều kiện chỉ có thể xảy ra nếu bảng không có khóa chính. Trong hầu hết các trường hợp, COUNT[*] sẽ hoạt động bình thường
Tất nhiên, COUNT[expr] chấp nhận các biểu thức thích hợp. Đây là một truy vấn khác tìm nạp các hàng NULL và không NULL giống nhau
CHỌN ĐẾM [IFNULL [mã, 1]] TỪ code_values;Đếm các giá trị khác null
Phiên bản COUNT[expr] của hàm COUNT cũng chấp nhận các tên cột riêng lẻ, kết quả là COUNT[tên_cột] sẽ trả về số lượng bản ghi trong đó tên_cột không phải là NULL. Do đó, truy vấn CHỌN sau sẽ tìm nạp số lượng hàng trong đó cột mô tả chứa giá trị không NULL
CHỌN ĐẾM [mô tả] TỪ các vật dụng;Trong Phần 2, chúng ta sẽ tìm hiểu cách sử dụng chữ ký COUNT[DISTINCT expression] cũng như cách lấy số lượng hàng từ nhiều bảng