Computer >> 컴퓨터 >  >> 프로그래밍 >> MySQL

MySQL에서 count(*) 쿼리 없이 테이블의 행 수를 구하는 방법

MySQL에서 테이블의 전체 행(row) 개수를 확인할 때 흔히 count(*)를 사용하지만, count(1)을 사용해도 동일한 결과를 얻을 수 있습니다. 두 방식 모두 테이블의 전체 행 개수를 반환하므로, count(*)를 쓰지 않고도 원하는 값을 손쉽게 구할 수 있습니다.

기본 문법

먼저 기본적인 사용 문법을 살펴보겠습니다.

select count(1) from yourTableName;

예제 테이블 생성

실습을 위해 먼저 예제 테이블을 생성해 보겠습니다.

mysql> create table DemoTable
    (
    StudentName varchar(100)
    );
Query OK, 0 rows affected (0.84 sec)

데이터 삽입

insert 명령어를 사용하여 테이블에 학생 이름 데이터를 추가합니다.

mysql> insert into DemoTable(StudentName) values('John Smith');
Query OK, 1 row affected (0.24 sec)
mysql> insert into DemoTable(StudentName) values('Chris Brown');
Query OK, 1 row affected (0.14 sec)
mysql> insert into DemoTable(StudentName) values('David Miller');
Query OK, 1 row affected (0.16 sec)
mysql> insert into DemoTable(StudentName) values('Carol Taylor');
Query OK, 1 row affected (0.15 sec)

저장된 데이터 확인

select 문으로 테이블에 저장된 모든 레코드를 조회해 보겠습니다.

mysql> select *from DemoTable;

출력 결과

+--------------+
| StudentName  |
+--------------+
| John Smith   |
| Chris Brown  |
| David Miller |
| Carol Taylor |
+--------------+
4 rows in set (0.00 sec)

현재 테이블에는 총 4개의 레코드가 저장되어 있습니다.

count(*) 없이 행 수 구하기

다음은 count(*)를 사용하지 않고 count(1)로 테이블의 행 수를 구하는 쿼리입니다.

mysql> select count(1) from DemoTable;

출력 결과

+----------+
| count(1) |
+----------+
| 4        |
+----------+
1 row in set (0.03 sec)

실행 결과에서 볼 수 있듯이 count(1)은 count(*)와 마찬가지로 테이블의 전체 행 수인 4를 정확하게 반환합니다. 참고로 최신 버전의 MySQL에서는 count(1)과 count(*) 간의 성능 차이가 사실상 없으므로, 두 방식 중 편한 것을 선택하여 사용하면 됩니다.