SQLite | SQLite 명령어 | column 모드일 때 열마다 폭을 지정 (.width 명령)


width 명령을 사용하면 .mode 명령 column 모드에 있을 때에 데이터를 표시할 열마다 폭을 설정할 수 있다. 여기에서는 .width 명령의 사용법에 대해 설명한다.

.width 명령 사용

.width 명령은 데이터를 표시할 때 컬럼마다의 폭을 설정한다. 이것은 .mode 명령에 의해 column 모드로 설정되어 있을 때 사용할 수 있다. 사용법은 다음과 같다.

.width NUM NUM ...

인수는 컬럼마다의 폭을 문자로 지정한다. 여러 컬럼의 너비를 설정하려면 공백을 두고 계속 작성한다.

하나 폭을 지정한 경우에는 모든 컬럼의 폭이 지정된 값으로 되는 것은 아니므로 주의하시기 바란다. 하나만 지정된 경우는 어디까지나 첫 번째 컬럼의 너비만 지정된 값이다. 또한, 폭을 몇으로 설정해도 열과 열 사이에 2자의 공간이 비어 있다.

그럼 실제로 해보도록 하자. 우선 column 모드로 변경한 후에 기본 설정을 그대로 데이터를 조회하고 표시해 보자.

.mode column
qlite> .mode column
sqlite> 
sqlite> select * from user;
1           devkuma     Seoul     
2           kimkc       Busan     
3           araikuma    Seoul     
4           happykuma   Seoul     
5           mykuma      Daejeon   
sqlite> 

기본적으로 컬럼의 폭은 10자로 설정되어 있다. (폭이 10자에 추가로 반드시 컬럼과 컬럼 사이는 2자의 공간이 들어간다.)

그러면 첫 번째 컬럼만 폭을 4자로 설정한다. 설정을 변경한 후에 SELECT 문을 실행한다.

.width 4
sqlite> select * from user;
1     devkuma     Seoul     
2     kimkc       Busan     
3     araikuma    Seoul     
4     happykuma   Seoul     
5     mykuma      Daejeon   
sqlite> 

첫 번째 컬럼의 폭이 지정된 4자로 되었고, 나머지 컬럼의 폭은 기본값을 10자이다.

다음은 첫 번째 컬럼의 폭을 4자, 바로 다음 컬럼의 폭을 6자로 해보자.

.width 4 6
sqlite> .width 4 6
sqlite> 
sqlite> select * from user;
1     devkum  Seoul     
2     kimkc   Busan     
3     araiku  Seoul     
4     happyk  Seoul     
5     mykuma  Daejeon   
sqlite> 

첫 번째 컬럼의 너비가 4자, 다음 컬럼의 폭이 6자이다. 나머지 컬럼의 폭은 기본값을 10자이다.

지정된 폭으로 데이터가 맞지 않는 경우

컬럼에 포함된 값이 컬럼에 설정한 폭에 맞지 않는 경우, 지정된 폭 이상의 문자는 잘려서 표시된다.

다음 예제에서는 첫 번째 컬럼의 폭을 4자, 그 다음 컬럼의 폭을 4자로 설정 보겠다.

.width 4 4
sqlite> .width 4 4
sqlite> 
sqlite> select * from user;
1     devk  Seoul     
2     kimk  Busan     
3     arai  Seoul     
4     happ  Seoul     
5     myku  Daejeon   
sqlite> 

두 번째 열에는 4자 이상의 값이 포함되어 있지만, 폭이 4자로 설정되어 있기 때문에 4자 이후의 문자는 잘려서 표시되었다. (어디까지나 표시할 때 지정한 문자 수 만큼 표시하고 있을 뿐, 저장되어 있는 값에는 영향을 주지 않는다.)

데이터를 오른쪽 정렬로 표시

.width 명령으로 폭을 지정할 때 음수 값을 지정하면, 오른쪽 정렬로 데이터를 표시할 수 있다.

그럼 실제로 지정해 보도록 하자. 아래와 같이 .width 명령을 실행하여 컬럼의 폭을 지정하고 오른쪽 정렬로 표시되도록 설정한다.

.width -4 -10
sqlite> select * from user;
   1     devkuma  Seoul     
   2       kimkc  Busan     
   3    araikuma  Seoul     
   4   happykuma  Seoul     
   5      mykuma  Daejeon   
sqlite> 

각각의 컬럼이 지정한 폭에서 오른쪽 정렬로 표시된 것을 확인 할 수 있다.