본문 바로가기

웹프로그래밍/SQL

(공부중) MySQL CRUD 공부(2) - 필드 삭제와 필드의 이름, 타입 수정

저번에 이어 포스팅을 작성해본다.

 

전에 필드의 내용을 추가하는 부분까지 하였고 이제 필드를 삭제해보려고 한다.


목차

  1. 데이터베이스 만들기
  2. 테이블과 필드 만들기
  3. 필드에 내용 추가하기
  4. 인덱스를 기준으로 내림차순 정렬

3 - 3  필드 삭제

필요없는 필드를 삭제해보려고 한다. 그전에 며칠 동안 포스트를 안 쓰다 보니 무슨 필드가 있는지 다 까먹어서 필드를 확인해보려고 한다.

 

USE `mei`  -- 사용할 데이터베이스를 선택한다.
SHOW TABLES;  -- 해당 데이터 베이스에 존재하는 테이블을 확인한다.
DESC `board`; -- board 테이블에 존재하는 필드를 확인한다.

 

Field Type Null Key Default Extra
id varchar(10) YES   NULL  
content text ..   ..  
title varchar(20) ..   ..  
like int ..   ..  
owner varchar(10) ..   ..  
view int ..   ..  
index int NO PRI .. auto_increment

 

어떤 필드가 존재하는지 확인하였다. 이제 필요없는 필드를 삭제해보자.

 

owner필드는 작성자가 누구인지 저장하기 위하여 있는 필드다. 하지만 생각해보니 작성자는 id 필드에 저장하면 되서 필요가 없을 것 같다. 그러니 해당 필드를 삭제하기로 하였다.

 

필드 삭제는 ALTER TABLE ... DROP ... 구문을 사용해야한다.

 

ALTER TABLE `board` DROP `owner`; -- board 테이블에서 owner 필드를 삭제한다.

 

실제 사용할때 테이블 이름과 필드 이름은 당연히 자신이 원하는 대로 쓰면 된다.

 

해당 구문을 쓰면 즉시 필드가 사라지며 해당 필드에 존재하는 모든 데이터도 동시에 사라진다.

 

이번에는 필드 이름을 수정해보자

 

 

3 - 4  필드명 수정

공부를 하다보니 데이터베이스에서 id는 보통 인덱스(식별 코드)를 나타내고 유저의 아이디는 다르게 설정한다는 것을 배우게 되었다. 그래서 이에 맞게 필드명도 수정해보려고 한다.

 

ALTER TABLE `board` CHANGE COLUMN `id` `uid` VARCHAR(10); -- id 필드를 uid 필드로 바꾸고
ALTER TABLE `board` CHANGE COLUMN `index` `id` VARCHAR(10); -- index 필드는 id 필드로 바꾼다. (주의! 원래 의도와 다르게 작성된 구문이다)

 

chane column `바꾸기 전 필드명` `바꿀 필드명` `타입`; 형식으로 지정하면 필드명을 바꿀 수 있다. 이때 데이터 타입을 다르게 변경하면 부수 효과들이 나타날 수 있어 문제가 없는지 잘 확인하고 데이터타입을 지정해주어야 한다.

 

위의 코드를 보면 알겠지만 id (구 index) 필드의 타입을 잘못 지정하였다.. 다시 원상복구 시켜보자.

 

 

3 - 5  필드의 타입 수정

필드의 타입을 변경하려면 ALTER...MODIFY... 구문을 사용하면 된다.

ALTER TABLE `board` MODIFY `id` INT AUTO_INCREMENT; -- board 테이블에 있는 id 필드의 타입을 int 타입으로 변경

 

SQL은 정말 정신을 제대로 못차리면 실수를 많이 하게 되는 듯 하다.

 

이제 필드를 정렬하는 법을 써보려고 한다. 거기에 추가로 필드의 데이터를 수정하는 것과 필드의 데이터를 삭제하는 것도 써보려고 한다.

 

다음 포스트에 계속 이어서 써보겠다.