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
'MySQL > 혼공SQL' 카테고리의 다른 글
[SQL 기초 강의] 10강. 두 테이블을 묶는 JOIN(INNER JOIN, OUTER JOIN, CROSS JOIN, SELF JOIN) (1) | 2023.11.13 |
---|---|
[SQL 기초 강의] 9강. MySQL의 데이터 형식(정수형, 문자형, 실수형, 날짜형)과 형 변환 (0) | 2023.11.11 |
[SQL 기초 강의] 7강. SQL SELECT 절의 형식(ORDER BY 절과 GROUP BY 절) (0) | 2023.11.08 |
[SQL 기초 강의] 6강. SQL 기본 문법(SELECT ~ FROM ~ WHERE) (0) | 2023.11.07 |
[SQL 기초 강의] 5강. 데이터베이스 개체(인덱스, 뷰, 스토어드 프로시저) (1) | 2023.11.07 |