우선 컬럼의 타입 변경이 필요한 상황을 만들어보겠습니다. 저는 아직 어떤 테이블도 존재하지 않는 test라는 이름의 데이터베이스를 사용하도록 하겠습니다.
MariaDB [(none)]> use test;
test 데이터베이스 안에 user라는 이름의 테이블을 생성하겠습니다. id와 name 두 개의 컬럼으로 구성된 테이블을 만들어주겠습니다.
MariaDB [test]> CREATE TABLE user (id INT(11) NOT NULL AUTO_INCREMENT, name VARCHAR(10) NOT NULL, PRIMARY KEY(id));
user 테이블의 컬럼들의 특성을 살펴보겠습니다.
MariaDB [test]> SHOW COLUMNS FROM user;
여기서 name 열의 타입을 주목해주세요. varchar(10)으로 되어 있습니다. 영어기준으로 10개의 문자를 입력받을 수 있다는 뜻입니다. 그러면 문자가 10개 짜리인 name을 입력해보겠습니다.
MariaDB [test]> INSERT INTO user (name) VALUES ('bskyvision');
쿼리에 성공했습니다. 이번에는 10개가 넘는 문자열을 입력해보겠습니다.
MariaDB [test]> INSERT INTO user (name) VALUES ('blueskyvision');
보시다시피 에러 메시지가 뜹니다. name 컬럼에 대한 데이터로써 너무 길다고 말해주고 있죠. 10개 이하의 문자열은 문제 없습니다.
MariaDB [test]> INSERT INTO user (name) VALUES ('sim');
그러면 이제 user 테이블의 행들을 모두 읽어보겠습니다.
MariaDB [test]> SELECT * FROM user;
아까 blueskyvision을 name 열에 넣어준건 반영이 안 되었고 나머지는 모두 반영이 된 것을 확인하실 수 있습니다. 그런데 blueskyvision과 같이 비교적 긴 이름도 입력이 가능하게 하고 싶다면 어떻게 해야할까요?
컬럼의 타입을 바꿔주면 됩니다. 다음과 같은 쿼리를 주면 됩니다. 이 포스팅에서 가장 중요한 부분입니다.
MariaDB [test]> ALTER TABLE user MODIFY name varchar(30);
컬럼의 특성이 바뀌었는지 확인해보겠습니다.
MariaDB [test]> SHOW COLUMNS FROM user;
varchar(10)이었던 타입이 varchar(30)으로 잘 바뀌었죠?
이제 좀 더 긴 이름들을 허용하는지 테스트해보겠습니다. 아까 문제였던 blueskyvision부터 넣어보겠습니다.
MariaDB [test]> INSERT INTO user (name) VALUES ('blueskyvision');
성공했구요. 좀 더 긴 이름도 넣어보겠습니다.
MariaDB [test]> INSERT INTO user (name) VALUES ('blueskyvision is bskyvision');
마지막으로 긴 이름 하나만 더 넣어볼게요.
MariaDB [test]> INSERT INTO user (name) VALUES ('abcdefghijklmnopqrstuvwxyz');
자, 그럼 user 테이블의 모든 행을 한번 읽어보겠습니다.
MariaDB [test]> SELECT * FROM user;
입력한 이름이 테이블에 모두 다 잘 들어가있네요.^^
b스카이비전의 추천글
'DB > SQL' 카테고리의 다른 글
[MariaDB] 테이블 컬럼명들 읽어내기 (1) | 2020.11.12 |
---|---|
[MariaDB] 테이블에 열 추가 및 제거하기 (1) | 2020.11.11 |
[sqlite3] 행 갯수 카운트하기 (3) | 2020.11.11 |
[sqlite3] 테이블 내용 rowid 열과 함께 보기 (2) | 2020.11.10 |
[sqlite3] 데이터 오름차순 및 내림차순으로 정렬하기 (6) | 2020.10.23 |
[sqlite3] 기존 테이블에 컬럼(열) 추가하기 (1) | 2020.10.22 |
[sqlite3] 테이블에서 마지막 행 또는 첫 행 읽기 (2) | 2020.10.19 |
[sqlite3] 테이블에서 한 행을 랜덤으로 읽기 (1) | 2020.10.16 |