При работе с базами данных иногда возникает потребность узнать сколько записей в них содержится на данный момент времени. Причем иногда нужно произвести подсчет абсолютно всех доступных записей, чтобы оценить загрузку той или иной БД, а иногда нужно подсчитать записи, которые соответствуют определенным условиям.
Для той или иной ситуации, чтобы узнать сколько записей в базе данных, можно использовать всего одну функцию COUNT. Функция одна, но использовать ее можно по-разному. Например:
если функцию COUNT использовать в запросе в «чистом» виде без дополнительных условий, тогда можно подсчитать абсолютно все записи в таблице;
функцию COUNT можно использовать совместно с командой WHERE, где в команде WHERE указываются условия, по которым вести подсчет записей в таблице.
Чуть ниже рассмотрим несколько простых примеров, как определить сколько записей содержится в базе данных.
Определяем сколько записей в базе данных
Представим, что наша база данных содержит некую таблицу, где мы ведем учет своих клиентов. Итак, наша таблица «customers» выглядит следующим образом:
Идентификатор, ID
Customers_name
Customers_age
Customers_purchase
1
Дмитрий Федорович
24
4000
2
Петр Алексеевич
26
5000
3
Василий Алибабаевич
24
5000
4
Николай Павлович
31
10000
5
Иван Николаевич
28
5000
6
Кирилл Мефодиевич
29
10000
Естественно, строк и столбцов в таблице с клиентами может быть очень много. Давайте посмотрим, как можно считать записи в таблице, используя разные вариации функции COUNT и ее условий.
К примеру, мы можем посчитать всех покупателей, у которых возраст будет 24 года. В этом случай SQL-запрос будет таким:
SELECT COUNT(*) as count FROM customers WHERE customers_age=24
В ответ на данный запрос мы получим результат — «2», потому что в нашей таблице есть всего 2 покупателя с таким возрастом.
Мы можем посчитать количество разных чеков наших покупателей. То есть мы будем считать количество разных сумм, которые оставили наши клиенты. Код SQL-запроса будет следующий:
SELECT COUNT(DISTINCT customers_purchase) as count FROM customers
В ответе на данный запрос мы получим ответ 3, потому что в нашей таблице всего 3 разных объема покупок: 4000, 5000 и 10000.
С помощью COUNT можно составлять и более сложные SQL-запросы. Например, в одном запросе мы можем посчитать сколько у нас разных возрастов в таблице и сколько у нас разных чеков покупки. В этом случае SQL-запрос будет выглядеть следующим образом:
SELECT
COUNT(DISTINCT costumers_age) as count_first,
COUNT(DISTINCT costumers_purchase) as count_second
FROM costumers
В результате такого запроса мы получим два столбца с названиями «count_first» с количеством возрастов «5» и «count_second» с количеством разных чеков «3».
Мы можем подсчитать общее количество записей в базе данных без особых условий. В этом случае SQL-запрос будет выглядеть следующим образом:
SELECT COUNT(*) as count FROM costumers
В ответ на этот запрос мы получим цифру «6», так как в нашей таблице всего 6 записей. Но тут есть одна хитрость. Когда мы указываем символ «*»(звездочка), тогда мы активируем подсчет абсолютно всех записей, даже тех, которые содержат в своих аргументах «NULL». Но вам не всегда нужно подсчитывать строки с «нулевым» значением. В этом случае в качестве аргумента функции COUNT нужно указать идентификатор какого-то столбца, тогда в результате будут отражаться только строки, которые содержат какие-то данные в указанном столбце. Например:
SELECT COUNT(customers_purchase) as count FROM costumers
В этом случае в результате мы получим сколько записей в базе данных имеют заполненные ячейки в столбце «customers_purchase». Важно помнить об этом. Потому что подсчеты строк в обоих случаях могут отличаться. К примеру, пользователь не совершил покупку, поэтому в столбце «customers_purchase» не заполнена ячейка. В этом случае при подсчете с COUNT(*) она попадет в результат, а при подсчете COUNT(customers_purchase) — нет.
Заключение
Как посчитать, сколько записей в базе данных? Самый верный способ — это использовать функцию COUNT. С помощью этой функции можно посчитать абсолютно все записи в базе данных: со значениями «NULL» и «NOT NULL». Помимо этого, совместно с функцией COUNT можно использовать команду WHERE и задавать условия подсчета записей, что делает работу функции COUNT очень гибкой.
SQL