본문 바로가기
IT/SQL

[MySQL] 테이블 컬럼 값 생성, 수정, 삭제 (CREATE, UPDATE, DELETE)

by marketinkerbell 2022. 2. 3.
반응형

 

< Table 생성 예시 >

 

animal_info 라는 테이블 생성하기

 

id : Primary Key로 사용할 컬럼, 데이터 타입 : INT

     AUTO_INCREMENT 속성 주기

type : 동물 종류(사자, 코끼리 등), 데이터 타입 : VARCHAR, 최대 길이 : 30자

name : 동물 이름(리오, 조이 등), 데이터 타입 : VARCHAR, 최대 길이 : 10자

age : 나이, 데이터 타입 : TINYINT

sex : 성별, 데이터 타입 : CHAR, 최대 길이 : 1자

weight : 몸무게, 데이터 타입 : DOUBLE

feature : 특징 묘사, 데이터 타입 : VARCHAR, 최대 길이 : 500자

entry_date : 동물원에 들어온 날짜, 데이터 타입 : DATE 

 

feature 컬럼을 제외한 모든 컬럼에는 NOT NULL 속성을 주고,
feature 컬럼에만 NULL이 존재해도 된다는 의미로 NULL 속성 주기

 

라는 테이블 ㄹ

CREATE TABLE `animal_info` (
`id` INT NOT NULL AUTO_INCREMENT,
`type` VARCHAR(30) NOT NULL,
`name` VARCHAR(10) NOT NULL,
`age` TINYINT NOT NULL,
`sex` CHAR(1) NOT NULL,
`weight` DOUBLE NOT NULL,
`feature` VARCHAR(500) NULL,
`entry_date` DATE NOT NULL,
PRIMARY KEY (`id`)
);

 

테이블 이름(animal_info), 컬럼 이름(id, type) 등에 모두 ` 기호가 앞뒤로 붙어있는 것을 볼 수 있다.

` 기호의 정식 명칭은 백틱(backtick)이다. 

 

DBMS에서는 데이터베이스, 테이블, 컬럼 등과 같은 구성요소를 보통 object(객체)라고 한다.

그리고 이런 object에 붙여준 이름을 identifier(식별자)라고 하는데,

MySQL에서 백틱은 해당 단어가 identifier임을 나타내는 기호다.  

키보드상에서 물결 (~) 기호 있는 자판에 백틱 기호 (`) 가 있다.

 

 

이 백틱(`)은 작은따옴표(‘), 큰따옴표(“)랑은 다르다. 

작은따옴표와 큰따옴표의 용도는 문자열 값을 나타낼 때 작은따옴표 또는 큰따옴표로 감싸주는 것.

예를 들어, CHAR 또는 VARCHAR 타입의 컬럼에 들어갈 값은 항상 작은따옴표 또는 큰따옴표로 감싸준다.

 

 

 

 

생성한 테이블 칼럼들에 값 넣기

 

INSERT INTO animal_info (type, name, age, sex, weight, feature, entry_date) 
   VALUES ('사자', '리오', 8, 'm', 170.5, '상당히 날렵하고 성격이 유순한 편임', '2015-03-21');

INSERT INTO animal_info (type, name, age, sex, weight, feature, entry_date) 
   VALUES ('코끼리', '조이', 15, 'f', 3000, '새끼 때 무리에서 떨어져 길을 잃고 방황하다가 동물원에 들어와서 적응을 잘 마침', '2007-07-16');

INSERT INTO animal_info (type, name, age, sex, weight, feature, entry_date) 
   VALUES ('치타', '매튜', 20, 'm', 62, '나이가 노령이라 최근 활동량이 현저히 줄어든 모습이 보임', '2003-11-20');

 



결과 화면>




 

 

테이블 생성 예시 2 _

shoes 테이블 생성하기

CREATE TABLE shoes (
id INT NOT NULL AUTO_INCREMENT,
name VARCHAR(10) NOT NULL,
size INT NOT NULL,
brand VARCHAR(20) NULL,
PRIMARY KEY(id)
);

INSERT INTO shoes (name, size, brand) VALUES ('MK-120', 260, 'Nice');
INSERT INTO shoes (name, size, brand) VALUES ('AOS-347', 270, 'Akidas');
INSERT INTO shoes (name, size, brand) VALUES ('ZMQ-83', 260, 'Heebok');

 

 

 

 

 

 

 

테이블 수정 (갱신) 하기

 

 

UPDATE 테이블이름 SET 바꿔줄 컬럼이름 = 바꿔줄 값 WHERE 컬럼 위치

 

UPDATE student SET major = '컴퓨터과학과' WHERE id = 2;

SELECT * FROM student;

위 쿼리문은  id = 2 인 row 의 major 컬럼 값을 컴퓨터과학과 로 바꾸라는 의미

 

 

 

결과 화면>

원래 멀티미디어학과 였는데 컴퓨터과학과로 수정됨

 

만일 위 쿼리문에서 WHERE 절을 안 쓰면 모든 row 의 major 컬럼이 '컴퓨터과학과' 로 바뀜.

 

 

 

 

여러 컬럼을 동시에 바꿔주고 싶다면

컴마로 이어서 써주면 된다.

UPDATE student 
    SET major = '컴퓨터과학과', name = '김미미'
    WHERE id = 2;


SELECT * FROM student;

 

 

 

결과 화면>

 

 

 

 

 

기존 값을 기준으로 한 컬럼 전체를 UPDATE 하고 싶을 때?

 

예를들어, 기말 고사 점수 컬럼에 전부 3점씩 추가해주고 싶다면 아래와 같이 작성하면 된다.

UPDATE final_exam_result SET score = score + 3 ;

 

 

 

 

 

테이블의 row 삭제하기

 

 

아래와 같은 테이블에서 4번째 row를 삭제해보자

 

 

 

DELETE FROM 테이블이름 WHERE 삭제할 위치

DELETE FROM student WHERE id = 4;

SELECT * FROM student;

 

 

결과 화면>

id = 4 인 row 가 삭제 됐다.

 

만일 이 쿼리문에서 WHERE 절을 써주지 않으면 테이블의 모든 로우들이 삭제된다. 

 

 

테이블의 일정 컬럼 전체를 삭제하고 싶을 땐 

ALTER TABLE 테이블이름 DROP COLUMN

참고 : https://devfairy.tistory.com/104

 

 

 

 

 

 

 

댓글