MySQL에서는 DEFAULT() 함수를 사용하면 테이블의 각 열에 미리 정의해 둔 기본값을 손쉽게 확인할 수 있습니다. 이번 글에서는 기본값이 설정된 테이블을 만들고, 실제 데이터와 무관하게 열의 기본값만 조회하는 방법을 단계별로 살펴보겠습니다.
1. 기본값이 설정된 테이블 생성
먼저 각 열에 기본값을 지정하여 테이블을 생성합니다.
mysql> create table DemoTable803(UserId int DEFAULT 101, UserName varchar(100) DEFAULT 'Chris'); Query OK, 0 rows affected (1.18 sec)
위 예제에서 UserId 열의 기본값은 101, UserName 열의 기본값은 'Chris'로 설정되었습니다.
2. 레코드 삽입하기
INSERT 명령으로 몇 개의 레코드를 추가합니다. 값을 명시하지 않은 열에는 자동으로 기본값이 채워집니다.
mysql> insert into DemoTable803 values(102,'Chris');
Query OK, 1 row affected (0.34 sec)
mysql> insert into DemoTable803(UserName) values('Mike');
Query OK, 1 row affected (0.48 sec)
mysql> insert into DemoTable803(UserId) values(103);
Query OK, 1 row affected (0.21 sec)
mysql> insert into DemoTable803 values();
Query OK, 1 row affected (0.22 sec)
mysql> insert into DemoTable803 values(110,'Robert');
Query OK, 1 row affected (0.33 sec)3. 전체 레코드 확인
SELECT 문으로 테이블의 모든 레코드를 조회해 보겠습니다.
mysql> select *from DemoTable803;
실행 결과는 다음과 같습니다.
+--------+----------+ | UserId | UserName | +--------+----------+ | 102 | Chris | | 101 | Mike | | 103 | Chris | | 101 | Chris | | 110 | Robert | +--------+----------+ 5 rows in set (0.00 sec)
값을 입력하지 않은 행에는 기본값인 101과 'Chris'가 자동으로 저장된 것을 확인할 수 있습니다.
4. 기본값만 조회하는 방법
열에 설정된 기본값만 따로 확인하고 싶다면 DEFAULT(열이름) 함수를 사용하면 됩니다. 아래 쿼리처럼 LIMIT 1을 함께 사용하면 한 번만 출력되어 결과를 깔끔하게 볼 수 있습니다.
mysql> select default(UserId), default(UserName) from DemoTable803 limit 1;
실행 결과는 다음과 같습니다.
+-----------------+-------------------+ | default(UserId) | default(UserName) | +-----------------+-------------------+ | 101 | Chris | +-----------------+-------------------+ 1 row in set (0.00 sec)
정리
MySQL의 DEFAULT() 함수를 활용하면 테이블 구조를 직접 확인하지 않아도 각 열에 설정된 기본값을 빠르게 조회할 수 있습니다. 특히 대규모 테이블에서 스키마 정보를 간단히 점검하거나, 애플리케이션 로직에서 기본값을 참조해야 할 때 유용하게 활용할 수 있습니다.