One_Blog

MYSQL :: INSERT / UPDATE / SELECT / DELETE 구문 본문

웹해킹

MYSQL :: INSERT / UPDATE / SELECT / DELETE 구문

0xOne 2022. 10. 20. 19:48
728x90

오늘은 MYSQL에서 테이블의 값을 수정하고, 삽입하고, 제거하고, 조회해주는 

( UPDATE, INSERT, DELETE, SELECT)에 대해서 알아보겠다.

먼저 INSERT에 대해서 알아보자.

 

INSERT는 원하는 테이블에 값을 삽입하는 MYSQL 구문이다.

형식은 

INSERT INTO 테이블 이름(필드이름1, 필드이름2 ...) VALUES(데이터1, 데이터2); 

와 같은 형식으로 이루어진다. 

 

만약 members테이블에 필드 id(INT), pw(VARCHAR)에 각각 1,wonjun이라는 값을 삽입하려한다면,

구문을 어떻게 써야할까?

(스스로 작성해보기)

 

정답은 

INSERT INTO members(id,pw) VALUES(1,"wonjun");

이다.

id값은 INT의 형태로 존재하기에 그냥 넣어도 되지만, wonjun은 string, 즉 문자열 이기 때문에

"을 붙여서 문자열임을 표기해줘야 한다. 

한글자로 이루어진 char형 데이터는 'A'와 같은 형태로 넣어주면 된다.

ex) INSERT INTO members(id,pw) VALUES(1,'A');

그렇다면 이렇게 삽입한 값이 잘 들어갔는지 확인하려면, 어떤 구문을 사용해야 할까?

우리가 DB 테이블 값을 조회하기 위해 써야할 MYSQL 구문은 바로 

SELECT

이다.

SELECT는 테이블안의 값을 조회해줌으로써 우리에게 테이블의 각각 필드에 

어떤 데이터가 들어갔는지 알려준다.

그렇다면 SELECT구문은 어떻게 쓰는 걸까?

형식은 

SELECT 조회할 필드 FROM 테이블 이름;

이다.

그렇다면 바로 우리가 삽입한 id,pw값이 잘 삽입되었는지 확인해보도록 하자.

SELECT id,pw FROM members;

아까 우리가 의도한대로, id와 pw 필드에 값이 잘 들어간 것을 확인할 수 있다.

참고로 필자가 쓴 *은, 모든 필드를 의미한다.

(MYSQL상에서 *의 의미하는 바는, 모든 항목이라는 의미이다.)

 

그런데 이렇게 데이터를 삽입을 했는데, 

내가 넣은 데이터가 맘에 들지 않거나, 아니면 데이터를 실수로 잘못 넣었을 수도 있다.

그럴 때 우릴 구원해주는 구문이 바로 UPDATE 이다. 

(기껏 값 넣어놓고 왜 바꾸는 겨,,,)

그렇다면, UPDATE는 형식이 어떻게 될까?

UPDATE의 구문 형식은

UPDATE 테이블명 SET 필드이름1=수정할 값1, 필드이름2=수정할 값2 WHERE 필드이름 = 원래 값; 

 

이전 구문에 비해 복잡하다고 느낄 수 있는데, 사실 전혀 복잡하지 않다.

SELECT나 INSERT를 쓸 땐 쓰지 않았던 WHERE을 사용해서 복잡해 보이는 것 뿐이다.

(WHERE은 모든 구문에서 사용가능한 조건식이다.)

WHERE에 대해선 스스로 구글링 해보길 바란다.

여기서 사용된 UPDATE에서, WHERE은 조건이다.

UPDATE 테이블명 SET 필드이름1=수정할 값1, 필드이름2=수정할 값2;

을 해버렸다간, MYSQL에서 해당 테이블의 모든 필드 값을 

수정할 값 1, 수정할 값2로 수정해버릴 것이다.

우린 이러한 사태를 방지하기 위해,

MYSQL에게 알려주는 것이다.

우리는 (필드이름=원래값) 인 부분의 값만 변경할 거야~ 라고.

그러니까, WHERE id=1;이라고 조건식을 넣어주면,

테이블 내 필드에서 id가 1인 칼럼의 데이터만 바꿔준다는 것이다.

간단하지 않은가?

그렇다면 여기서 다시 실습,

members 테이블에서 id가 1인 칼럼의 id를 2로, pw를 "secure"로 바꾸려고 한다면,

구문 형식은 어떻게 될까?

정답은

UPDATE members SET id = 2, pw = "secure" WHERE id = 1;

이다.

SELECT를 통해 값을 확인해보면, 값이 잘 변경된 것을 확인할 수 있다.

그렇다면 여기서 다시.

 

칼럼 하나를 아예 날려버리고 싶다면, 우린 어떤 구문을 이용해야 할까?

바로, DELETE 구문을 이용해야 한다.

DELETE는 테이블 내 하나의 칼럼을 완벽히 날려버린다.

(tlqkf 이거 놔!!)

그렇다면 DELETE의 구문은 어떤 형식으로 이루어질까?

DELETE의 구문 형식은 다음과 같다.

 

DELETE FROM 테이블명 WHERE 필드명=데이터;

이젠 따로 설명하지 않아도 구문의 뜻을 해석할 수 있으리라 믿는다.

그렇다면 마지막으로, 

members테이블에서 id값이 2인 칼럼을 삭제하려면, 문장은 어떻게 될까?

우리가 넣어둔 데이터를 날리자니 가슴이 아프지만, 우린 실습을 위해 어쩔 수 없이 해야한다.

정답은

DELETE FROM members WHERE id = 2;

이다.

보이는 바와 같이, id=2에 pw=secure이었던 칼럼이 깔끔하게 날아간 것을 확인할 수 있다.

여기서 오해하면 안되는 게 있는데, DELETE는 

테이블 내 필드를 삭제하는 게 아니라, 조건식에 맞는 칼럼(데이터)를 삭제하는 것이다.

그래서 SELECT로 값을 확인하면, 테이블 필드 내에 삽입된 값이 없기에 

 Empty set이 뜨는 것이고, DESC로 테이블 내 필드를 표현하면 id와 pw가 뜨는 것이다.

 

오늘은 MYSQL 의 UPDATE INSERT DELETE SELECT 구문을 알아보았다.

이 4개의 구문의 문법은 내가 서술한 게 끝은 아니지만, 

난 기초만 다루도록 하겠다.  MYSQL을 더 깊게 다루고 싶다면, 다른 블로그를 찾아보길 바란다.

오늘 글은 이걸로 마치겠습니다.

내일은...

음..

내일 공부할 무언가를 업로드 하겠습니다.

글 읽어주셔서 감사합니다