본문 바로가기

스파르타 코딩클럽/[강의] SQLD 자격증 대비반

[SQLD 자격증 대비반] 챕터 8. DML과 SELECT

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 테이블_이름;