Để tìm số cột trong bảng MySQL, hãy sử dụng hàm đếm [*] với information_schema. cột và mệnh đề WHERE. Hãy để chúng tôi xem một ví dụ
Tạo bảng
mysql> create table NumberOfColumns -> [ -> id int, -> FirstName varchar[100], -> LastName varchar[100], -> Age int, -> Address varchar[100] -> ]; Query OK, 0 rows affected [0.70 sec]
Chèn bản ghi vào bảng
mysql> insert into NumberOfColumns values[1,'Shane','Watson',36,'Australia']; Query OK, 1 row affected [0.15 sec] mysql> insert into NumberOfColumns values[2,'Carol','Taylor',24,'US']; Query OK, 1 row affected [0.13 sec]
Để hiển thị tất cả các bản ghi
mysql> select *from NumberOfColumns;
Đây là đầu ra
+------+-----------+----------+------+-----------+ | id | FirstName | LastName | Age | Address | +------+-----------+----------+------+-----------+ | 1 | Shane | Watson | 36 | Australia | | 2 | Carol | Taylor | 24 | US | +------+-----------+----------+------+-----------+ 2 rows in set [0.00 sec]
Bây giờ chúng ta hãy xem cú pháp để đếm số lượng cột trong một bảng
SELECT count[*] AS anyName FROM information_schema.columns WHERE table_name =’ yourTableName’;
Áp dụng cú pháp trên vào bảng ví dụ có tên ‘NumberOfColumns’
mysql> SELECT count[*] AS NUMBEROFCOLUMNS FROM information_schema.columns -> WHERE table_name ='NumberOfColumns';
Đây là đầu ra
+-----------------+ | NUMBEROFCOLUMNS | +-----------------+ | 5 | +-----------------+ 1 row in set [0.00 sec]
Truy vấn thay thế để tìm số cột
SELECT COUNT[*] AS anyName FROM INFORMATION_SCHEMA.COLUMNS WHERE table_schema = 'yourDatabaseName' AND table_name = 'yourTableName';
Áp dụng truy vấn thứ hai cho cơ sở dữ liệu có tên 'doanh nghiệp'
________số 8Đầu ra hiển thị số cột
+-----------------+ | NUMBEROFCOLUMNS | +-----------------+ | 5 | +-----------------+ 1 row in set [0.00 sec]
Hướng dẫn SQL này giải thích cách sử dụng hàm SQL COUNT với cú pháp, ví dụ và bài tập thực hành
Sự mô tả
Hàm SQL COUNT được sử dụng để đếm số hàng được trả về trong câu lệnh SELECT
cú pháp
Cú pháp của hàm COUNT trong SQL là
mysql> insert into NumberOfColumns values[1,'Shane','Watson',36,'Australia']; Query OK, 1 row affected [0.15 sec] mysql> insert into NumberOfColumns values[2,'Carol','Taylor',24,'US']; Query OK, 1 row affected [0.13 sec]0
HOẶC cú pháp của hàm COUNT khi nhóm các kết quả theo một hoặc nhiều cột là
mysql> insert into NumberOfColumns values[1,'Shane','Watson',36,'Australia']; Query OK, 1 row affected [0.15 sec] mysql> insert into NumberOfColumns values[2,'Carol','Taylor',24,'US']; Query OK, 1 row affected [0.13 sec]1
Tham số hoặc Đối số
biểu thức1, biểu thức2,. biểu thức_nCác biểu thức không được gói gọn trong hàm COUNT và phải được bao gồm trong mệnh đề GROUP BY ở cuối câu lệnh SQL. biểu_thức_tổng hợpĐây là cột hoặc biểu thức có các giá trị khác null sẽ được tính. tableCác bảng mà bạn muốn truy xuất các bản ghi từ. Phải có ít nhất một bảng được liệt kê trong mệnh đề TỪ. điều kiện WHERETùy chọn. Đây là những điều kiện phải được đáp ứng để hồ sơ được chọn. ĐẶT HÀNG BẰNG biểu thứcTùy chọn. Biểu thức dùng để sắp xếp các bản ghi trong tập kết quả. Nếu có nhiều hơn một biểu thức được cung cấp, thì các giá trị phải được phân tách bằng dấu phẩy. ASCTùy chọn. ASC sắp xếp tập kết quả theo thứ tự tăng dần theo biểu thức. Đây là hành vi mặc định, nếu không có công cụ sửa đổi nào là nhà cung cấp. MÔ TẢTùy chọn. DESC sắp xếp tập kết quả theo thứ tự giảm dần theo biểu thứcDDL/DML cho các ví dụ
Nếu bạn muốn làm theo hướng dẫn này, hãy lấy DDL để tạo bảng và DML để điền dữ liệu. Sau đó thử các ví dụ trong cơ sở dữ liệu của riêng bạn
Nhận DDL/DML
Ví dụ - Hàm COUNT chỉ bao gồm các giá trị NOT NULL
Không phải ai cũng nhận ra điều này, nhưng hàm COUNT sẽ chỉ đếm những bản ghi có biểu thức NOT NULL trong
mysql> select *from NumberOfColumns;2. Khi biểu thức là giá trị NULL, nó không được bao gồm trong phép tính COUNT. Hãy khám phá điều này hơn nữa
Trong ví dụ này, chúng tôi có một bảng được gọi là khách hàng với dữ liệu sau
khách hàng_idlast_namefirst_namefavorite_website4000JacksonJoetechonthenet. com5000SmithJanedigminecraft. com6000FergusonSamanthabighoạt động. com7000ReynoldsAllenkiểm tra toán học của bạn. com8000AndersonPaigeNULL9000JohnsonDerektechonthenet. com
Nhập câu lệnh SELECT sau sử dụng hàm COUNT
Thử đimysql> insert into NumberOfColumns values[1,'Shane','Watson',36,'Australia']; Query OK, 1 row affected [0.15 sec] mysql> insert into NumberOfColumns values[2,'Carol','Taylor',24,'US']; Query OK, 1 row affected [0.13 sec]2
Sẽ có 1 bản ghi được chọn. Đây là những kết quả mà bạn sẽ thấy
ĐẾM[customer_id]6
Trong ví dụ này, truy vấn sẽ trả về 6 vì có 6 bản ghi trong bảng khách hàng và tất cả các giá trị customer_id đều KHÔNG NULL [nghĩa là. customer_id là khóa chính của bảng]
Nhưng điều gì sẽ xảy ra khi chúng ta gặp giá trị NULL với hàm COUNT?
Thử đimysql> insert into NumberOfColumns values[1,'Shane','Watson',36,'Australia']; Query OK, 1 row affected [0.15 sec] mysql> insert into NumberOfColumns values[2,'Carol','Taylor',24,'US']; Query OK, 1 row affected [0.13 sec]3
Sẽ có 1 bản ghi được chọn. Đây là những kết quả mà bạn sẽ thấy
ĐẾM[trang_web_yêu_thích]5
Ví dụ thứ hai này sẽ trả về 5. Bởi vì một trong các giá trị favorite_website là NULL, nó sẽ bị loại khỏi tính toán của hàm COUNT. Kết quả là truy vấn sẽ trả về 5 thay vì 6
TIỀN BOA. Sử dụng khóa chính trong hàm COUNT hoặc COUNT[*] nếu bạn muốn chắc chắn rằng các bản ghi không bị loại trừ trong phép tính
Ví dụ - Sử dụng một Biểu thức trong Hàm COUNT
Hãy xem một ví dụ cho biết cách sử dụng hàm COUNT với một biểu thức duy nhất trong truy vấn
Trong ví dụ này, chúng tôi có một bảng được gọi là nhân viên với dữ liệu sau
employee_numberlast_namefirst_namesalarydept_id1001SmithJohn620005001002AndersonJane575005001003EverestBrad710005011004HorvathJack42000501
Nhập câu lệnh SQL sau
Thử đimysql> insert into NumberOfColumns values[1,'Shane','Watson',36,'Australia']; Query OK, 1 row affected [0.15 sec] mysql> insert into NumberOfColumns values[2,'Carol','Taylor',24,'US']; Query OK, 1 row affected [0.13 sec]4
Sẽ có 1 bản ghi được chọn. Đây là những kết quả mà bạn sẽ thấy
tổng3
Trong ví dụ này, chúng tôi sẽ trả về số lượng nhân viên có mức lương trên $50.000. Chúng tôi đã đặt bí danh COUNT[*] là tổng số để làm cho kết quả truy vấn của chúng tôi dễ đọc hơn. Bây giờ, tổng số sẽ hiển thị dưới dạng tiêu đề cột khi tập hợp kết quả được trả về
Ví dụ - Sử dụng GROUP BY với Hàm COUNT
Trong một số trường hợp, bạn sẽ được yêu cầu sử dụng mệnh đề GROUP BY với hàm COUNT. Điều này xảy ra khi bạn có các cột được liệt kê trong câu lệnh SELECT không phải là một phần của hàm COUNT. Hãy khám phá điều này hơn nữa
Một lần nữa, sử dụng bảng nhân viên điền dữ liệu sau
employee_numberlast_namefirst_namesalarydept_id1001SmithJohn620005001002AndersonJane575005001003EverestBrad710005011004HorvathJack42000501
Nhập câu lệnh SQL sau
Thử đimysql> insert into NumberOfColumns values[1,'Shane','Watson',36,'Australia']; Query OK, 1 row affected [0.15 sec] mysql> insert into NumberOfColumns values[2,'Carol','Taylor',24,'US']; Query OK, 1 row affected [0.13 sec]5
Sẽ có 2 bản ghi được chọn. Đây là những kết quả mà bạn sẽ thấy
dept_idtotal50025011
Trong ví dụ này, hàm COUNT sẽ trả về số lượng nhân viên kiếm được hơn 50.000 đô la cho mỗi dept_id. Vì cột dept_id không được bao gồm trong hàm COUNT nên nó phải được liệt kê trong mệnh đề GROUP BY
Ví dụ - Sử dụng DISTINCT với Hàm COUNT
Bạn có biết rằng bạn có thể sử dụng mệnh đề DISTINCT trong hàm COUNT không?
Sử dụng cùng một bảng nhân viên như ví dụ trước
employee_numberlast_namefirst_namesalarydept_id1001SmithJohn620005001002AndersonJane575005001003EverestBrad710005011004HorvathJack42000501
Nhập câu lệnh SQL sau
Thử đimysql> insert into NumberOfColumns values[1,'Shane','Watson',36,'Australia']; Query OK, 1 row affected [0.15 sec] mysql> insert into NumberOfColumns values[2,'Carol','Taylor',24,'US']; Query OK, 1 row affected [0.13 sec]6
Sẽ có 1 bản ghi được chọn. Đây là những kết quả mà bạn sẽ thấy
tổng số2
Trong ví dụ này, hàm COUNT sẽ trả về số giá trị dept_id duy nhất có ít nhất một nhân viên kiếm được hơn 50.000 đô la
TIỀN BOA. Điều chỉnh hiệu suất với chức năng COUNT
Vì hàm COUNT sẽ trả về cùng một kết quả bất kể [các] trường KHÔNG NULL mà bạn đưa vào làm tham số hàm COUNT [tức là. trong ngoặc đơn], bạn có thể sử dụng
mysql> insert into NumberOfColumns values[1,'Shane','Watson',36,'Australia']; Query OK, 1 row affected [0.15 sec] mysql> insert into NumberOfColumns values[2,'Carol','Taylor',24,'US']; Query OK, 1 row affected [0.13 sec]10 để có hiệu suất tốt hơn. Bây giờ công cụ cơ sở dữ liệu sẽ không phải tìm nạp bất kỳ trường dữ liệu nào, thay vào đó, nó sẽ chỉ lấy giá trị nguyên là 1
Ví dụ: thay vì nhập câu lệnh này
Thử đimysql> insert into NumberOfColumns values[1,'Shane','Watson',36,'Australia']; Query OK, 1 row affected [0.15 sec] mysql> insert into NumberOfColumns values[2,'Carol','Taylor',24,'US']; Query OK, 1 row affected [0.13 sec]5
Bạn có thể thay thế
mysql> insert into NumberOfColumns values[1,'Shane','Watson',36,'Australia']; Query OK, 1 row affected [0.15 sec] mysql> insert into NumberOfColumns values[2,'Carol','Taylor',24,'US']; Query OK, 1 row affected [0.13 sec]11 bằng
mysql> insert into NumberOfColumns values[1,'Shane','Watson',36,'Australia']; Query OK, 1 row affected [0.15 sec] mysql> insert into NumberOfColumns values[2,'Carol','Taylor',24,'US']; Query OK, 1 row affected [0.13 sec]10 để có hiệu suất tốt hơnThử đi
mysql> select *from NumberOfColumns;1
Giờ đây, hàm COUNT không cần truy xuất tất cả các trường từ bảng nhân viên như khi bạn sử dụng cú pháp COUNT[*]. Nó sẽ chỉ truy xuất giá trị số 1 cho mỗi bản ghi đáp ứng tiêu chí của bạn
Bài tập thực hành
Nếu bạn muốn kiểm tra kỹ năng của mình bằng cách sử dụng hàm SQL COUNT, hãy thử một số bài tập thực hành của chúng tôi
Các bài tập này cho phép bạn thử các kỹ năng của mình với hàm COUNT. Bạn sẽ được cung cấp các câu hỏi mà bạn cần phải giải quyết. Sau mỗi bài tập, chúng tôi cung cấp lời giải để bạn có thể kiểm tra đáp án của mình. Hãy thử một lần