코딩두의 포트폴리오

7. MySQL 데이터베이스 구조 및 자료 수정과 삭제 본문

STEP 특화교육/MySQL 데이터베이스 기초와 Web 활용

7. MySQL 데이터베이스 구조 및 자료 수정과 삭제

코딩두 2025. 5. 21. 18:03

칼럼 추가

1. 칼럼 추가 명령어

1) 테이블 제일 뒤에 칼럼 추가

ALTER TABLE 테이블명 ADD 새컬럼명 자료타입;

2) 테이블 제일 앞에 칼럼 추가

ALTER TABLE 테이블명 ADD 새컬렴명 자료타입 FIRST;

3) 특정 칼럼 뒤에 칼럼 추가

ALTER TABLE 테이블명 ADD 새컬럼명 자료타입 AFTER 앞칼럼명;

 

2. 칼럼 추가 예

EX) 글을 작성한 사람을 기록하는 칼럼을 추가

칼럼명: writer / 타입: varchar(10)

 

1) 테이블 제일 뒤에 칼럼 추가

(1) 쿼리문 - ALTER TABLE manage ADD writer varchar(10);

(2) 실행 결과

 

2) 테이블 제일 앞에 칼럼 추가

(1) 쿼리문 - ALTER TABLE manage ADD writer varchar(10) FIRST;

(2) 실행 결과

 

3) 특정 칼럼 뒤에 칼럼 추가

(1) 쿼리문 - ALTER TABLE manage ADD writer varchar(10) AFTER market;

(2) 실행 결과

 

칼럼 삭제

1. 칼럼 삭제 명령어

ALTER TABLE 테이블명 DROP 삭제할칼럼명;

 

2. 칼럼 삭제 실행 예

------>

칼럼 변경

1. 칼럼명 변경

1) 칼럼명 변경 명령어

ALTER TABLE 테이블명 CHANGE 기존칼럼명 변경칼럼명 칼럼타입;

 

2) 칼럼명 변경 실행 예

(1) 쿼리문

ALTER TABLE manage CHANGE writer name varchar(8);

(2) 실행 결과

(3) 칼럼명 변경 확인

 

2. 칼럼 타입 변경

1) 칼럼 타입 변경 명령어 

ALTER TABLE 테이블명 MODIFY 칼럼명 변경칼럼타입;

 

2) 칼럼 타입 변경 실행 예

(1) 'buy' 칼럼 타입 변경 전 확인

(2) 칼럼 타입 변경 실행

INT -> CHAR

(3) 칼럼 타입 변경 확인

 

3. 칼럼 위치 변경(이동)

1) 칼럼 위치 변경 명령어

ALTER TABLE 테이블명 MODIFY 칼럼명 칼럼타입 AFTER 앞칼럼명;

 

2) 칼럼 위치 변경 실행 예

(1) 'buy' 칼럼 위치 변경 전 확인

(2) 칼럼 위치 변경 실행

(3) 칼럼 위치 변경 확인

 

데이터 수정과 삭제

1. 데이터의 수정

1) 입력된 데이터의 내용 수정이 필요한 경우

 

2) 데이터 수정 명령문

UPDATE 테이블명 SET 칼럼명 = 수정데이터 WHERE 조건;

-> UPDATE account SET amount = 10 WHERE list = '통신비'

조건에 해당하는 것은 list 칼럼의 항목 중에 통신비에 해당하는 레코드 중 amount 칼럼 내용 수정

 

3) 데이터 수정 실행 예

 

2. 데이터의 수정 시 조건 사항에 의한 오류

1) 조건 사항을 입력하지 않을 경우

(1) 조건 사항을 입력한 경우

UPDATE account SET amount = 20 WHERE list = '통신비'

(2) 조건 사항을 입력하지 않은 경우

UPDATE account SET amount = 20;

-> 전체 레코드의 amount 항목이 20을 수정됨

 

3. 조건 사항 중복에 의한 오류

1) 수정하고자 하는 조건의 레코드가 1개 이상일 경우

- 수정하고자 하는 조건의 레코드가 1개 이상일 경우 수정을 진행하면 해당되는 레코드 모두 수정됨

 

2) 중복 조건 레코드의 예

(1) 중복 조건 레코드 수정

UPDATE account SET amount = 300 WHERE list='급여';

(2) 중복 조건 레코드 수정 결과

- 테이블 설계 오류에 따라 해당 현상이 발생 -> 레코드별 유일한 값을 부여하는 Primary Key를 적용하여 해결

 

Primary Key

1. Primary Key의 개념

- '기본 키'라고도 함

- 각 행을 구분하는 유일한 키 중 하나를 선정하여 대표로 삼는 키

 

2. Primary Key의 적용

- 레코드 중에서 민증, 학번과 같은 중복될 수 없는 유일한 칼럼이 있다면 해당 칼럼을 Primary Key로 지정

- Primary Key 지정은 테이블을 생성시킬 때 적용

- Primary Key 적용 방법

MYSQL> CREATE TABLE person (
-> ID char(5) NOT NULL,
-> name char(10),
-> PRIMARY KEY(ID));

- ID 칼럼은 Primary Key를 지정함

- ID 칼럼은 Null값이 아니어야 함

- Primary Key가 지정된 칼럼에 레코드 입력 시 이전의 값과 동일한 값이 입력되면 에러가 발생

- Null 값이 지정될 칼럼일 경우 레코드 입력 시 해당 칼럼에 어떠한 값도 입력하지 않으면 에러가 발생

 

Auto_Increment

1. Auto_Increment의 개념

- Primary Key를 쉽게 할당해 주기 위한 일종의 자동 레코드 번호

- 자동으로 레코드 번호를 부여

- 테이블상에서 유일한 번호를 부여

 

2. Auto_Increment 적용 개요

- 테이블을 만들 때 Auto_Increment를 위한 칼럼을 생성

- 주로 number와 같은 번호를 의미하는 명칭으로 생성

- Auto_Increment 칼럼에 Primary Key를 적용하면 효율적임

 

3. Auto_Increment 적용

MYSQL> CREATE TABLE person ( 
-> number INT NOT NULL AUTO_INCREMENT,
-> name CHAR(5), 
-> age INT, 
-> PRIMARY KEY(number));

- number 칼럼을 Auto_Increment 지정

- number 칼럼은 Null 값이 아니어야 함

- Primary Key는 number 칼럼에 지정

 

4. Auto_Increment 적용 결과

 

데이터의 삭제

1. 데이터 삭제 명령 구문

DELETE FROM 테이블명 WHERE 조건사항

EX)

DELETE FROM box WHERE id=4;

- box라는 테이블에서 id 칼럼 데이터 중 4에 해당하는 레코드를 삭제한다는 의미

 

3. 테이블 내부 전체 데이터 삭제 명령 구문

TRUNCATE 테이블명;

EX)

TRUNCATE box;

- box라는 테이블은 존재하지만 내부의 데이터는 모두 삭제함