DML
- 테이블에 데이터를 삽입(INSERT), 삭제(DELETE), 수정(UPDATE), 조회(SELECT)하는 일을 수행하는 SQL로 구성
- 추가적으로 SQL문을 수행하고 난 이후 이를 데이터베이스에 완전하게 반영하는 커밋(COMMIT)과 작업 취소를 위한 롤백(ROLLBACK)이 있음
INSERT
- 필요한 데이터를 저장할 때 사용하는 명령어
- 데이터 저장 방법 2가지
- 칼럼 리스트 명시 : 어떤 칼럼에 값을 넣을지 명시하며 저장할 데이터도 칼럼의 순서에 맞게 작성
- 칼럼 리스트 명시 X : 모든 칼럼에 값을 넣을 것이라는 의미로 테이블에 정의된 칼럼의 개수에 맞춰 저장되는 값을 순서대로 입력
-- 칼럼 리스트 명시
INSERT INTO 테이블_이름 (컬럼1, 컬럼2, ...) VALUES (값1, 값2, ...);
-- 칼럼 리스트 명시 x
INSERT INTO 테이블_이름 VALUES (값1, 값2, ...);
UPDATE
- 한 번 입력된 데이터를 수정해야 할 때 사용
- WHERE문을 사용하여 조건에 맞는 데이터를 찾아 해당 데이터 수정 가능
UPDATE 테이블_이름 SET 수정_할_컬럼_이름 = 수정_할_새로운_값, ...;
DELETE
- 데이터를 삭제하기 위한 명령어
- WHERE문을 이용하여 조건을 만족하는 데이터만 선택하여 삭제 가능
DELETE [FROM] 테이블_이름;
DELETE [FROM] 테이블_이름 WHERE 삭제할_조건;
🌟 DELETE vs TRUNCATE
- DELETE 명령어는 COMMIT 명령어가 실행되고 난 이후 DB에 최종 적용
잘못 삭제했다면 ROLLBACK 명령어를 통해 다시 되돌릴 수 있음(SQL Server는 AUTO COMMIT)
TRUNCATE는 바로 테이블에 적용되기 때문에 ROLLBACK 불가능 - DELECT 명령어는 데이터가 삭제될 때 복원을 위해 log를 남기기 때문에 약간의 부하가 있음
TRUNCATE는 복원을 위한 log를 남기지 않기 때문에 시스템의 부하가 적음
DROP | TRUNCATE | DELECT |
DDL | DDL (일부 DML 느낌) | DML |
ROLLBACK 불가능 | ROLLBACK 불가능 | COMMIT 이전 ROLLBACK 가능 |
AUTO COMMIT | AUTO COMMIT | 사용자 COMMIT |
테이블의 정의 자체를 완전 삭제 | 테이블을 최초 생성된 초기 상태로 만듦 | 테이블은 그대로 두고 데이터만 삭제 |
SELECT
- 테이블에서 데이터를 조회할 때 사용
- 원하는 데이터를 보기 위해서는 보고싶은 칼럼과 데이터를 가져올 테이블을 입력
- 여러개의 칼럼을 한 번에 가져올 수도 있으며, 모든 칼럼을 다 가져오고 싶다면 * 입력
-- 원하는 컬럼의 데이터 가져오기
SELECT 컬럼1, 컬럼2 FROM 테이블;
-- 모든 컬럼의 데이터 가져오기
SELECT * FROM 테이블;
ALIAS
- 칼럼명이 너무 길거나 더 구분하기 쉬운 다른 명칭으로 조회하고 싶을 때 사용
- 특정 칼럼이나 테이블의 이름을 바꿔서 조회 가능
- 칼럼명을 일회성으로 수정하여 결과에만 나타냄
- 칼럼명 바로 뒤에 AS라는 키워드를 사용하여 나타낼 수 있으며(생략 가능)
띄어쓰기나 특수문자를 포함, 혹은 대/소문자를 구분할 필요가 있을 때는 따옴표 ' 를 이용하여 작성
-- 특정 컬럼을 별명으로 바꿔서 데이터 가져오기
SELECT 컬럼_이름 AS '별명' FROM 테이블_이름;
- 테이블 별칭 사용
- 여러 테이블을 하나의 SQL문에서 조회할 때 많이 사용
- 테이블 별칭은 AS 키워드 없이 작성
SELECT e.칼럼1, e.칼럼2 FROM 테이블 e
DISTINCT
- 쿼리 결과에서 중복된 값을 제거하여 고유한 값만을 반환하도록 하는 역할
SELECT DISTINCT 컬럼1 FROM 테이블;
산술 연산자
- 숫자 데이터 타입의 값을 다룰 때 사용되며, 기본적인 수학 연산 수행
- + : 더하기
- - : 빼기
- * : 곱하기
- / : 나누기
- % : 나머지
- 연산자 우선 순위
가장 높음 ( ) ➡️ * ➡️ / ➡️ + ➡️ - 가장 낮음 - 저장된 데이터형이 INT(NUMBER)이거나, 문자이지만 숫자 형태로 구성된 경우 산술 연산 가능
합성 연산자
- 서로 다른 두 문자를 하나의 문자열로 합칠 때 사용
- Oracle의 경우 || 이용, SQL Server의 경우 + 기호 이용
- CONCAT이라는 함수를 통해서도 가능
-- Oracle
SELECT 문자형1 || 문자형2 FROM 테이블_이름;
-- SQL Server
SELECT 문자형1 + 문자형2 FROM 테이블_이름;
SELECT CONCAT(문자형1, 문자형2) FROM 테이블_이름;
'스파르타 코딩클럽 > [강의] SQLD 자격증 대비반' 카테고리의 다른 글
[SQLD 자격증 대비반] 챕터 10. TCL과 DCL (0) | 2024.03.03 |
---|---|
[SQLD 자격증 대비반] 챕터 9. WHERE, ROWNUM, ROWID, 함수 (0) | 2024.03.01 |
[SQLD 자격증 대비반] 챕터 7. 관계형 데이터베이스와 DDL (0) | 2024.02.27 |
[SQLD 자격증 대비반] 챕터 5. 데이터베이스 성능 (0) | 2024.02.22 |
[SQLD 자격증 대비반] 챕터 4. 성능 데이터 모델링과 정규화 (0) | 2024.02.21 |