MySQL/혼공SQL

[SQL 기초 강의] 8강. 데이터 변경을 위한 SQL 문(INSERT, UPDATE, DELETE)

묘걍 2023. 11. 11. 19:26

03-3. 데이터 변경을 위한 SQL 문

- SELECT 문은 조회만 하는 것. 변경을 하진 않는다

 

👉🏻 INSERT문

🧩 기본 문법

INSERT INTO 테이블명 [(컬럼명, 컬럼명, ...)] VALUES(데이터, 데이터, ...)

- 컬럼명은 생략 가능

🎮 모든 열에 데이터 넣기

🎮 나이 열에는 데이터를 넣지 않기

🎮 입력 순서 바꿔도 OK

- 값만 맞춰 넣어주면 된다

- 귀찮아도 정확하기 때문에 권장되는 방식

🧩 Auto Increment

- 위에처럼 ID를 직접 1, 2, 3,... 이렇게 입력해주는 것이 아니라 ID가 자동으로 증가하며 입력되도록

- 번호가 의미 있는건 아니고 자동 생성만 되면 된다

- 현실에서 물건을 구매했을 때 구매번호(아이디)가 Auto Increment (중복X)

- 이때는 꼭 같이 Primary key로 지정해줘야 한다

✅ Primary key

  • 기본키
  • 중복되지 않음

- ID를 직접 입력하는 대신 NULL이라고 해주면 된다

🎮 hongong2 확인해보기

- 1부터 시작해서 자동으로 증가하여 들어감

✅ Last Insert

- Auto Increment를 통해서 어디까지 증가됐는지 확인하고 싶다면

- 3까지 입력됐다

✅ Alter Table

- 순서대로 가다가 특정 번호로 건너 뛰고 싶을 때

🎮 중간에 100번부터 시작하고 싶다

- 1, 2, 3까지 있는데 그 다음은 100번부터 시작하고 싶다

- 그 다음 데이터를 넣고

- 확인해보기

🎮 애초에 1,000번으로 시작하고 싶다

- 새로운 테이블을 만든다

- 1,000번부터 시작하겠다

- 1000, 1003, 1006, 1009, ... 이렇게 3씩 건너 뛰게 하고 싶다

✅ n개씩 건너 뛰기

@@auto_increment_increment = n;

- 이렇게 묶어서 많이 쓴다

🎮 데이터 입력하고 ID 확인해보기

🧩 INSERT INTO ~ SELECT

 INSERT INTO 테이블명 (컬럼명, 컬럼명, ...)

SELECT 문;

  • 조회된 결과를 한꺼번에 입력하는 효과
  • 긁어온 것을 모두 INSERT한다

🎮 world의 도시 세기

- DB명.테이블명을 통해 USE를 사용하지 않고도 다른 DB 활용 가능

- 4079개 도시가 존재

- world DB의 city 테이블 구조 알아보기

✅ DESC

- 테이블 구조 알려줌

- 열이 4개

🎮 5개 데이터만 보기

🎮 우리 DB의 테이블로 가져오기

- table 새로 만들기

- 지금 사용(USE)중인 market DB에 만들어주는 것

- SELECT된 결과를 city_popul에 가져옴

* SELECT 된 결과 보기

- 4천건이 넘는 데이터가 INSERT됨

 

👉🏻 UPDATE

- 수정

🧩 기본 문법

UPDATE 테이블명

     SET 컬럼명=데이터, 컬럼명=데이터, ...

      WHERE 조건 ;

🎮 바꿔줄 데이터 'seoul'

🎮 'seoul'을 한글로 바꿔주기

- set 바꾸고 싶은 내용

- where 바꾸고 싶은 것

- 에러가 난다.

- workbench 자체에서 UPDATE를 못하게 막아놨음

✅ UPDATE 설정 바꿔주기

- Edit → Preferences

- SQL Editor 클릭

- Safe Updates 체크 해제 → OK → workbench 닫았다 다시 열기

 

🎮 재실행 후 확인해보기

🎮 뉴욕 데이터 바꿔보기

- 이름을 '뉴욕'으로, 인구를 0명으로 바꾸기

- 확인해보기

✅ WHERE절을 빼버리면 어떻게 될까?

- 모든 행(데이터)를 '뉴욕', 인구수 0명으로 바꿔버린다

- WHERE가 있어야 조건에 맞는 것만 지정해줄 수 있는데 지워버리면 조건 없이 모든 것에 적용된다

- WHERE절 없는 것은 주의해서 사용해야 한다

- 가끔 전부 바꿀 때가 있다

🎮 모든 데이터에 대해 인구 단위 바꾸기

- 만단위로 바꾸기

- 5개만 확인해보기

- kabul의 경우 178만명

 

👉🏻 DELETE

🧩 기본 문법

DELETE FROM 테이블명 WHERE 조건;

 

🎮 앞에 New가 들어가는 모든 도시 지우기

- 11건 지워졌다고 함

🎮 앞에 New가 들어가는 도시 중 5개만 지우기

 

 

 

 

 

 

 

 

 

 

 

출처: https://youtu.be/WWAFAm9op2U?si=5LGsDKG3cWy858WY