컴퓨터/MySQL

MySQL (4) - 데이터를 수정해보자 (Insert, Update, Delete)

달서비 2022. 4. 6. 16:04

어떻게 하면 테이블의 데이터와 테이블 자체를 다루는 법을 한 번에 소개할까 생각을 해보았는데 생각해보면 각각 소개하는 게 맞다고 생각하여 먼저 테이블의 데이터를 조작하는 법을 올려보려고 합니다.

Database - Pixabay

먼저 해당 명령어는 DML(Data Manipulation Language)로 데이터를 조작하는 명령어 입니다. select명령어 역시 DML로 들어가지만 이번에는 생성, 수정, 삭제는 다음의 명령어를 알아보려고 합니다. MySQL에서는 일반적인 데이터베이스에서 사용하는 명령어와 같은 명령어를 사용합니다.

 

※mytable이 이미 있는 테이블이라고 정의하고 시작하겠습니다.

class name price score
1 minji 5500 80
2 sanggyu 1000 2000

아래와 같은 구성으로 이루어져 있습니다.

 

생성 (Insert)

Insert into mytable(class, name, price, score)
	values(1,'minsu',3500,100)

해당 명령어는 mytable에 새로운 데이터를 추가하는 명령입니다. 이명령을 표로 나타내면 아래와 같습니다.

class name price score
1 minji 5500 80
2 sanggyu 1000 2000
1 minsu 3500 100

빈 table에서 해당 명령을 입력하면 아래와 같이 테이블의 데이터가 생성됩니다.

제가 적은 예시에는 전부 값을 넣었는데 NULL하고 DEFAULT도 사용할 수 있습니다.

 

위의 방법도 많이 쓰이지만 이미 테이블 구성을 알고 있는 경우 아래 방법으로 하면 축약이 가능합니다.

Insert into mytable
	values(1,'minsu',3500,100)

 

수정 (Update)

Update mytable
	set price = 500
    where name = 'minji';

해당 명령어는 기존에 있는 데이터를 수정하는 명령어입니다.

여기서는 mytable안에 name이 minji가 있으면 price를 500으로 수정하라는 명령이다. 수행하면 아래의 표로 정리됩니다.

class name price score
1 minji 500 80
2 sanggyu 1000 2000

만약에 where을 안쓰고 아래와 같이 명령을 적었으면

Update mytable
	set price = 500

모든 price의 값이 500이 됩니다.

class name price score
1 minji 500 80
2 sanggyu 500 2000

 

삭제 (Delete)

Delete From mytable
	where name = 'minji'

Delete명령을 통하여 테이블 안에 있는 값을 제거합니다.

위의 예시의 명령어는 mytable안에 있는 name이 minji인 데이터를 지우라는 명령어입니다. 해당 명령을 실행하면 아래의 값이 나옵니다.

class name price score
2 sanggyu 500 2000

 

where을 입력안하고 아래의 명령어를 실행하면 모든 데이터가 삭제됩니다.

Delete From mytable

 

여기서 알아야 하는점은 Delete는 테이블 안에 있는 데이터를 삭제하는 명령이지만 테이블 자체를 삭제하는 명령어가 아닙니다. 그래서 위의 명령어를 입력해도 테이블은 사라지지 않습니다.

테이블을 삭제하기 위해서는 Drop 명령을 이용하여 테이블을 삭제해야합니다.

 

이번에는 테이블의 데이터를 제어하는 방법을 알아보았습니다. 테이블 자체를 제어하는 방법은 다음에 알아보도록 합시다 ㅎㅎ