[MySQL] 테이블 관련 명령어

chrkb1569·2022년 7월 9일

MySQL

목록 보기
5/6

오늘은 테이블과 관련된 명령어들에 대하여 배웠습니다.

전에는 테이블을 생성하는 CREATE TABLE 명령어만 알고 있었으나, 테이블을 변경, 삭제하는 기능들과 테이블에 데이터를 입력하는 기능들에 대하여 알아보았습니다.

테이블 변경

먼저 테이블을 변경하는 명령어에 대해서 알아보겠습니다. 테이블을 변경하는 명령어들은 테이블의 이름을 변경하는 경우 혹은 테이블에 속한 컬럼들을 변경하는 명령어들을 나타냅니다.

테이블명 변경

테이블을 변경하는 경우, ALTER TABLE (테이블 이름) 을 통하여 변경하게 됩니다.
테이블명을 변경하는 경우에는

ALTER TABLE (기존 테이블 이름)
RENAME TO (새로운 테이블 이름);

을 통하여 테이블의 이름을 변경할 수 있습니다.

지난번에 생성해주었던 test_final 테이블의 경우,

ALTER TABLE test_final RENAME TO test_rename;

를 통하여 테이블의 이름이 test_final에서 test_rename으로 변경됨을 확인할 수 있습니다.

컬럼 변경

다음은 테이블에 존재하는 데이터들을 나타내는 컬럼을 변경하는 경우입니다.

컬럼을 변경하는 경우는 크게 3가지로 나뉘게되는데, 컬럼의 이름만을 바꾸는 경우, 컬럼의 자료형을 바꾸는 경우, 혹은 둘 다 바꾸는 경우입니다.

MySQL 명령어들의 좋은 점은 명령어가 굉장히 직관적이여서 이해하기가 쉽고, 더불어 활용하기가 편하다는 점입니다.

컬럼의 경우에도 테이블의 명령어와 비슷한 형태를 띄고 있는데, 컬럼을 변경하는 명령어의 경우, 다음과 같습니다.

ALTER TABLE (테이블 이름)
CHANGE COLUMN (기존 컬럼 이름)
(새로운 컬럼 이름) (새로운 컬럼의 자료형)

이와 같이 기존 컬럼의 이름을 입력해준뒤, 변경하고싶은 요소를 변경시켜줄 수 있습니다.

다음과 같이 final_rename 테이블에 존재하는 컬럼들을 변경시켜본다면,

다음과 같이 이름만을 변경시킬 수 있으며,

아니면 다음과 같이 이름과 자료형 모두를 변경시킬 수 있습니다.

컬럼 삭제

컬럼을 삭제하는 방법으로는 다음과 같이

DROP COLUMN (컬럼명)

과 같이 직접적으로 컬럼의 이름을 입력하여 삭제할 수 있지만,

DELETE FROM (테이블 이름) WHERE (조건문)

을 통하여 해당 조건문을 만족하는 컬럼들을 삭제할 수 있습니다.

그런데, WHERE을 생략하게 될 경우, 테이블에 있는 모든 데이터들이 삭제 될 수 있으니 조심해야합니다.

DELETE 이외에도 컬럼을 삭제해주는 명령어가 존재하는데, 그것은 바로 TRUNCATE입니다.

TRUNCATE와 DELETE 모두 컬럼을 삭제해준다는 면에서는 동일하다고 볼 수 있지만, 삭제 후 데이터를 처리하는 방식에 있어서 차이가 존재합니다.


다음과 같이 데이터가 존재한다고 가정해봅시다.

DELETE FROM test_rename;

을 통하여 모든 데이터를 삭제시켜주고, 데이터를 다시 입력시켜보겠습니다.

INSERT INTO test_rename (final_name_2, final_age_2)
VALUES ("이이이", 24);

뒤에서 다루게될 데이터 입력 명령어이지만, 일단 데이터를 삽입해주어 결과를 확인해야하기에 사용하였습니다.
모든 데이터를 삭제해준 뒤, 다음의 INSERT문을 통하여 데이터를 입력해주니, PK값인 final_number의 값이 데이터를 삭제하기 전 PK값에서부터 시작함을 확인할 수 있습니다.

차이점을 확인해보기 위하여 동일한 기능을 수행하는 명령어인 TRUNCATE를 통하여 동일한 작업을 수행해보겠습니다.


테이블 업데이트

UPDATE (테이블 이름) SET (변경할 사항) WHERE (조건)

테이블 업데이트 명령어의 경우, 다음의 명령어를 통하여 조건에 부합하는 테이블에서의 값들을 변경시킬 수 있습니다.

앞에서 DELETE와 마찬가지로 WHERE 생략할 경우에는 전체적으로 변경되므로 주의가 필요합니다.

컬럼 추가

새롭게 컬럼을 추가해주는 명령어입니다.

ADD COLUMN (추가할 컬럼의 이름) (추가할 컬럼의 자료형);

다음의 명령어를 통하여 컬럼을 추가할 수 있으며,

자료형 뒤에 AFTER 명령어를 추가하여, 특정 컬럼의 뒤에 위치하게끔 만들어줄수도 있습니다.

테이블 삭제

DROP TABLE (테이블 이름)

원하는 테이블을 삭제해줍니다.

데이터 입력

INSERT INTO (테이블 이름) (매개변수 이름) 
VALUES (입력할 값들)

원하는 테이블에 데이터를 입력해줄 수 있는 명령어입니다.
테이블 이름과 VALUES 명령어 사이에 들어가는 매개변수의 이름을 적는 란의 경우에는, 입력하게될 값들이 각각 어느 매개변수에 매핑되는지를 나타내줍니다.

예를 들어서, test_rename 테이블의 경우를 살펴보면, PK값을 제외한 컬럼은 final_name_2, final_age_2가 존재합니다.

INSERT INTO 구문을 통하여 test_rename 테이블에 데이터를 입력해준다고 한다면, PK값은 자동으로 증가될테니, 우리는 final_name_2와 fianl_age_2에만 값을 입력해주면됩니다.

이처럼, 테이블에 존재하는 모든 컬럼에 값을 입력해주는 경우와, 테이블에 존재하는 일부 컬럼에 값을 입력해주는 경우로 명령어는 달라지는데,

먼저 테이블에 존재하는 모든 컬럼에 데이터를 입력해주는 경우에는

INSERT INTO (테이블 이름) VALUES (입력할 값들)

를 통하여 테이블에 값을 입력해줄 수 있습니다.

이 경우, 컬럼 순서대로 값을 입력해주는 경우이므로 데이터를 입력해줄 경우 칼럼의 순서와 자료형에 알맞게 값을 입력해주어야합니다.

test_rename 테이블을 예시로 들어본다면,

INSERT INTO test_rename VALUES (1, "김김김", 24)

test_rename의 컬럼이 final_number, final_name_2, fianl_age_2 순으로 나열되어 있으므로, 컬럼에 순서대로 데이터가 입력된다고 볼 수 있습니다.

하지만, 일부 컬럼에만 데이터를 입력해주거나 혹은 컬럼의 순서대로 데이터를 입력하지 않는 경우에는

INSERT INTO (테이블 이름) (매개변수 이름) 
VALUES (입력할 값들)

다음의 명령어를 통하여 테이블에 데이터를 입력해줍니다.

이전의 명령어와 비슷하지만, 테이블의 이름과 VALUES 명령어 사이에 매개변수의 이름을 적어주어, 입력되는 값들이 어느 매개변수에 매핑이 되는지를 명시해줍니다.

0개의 댓글