CRUD
C(create), R(read) U(update), D(delete) 를 묶어서 일컫는 말
- 대부분의 컴퓨터 SW가 갖는 기본적인 데이터 처리 기능
- 사용자 인터페이스가 갖추어야 할 기능(정보의 참조/검색/갱신)
SQL에서의 CRUD
이름 | 기능 | SQL |
Create | 생성 | INSERT |
Read | 조회 | SELECT |
Update | 수정(또는 갱신) | UPDATE |
Delete | 삭제 | DELETE |
Create : Insert 문으로 데이터 입력
(1) 단일 로우 입력 INSERT문
- INSERT 한 문장을 실행하면 1개 ROW 입력
insert into 테이블 (컬럼1, 컬럼2, ...)
values (값1, 값2, ...);
: 컬럼과 값은 개수와 데이터 타입이 일치해야 함
: 컬럼 목록 생략 시 테이블의 모든 컬럼에 값 입력
: Not Null 속성 컬럼에는 값을 반드시 입력
: 기본 키 컬럼에는 중복 값 입력 불가
(2) 다중 로우 입력 INSERT문
- INSERT 한 문장을 실행하여 여러 개의 ROW 입력
insert into 테이블 (컬럼1, 컬럼2, ...)
values [row](값1, 값2, ...),
[row](값1, 값2, ...),
...;
(3) SELECT문이 결합된 INSERT문
- SELECT문이 반환한 결과 값을 INSERT
insert into 테이블 (컬럼1, 컬럼2, ...)
select ...
from ...
where ...;
UPDATE : Update 문으로 데이터 수정
(1) 단일 테이블 데이터 수정
- 테이블에 저장된 데이터 수정
update 테이블
set 컬럼1 = 값1,
컬럼2 = 값2, ...
where ...
order by ...
limit ...;
- 오류 발생 시 Safe Updates 설정 변경
: MYSQL Workbench는 WHERE 절이 없는 UPDATE와 DELETE문을 실행하면 오류가 발생하는 게 기본 설정
Edit → Preferences → SQL Editor → Safe Updates 체크 해제
Query → Reconnect to Server(재접속)
(2) 다중 테이블 데이터 수정
- 2개 이상의 테이블에서 데이터 수정
update 테이블1, 테이블2, ...
set 컬럼1 = 값1,
컬럼2 = 값2, ...
where 조건;
(3) 입력과 수정을 동시에 처리
- 신규로 데이터를 입력하며 동시에 수정하는 방법
- 조건을 확인하여 이미 대상 테이블에 값이 있으면 수정하고 없으면 입력
- ON DUPLICATE KEY UPDATE
: 기본 키 값 충돌이 발생하는 로우에서는 신규로 값을 입력하지 않고 기존에 저장된 값 변경
insert into 테이블명 (컬럼1, 컬럼2, ...)
values 절(또는 select 문)
on duplicate key update 컬럼 = 값1, 값2, ... ;
DELETE : Delete 문으로 데이터 삭제
(1) 단일 테이블 데이터 삭제
- WHERE 절 조건에 맞는 단일 테이블 데이터 삭제
: where 절이 없으면 데이터 전체 삭제
- ORDER BY 절을 명시하면 해당 순서대로 데이터 삭제
- LIMIT 절로 삭제 데이터 건수 제한
delete from 테이블
where 조건
order by ...
limit ...;
(2) 다중 테이블 데이터 삭제
- DELETE 와 FROM 사이에 명시한 별칭에 해당하는 테이블 데이터만 삭제
# 첫 번째 방법
delete 테이블별칭1, 테이블별칭2, ...
from 테이블1 테이블별칭1, 테이블2 테이블별칭2, ...
where 조건;
# 두 번째 방법
delete from 테이블별칭1, 테이블별칭2, ...
using 테이블1 테이블별칭1, 테이블2 테이블별칭2, ...
where 조건;
'Mysql' 카테고리의 다른 글
[MySQL] 테이블 및 데이터 타입 (0) | 2022.08.16 |
---|---|
[MYSQL] 데이터베이스와 SQL (0) | 2022.08.15 |
MAC 에서의 <MYSQL ERROR CODE: 1055> (2) | 2022.08.10 |