본문 바로가기

데이터 사이언스/SQL

[SQLD 학습 자료 요약] SQL 기본 및 활용 1.3. DML

본 문서의 내용은 한국데이터산업진흥원에서 펴낸 SQL 전문가 가이드를 기반으로 자격증 취득에 도움이 될 개념을 정리한 것입니다.

SQL 전문가 가이드
국내도서
저자 : 한국데이터산업진흥원
출판 : 한국데이터산업진흥원 2020.05.29
상세보기

 

데이터 조작 언어 (출처: Freepik)

3. DML

1. INSERT

-- 1. 컬럼 리스트 명시
INSERT INTO 테이블명 (컬럼 리스트)
VALUES (값 리스트);

-- 2. 컬럼 리스트 명시 X
INSERT INTO 테이블명 VALUES (전체 컬럼에 넣을 값 리스트);

 

  • 해당 컬럼명과 입력되어야 하는 값을 서로 1:1 로 매핑해서 입력하면 된다.
  • 첫 번째 유형은 컬럼의 순서는 테이블의 칼럼 순서와 매치할 필요는 없으며, 정의하지 않은 컬럼은 Default 로 NULL 값이 입력된다.
  • 단, Primary Key 나 Not NULL 로 지정된 컬럼은 NULL 값이 허용되지 않는다.
  • 두 번째 유형은 컬럼의 순서대로 빠짐없이 데이터가 입력되어야 한다.
  • 정의되지 않은 미지의 값은 두 개의 Single Quotation을 붙여서 ''로 표현하거나, NULL 이라고 명시적으로 표현할 수 있다.

 


2. UPDATE

UPDATE 테이블명 SET 수정 컬럼명 = 수정할 새로운 값;
  • 입력한 정보 중에 잘못 입력되거나 변경이 발생하여 정보를 수정해야 하는 경우 사용한다.

 


3. DELETE

DELETE (FROM) 테이블명;

 

  • DML(INSERT, UPDATE, DELETE, SELECT) 명령어의 경우, 조작하려는 테이블을 메모리 버퍼에 올려놓고 작업을 하기 때문에 실시간으로 테이블에 영향을 미치는 것은 아니다. 따라서 버퍼에서 처리한 DML 명령어가 실제 테이블에 반영되기 위해서는 COMMIT 명령어를 입력하여 TRANSACTION 을 종료해야 한다.
  • SQL Server의 경우, DML 역시 AUTO COMMIT 처리된다.
  • 테이블의 전체 데이터를 삭제하는 경우, 시스템 활용 측면에서는 삭제된 데이터를 로그로 저장하는 DELETE TABLE 보다는 시스템 부하가 적은 TRUNCATE TABLE 을 권고한다. 단, TRUNCATE TABLE 의 경우 삭제된 데이터의 로그가 없으므로 ROLLBACK 이 불가능하므로 주의해야 한다.

 


4. SELECT

SELECT (ALL/DISTINCT) 컬럼명
FROM 테이블명;

-- Wildcard 사용
SELECT * FROM TABLE;

-- Alias 사용
SELECT PLAYER_NAME AS "선수 이름"
FROM PLAYER;
  • ALL: Default 옵션이므로 표시하지 않아도 된다.

  • DISTINCT: 중복된 데이터는 1건으로 처리하여 출력한다.

  • WILDCARD '*'를 사용하면 모든 컬럼 정보를 조회할 수 있다.

  • ALIAS 부여하기
    • 컬럼명 바로 뒤에 작성한다.
    • AS 키워드를 사용할 수 있다.
    • 이중 인용부호는 ALIAS가 공백, 특수문자를 포함하거나 대소문자 구분이 필요할 때 사용한다.

 


5. 산술 연산자와 합성 연산자

산술 연산자

  • 수학에서의 4칙 연산과 동일하게 적용한다.
  • 산술 연산을 사용하거나 특정 함수를 적용하면, 기존 컬럼에 적절한 ALIAS를 새롭게 부여하는 것이 좋다.
  • 수학에서와 같이 (), *, /, +, - 의 우선순위를 가진다.
SELECT HEIGHT - WEIGHT "키-몸무게"
FROM PLAYER;

 

 

합성 연산자

  • 문자와 문자를 연결하며 2개의 수직 바(||)에 의해 이루어진다. (Oracle)
  • 문자와 문자를 연결할 때 + 표시에 의해 이루어진다. (SQL Server)
  • 공통적으로 CONCAT 함수 사용이 가능하다.
  • 컬럼과 문자 또는 다른 컬럼과 연결시킨다.
-- Oracle
SELECT PLAYER_NAME || '선수'
FROM PLAYER;

-- SQL Server
SELECT PLAYER_NAME + '선수'
FROM PLAYER;

 


↓SQL 전문가 가이드 요약 목록

더보기

 

따로 PDF 파일이 필요하신 분은 댓글을 통해 메일 주소 적어주시기 바랍니다.