테이블 다루기 1
📌 DESCRIBE
컬럼 구조, 각 컬럼의 데이터 타입 및 속성을 수정하는 방법에 대해 알아보자.
DESCRIBE
문은 테이블의 컬럼 정보를 한 눈에 볼 수 있다.
DESCRIBE 테이블명;
DESC 테이블명;
DESCRIBE student;
DESC student;
Field
: 컬럼의 이름Type
: 컬럼의 데이터 타입Null
: Null 속성 유무Key
: Primary Key, Unique 속성 여부Defalt
: 컬럼의 기본값Extra
: AUTO_INCREMENT 등의 기타 속성DESCRIBE
를 줄여서DESC
라고 사용해도 된다.
📌 컬럼 추가와 컬럼의 이름 변경
테이블의 컬럼 구조를 바꾸는 방법에 대해 알아보자.
✅ 학생의 성별을 구별하는 gender 컬럼 추가
ALTER TABLE student ADD gender CHAR(1) NULL;
ALTER TABLE student
: student 테이블을 변경ADD gender
: gender 라는 이름의 컬럼을 추가
✅ student_number 컬럼을 registration_number로 이름 변경
ALTER TABLE student
RENAME COLUMN student_number TO registraion_number;
ALTER TABLE student
: student 테이블을 변경RENAME COLUMN student_number
: student_number 컬럼 이름 변경TO registration_number
: registration_number로 변경
📌 컬럼 삭제와 데이터 타입 변경
✅ admission_date 컬럼 삭제
ALTER TABLE student DROP COLUMN admission_date;
ALTER TABLE student
: student 테이블을 변경DROP COLUMN admission_date
: admission_date 컬럼 삭제
✅ major 컬럼의 데이터 타입 변경
현재 major 컬럼의 데이터 타입은 VARCHAR(15)
이다.
전공 코드 번호를 담을 수 있도록 INT
로 변경하자.
- 컴퓨터공학과 : 10
- 멀티미디어학과 : 12
- 법학과 :
ALTER TABLE student MODIFY major INT;
정수가 아닌 값이 있다는 오류가 발생한다. major 컬럼의 원래 값이 문자열이기 때문이다. 따라서 정수로 바꿔준 후 데이터 타입을 변경해줘야 한다.
SET SQL_SAFE_UPDATES = 0;
UPDATE student SET major = 10 WHERE major = '컴퓨터공학과';
UPDATE student SET major = 12 WHERE major = '멀티미디어학과';
UPDATE student SET major = 7 WHERE major = '법학과';
SET SQL_SAFE_UPDATES = 1;
ALTER TABLE student MODIFY major INT;
📝 UPDATE가 안 될 경우
Error Code: 1175. You are using safe update mode and you tried to update a table without a WHERE that uses a KEY column. To disable safe mode, toggle the option in Preferences -> SQL Editor and reconnect.
‘safe update 모드를 사용 중일 때는, KEY column을 사용해서 테이블을 갱신해야 한다.'는 뜻이다. 여기서 KEY column이란 Primary Key를 의미한다.
safe update
모드란, 말 그대로 안전한 갱신
을 보장하기 위한 모드로
UPDATE student SET major = 10;
처럼 모든 row의 특정 컬럼을 갱신해버리는 SQL 문이나,
UPDATE student SET major = 10 WHERE major = ‘컴퓨터공학과’;
처럼 WHERE 절에 Primary Key가 사용되지 않은 UPDATE 문이 실행되지 않도록 한다.
✅ 안전모드 끄기
SET SQL_SAFE_UPDATES = 0;
✅ 안전모드 켜기
SET SQL_SAFE_UPDATES = 1;
✅ 과제 : 컬럼 구조 변경
신발을 관리하기 위해 shoes
라는 테이블을 사용하고 있다.
- a 작업 : name 컬럼의 이름을 model로 수정
- b 작업 : size 컬럼의 데이터 타입을 INT에서 DOUBLE로 수정
- c 작업 : brand 컬럼을 삭제
- d 작업 : stock 컬럼(데이터 타입이 INT이고, NOT NULL 속성을 가진 컬럼) 추가
DESCRIBE
문으로 현재 각 컬럼의 데이터 타입과 속성을 확인하고, 그 다음 위의 4가지 작업을 순서대로 수행하라. 이때 작업 내용에 없는 컬럼의 기존 속성들은 그대로 유지하라.
💻 풀이
ALTER TABLE shoes RENAME COLUMN name TO model;
ALTER TABLE shoes MODIFY size DOUBLE NOT NULL;
ALTER TABLE shoes DROP COLUMN brand;
ALTER TABLE shoes ADD stock INT NOT NULL;
DESCRIBE shoes;
👉 결과
Author And Source
이 문제에 관하여(테이블 다루기 1), 우리는 이곳에서 더 많은 자료를 발견하고 링크를 클릭하여 보았다 https://velog.io/@revudn46/테이블-다루기-1저자 귀속: 원작자 정보가 원작자 URL에 포함되어 있으며 저작권은 원작자 소유입니다.
우수한 개발자 콘텐츠 발견에 전념 (Collection and Share based on the CC Protocol.)