코린이의 소소한 공부노트

[MySQL] INSERT, UPDATE, DELETE 본문

Back-End

[MySQL] INSERT, UPDATE, DELETE

무지맘 2023. 3. 29. 10:52

[예시에 쓰이는 테이블]


# 1학년 4반에 전학생이 왔다.
# 전학생은 가장 뒷번호를 쓰게 된다.
# 전 학교에서의 성적을 보니 국영수 모두 B등급이었다.
# 그 외의 정보는 차차 물어보기로 했다.

# 두 테이블에 전학생의 정보 추가
insert into student_grade values (10421, 'B', 'B', 'B');             # 칼럼명 생략
insert into student_info (grade, ban, hakbeon) values (1, 4, 10421); # 칼럼명 명시

# 전학생의 데이터 확인
select * from student_grade g, student_info i
where g.hakbeon=i.hakbeon and g.hakbeon=10421;

# 결과
hakbeon	Korean	English	Math	grade	ban	hakbeon	friends	idols	colors
10421	B	B	B	1	4	10421	null	null	null

[INSERT]

1. insert into 테이블명 (칼럼명1, 칼럼명2, ...) values (값1, 값2, ...) 형태로 쓰인다.

- 입력한 값을 가진 새로운 행을 테이블에 추가해 준다.

 

2. 모든 칼럼 값을 입력한다면 칼럼명 목록을 생략해도 된다.

- 주의) 칼럼 목록이 생략되면 테이블 구조의 명시된 칼럼 순서대로 값이 들어간다.

- 지정하지 않은 칼럼의 값은 널(null)이 된다.


# 전학생은 무지, 엔믹스, 하얀색을 좋아한다고 한다.
update student_info set friends='Muzi', idols='NMIXX', colors='white'
where hakbeon=10421;

# 맞게 됐나 확인해보자.
select * from student_grade g, student_info i
where g.hakbeon=i.hakbeon and g.hakbeon=10421;

# 결과
hakbeon	Korean	English	Math	grade	ban	hakbeon	friends	idols	colors
10421	B	B	B	1	4	10421	Muzi	NMIXX	white

[UPDATE]

1. update 테이블명 set 칼럼명=수정할내용 형태로 쓰인다.

- 테이블에 저장된 내용을 수정하기 위해 사용한다.

- 2개 이상 수정 시 콤마(,)를 이용하면 된다.

 

2. where절을 쓰지 않으면 모든 행에 대해 수정이 들어간다.

- 필요한 부분만 수정하길 원한다면 where절을 꼭 써야 한다..


# 3학년 2반에서 1명이 전학을 갔다.
# 두 테이블에서 전학간 학생의 정보를 지우고자 한다.


# 3학년 2반 학생들을 확인해보자.
select count(*) as g_cnt, count(*) as i_cnt from student_grade g, student_info i
where g.hakbeon=i.hakbeon and i.grade=3 and i.ban=2;

# 결과
g_cnt	i_cnt
20	20

# 전학 간 19번에 대한 내용을 지워보자.
delete from student_grade where hakbeon=30219;
delete from student_info where hakbeon=30219;

# 다시 3학년 2반 학생들을 확인해보자.
select count(*) as g_cnt, count(*) as i_cnt from student_grade g, student_info i
where g.hakbeon=i.hakbeon and i.grade=3 and i.ban=2;

# 결과
g_cnt	i_cnt
19	19

[DELETE]

1. delete from 테이블명 형태로 쓰인다.

테이블에 저장되어 있는 행을 삭제하기 위해 사용한다.

 

2. where절을 쓰지 않으면 모든 행이 삭제된다.

- 필요한 행만 삭제하길 원한다면 where절을  꼭 써야 한다.

 

 

'Back-End' 카테고리의 다른 글

[MySQL] LIKE, NOT LIKE  (0) 2023.03.31
[MySQL] CASE WHEN, THEN, ELSE  (0) 2023.03.29
[MySQL] COUNT, GROUP BY, HAVING  (0) 2023.03.28
[MySQL] ORDER BY, LIMIT  (0) 2023.03.18
[MySQL] 내가 겪은 오류 모음  (0) 2023.03.16