[MySQL] 데이터 추가, 수정, 삭제 (INSERT, UPDATE, DELETE)

HSRyuuu dev blog·2023년 4월 16일
0

MySQL

목록 보기
3/4

INSERT INTO : 데이터 추가

id, name, loginId, password의 attribute를 갖고있는 Member table에 데이터를 추가하는 예제이다.

TABLE에 존재하는 primary key의 중복금지 또는 여러가지 constraints들에 맞게 데이터를 삽입해야한다.

방법 1

  • table에 존재하는 attribute의 순서대로 값을 넣어줘야 한다.
  • table에 존재하는 모든 attribute에 값을 넣어줘야 한다. (null이라도 넣어야함)
INSERT INTO MEMBER
	VALUES(4,'name','login123','pw123');

방법 2

  • 아래 방식을 사용하면, attribute 순서를 맞추지 않아도 된다. (순서를 지정해준다.)
  • 이 방법을 사용하면 모든 attribute에 값을 넣지않고, 원하는것만 넣을 수 있다.
    -> NOT NULL로 설정된 값은 불가능하다. (default가 있는경우 가능)
INSERT INTO MEMBER(name, loginId, password, id)
	VALUES('steve', 'steve123','pwsteve123',5);

방법 3 - 여러가지 데이터 한번에 넣기

  • tuple을 괄호와 쉼표로 구분해 여러개의 tuple를 한번에 추가해준다.
INSERT INTO MEMBER VALUES(6,'Tom','TomId','TomPW'),(7,'Peter','PeterId','PeterPW');

TABLE 확인하기

1. table 조회

SELECT * FROM member;

2. 하나의 tuple만 확인하기

SELECT * FROM member WHERE id=3;

3. constraints 확인하기

SHOW CREATE TABLE MEMBER;

아래와 같이 TABLE의 생성 정보들을 보여준다.


UPDATE : 데이터 수정

UPDATE 테이블명 SET attribute명 = 수정할 값 WHERE 조건

UPDATE member SET loginId = 'leeId123' WHERE id=3;

예제를 위해 위에서 사용하던 MEMBER TABLE에 attribute를 하나 추가해주고, 값을 설정해줬다.

ALTER TABLE member ADD points INT;

예제1) 값을 두배로

UPDATE member
	SET points = points*2
    WHERE id=3;

예제 2) 두개의 연관된 테이블

위에서 계속 사용하던 member 테이블과 member의 loginId를 FK로 가지는 post 테이블이 있다고 하자.
post 테이블에는 views라는 attributes가 있다. ( 게시글의 조회수를 의미한다 )

  • 아래 예제는 member.loginIdpost.writerId가 같고, post.views가 1 이상인 경우,
    member.points를 2배로 바꿔주는 예제이다.
UPDATE member,post
	SET points = points*2
    WHERE loginId = writerId and views >= 1; 

예제 3) 조건없이 전부 다 수정

  • WHERE 절을 생략하면 해당 테이블의 모든 tuple에 대해 적용된다.
UPDATE member
	SET points = points*2;
    

DELETE FROM : 데이터 삭제

1. tuple 삭제

member 테이블에서 id=7인 tuple 삭제

DELETE FROM member WHERE id = 7;

2. 조건부 삭제

  • 조건은 and 키워드로 여러가지를 동시에 만족하는 값을 선택할 수 있다.

member 테이블에서 points=20인 모든 tuple 삭제

DELETE FROM member WHERE points=20;

3. 조건부 삭제(...을 제외하고 삭제)

points=20인 tuple 중에 id=2인 tuple을 제외하고 모두 삭제

<>!=는 같다. (!=로 사용해도 됨)

DELETE FROM member WHERE points=20 and id <> 2;

4. 모든 tuple 삭제

member 테이블의 모든 tuple 삭제

DELETE FROM member;

(참고) 쉬운코드 인프런 강의
https://www.inflearn.com/course/%EB%B0%B1%EC%97%94%EB%93%9C-%EB%8D%B0%EC%9D%B4%ED%84%B0%EB%B2%A0%EC%9D%B4%EC%8A%A4-%EA%B0%9C%EB%A1%A0/dashboard

profile
Exciting dev life / 댓글, 피드백, 질문 환영합니다 !!!

0개의 댓글