DML(Data Manipulation Language): 데이터베이스에 저장된 데이터를 처리하거나 조회, 검색하기 위한 명령어

Ex) INSERT, UPDATE, DELETE, SELECT 등

01 데이터 검색 (SELECT)

SELECT 컬럼1, 컬럼2, ..
FROM 테이블명;
  • book 테이블에서 모든 책의 title과 author 컬럼을 검색한다.

    SELECT title, author
    FROM book;
    
  • 검색할 컬럼에 *을 입력하면 해당 테이블(book)의 모든 데이터 검색할 수 있다.

    SELECT *
    FROM book;
    

DISTINCT

중복되는 값 제거

SELECT DISTINCT 컬럼1, 컬럼2, ..
FROM 테이블명;

주의: DISTINCT 뒤에 2개 이상의 컬럼을 적으면, 한 쪽 컬럼에 중복이 있어도 다른 쪽 컬럼의 값이 다르면 다르게 취급한다.

  • book 테이블에서 title과 author 컬럼의 중복 제거된 데이터를 검색한다.

    SELECT DISTINCT title, author
    FROM book;
    

WHERE

특정 조건의 레코드 선택

SELECT 컬럼1, 컬럼2, ..
FROM 테이블명
WHERE 조건;
  • book 테이블에서 제목이 ‘돈키호테’인 모든 데이터를 검색한다.

    SELECT *
    FROM book
    WHERE title = '돈키호테';
    

연산자

  • 비교 연산자

    연산자 의미
    >, < N < 10
    N < 10
    N이10미만
    N이10초과
    >=, <= N <= 10
    N >= 10
    N이10이하
    N이10이상
    = N = 10 N이 10인 값
    != N != 10 N이 10이 아닌 값
    BETWEEN A BETWEEN 10 AND 20 A가 10과 20 사이에 포함된 값
    (10, 20 포함)
    IN() A IN B B에 A가 포함된 값
    NOT IN() A NOT IN B B에 A가 포함되지 않은 값
  • 복합조건 연산자

    연산자 의미
    AND, && A AND B
    A && B
    A 그리고 B를 모두 만족하는 값
    OR, || A OR B
    A || B
    A 또는 B인 값
    NOT, ! NOT A
    !A
    A가 아닌 값
    SELECT *
    FROM score
    WHERE korean >= 90 OR math > 80;
    

LIKE

특정 패턴 매칭

SELECT 컬럼1, 컬럼2, .. 
FROM 테이블명 
WHERE 컬럼 LIKE 패턴;
  • book 테이블에서 제목(title)이 ‘어린왕자’인 책 검색

    SELECT * 
    FROM book
    WHERE title LIKE '어린왕자';
    

    만약 특정 패턴을 포함하지 않는 데이터를 검색하고 싶을 때는 NOT LIKE 연산자를 사용하면 된다.

  • book 테이블에서 제목(title)이 ‘어린’으로 시작하는 책 검색

    SELECT * 
    FROM book
    WHERE title LIKE '%어린';
    

    [참고] ‘%’는 0개 이상의 문자라는 의미의 와일드카드(wildcard) 문자이다.

    와일드카드 설명
    % 0개 이상의 문자를 대체함.
    _ 1개의 문자를 대체함.

ORDER BY

결과 정렬

SELECT 컬럼1, 컬럼2, ..
FROM 테이블명 
ORDER BY 정렬 조건;

ORDER BY 절의 기본 설정은 오름차순이며, ASC 키워드를 사용하여 직접 오름차순을 명시할 수도 있다. 내림차순으로 정렬하고자 할 때는 맨 마지막에 DESC 키워드를 추가하면 됩니다.

  • score 테이블에서 수학(math) 값이 높은 데이터부터 정렬하여 검색

    SELECT *
    FROM score
    ORDER BY math DESC;
    

02 데이터 삽입 (INSERT)

테이블에 새로운 레코드 추가:

INSERT INTO 테이블이름(필드이름1, 필드이름2, 필드이름3, ...)
VALUES (데이터값1, 데이터값2, 데이터값3, ...);
INSERT INTO 테이블이름
VALUES (데이터값1, 데이터값2, 데이터값3, ...);
  • ‘햄릿’ 책 데이터를 book 테이블에 추가

    INSERT INTO book(id, title, author, publisher)
    VALUES('3', '햄릿', '윌리엄 셰익스피어', '대한 출판');
    
    INSERT INTO book
    VALUES('3', '햄릿', '윌리엄 셰익스피어', '대한 출판');
    

03 데이터 수정 (UPDATE)

UPDATE 테이블이름
SET 필드이름1=데이터값1, 필드이름2=데이터값2, ...
WHERE 필드이름=데이터값;
  • 책 제목(title)이 ‘돈키호테’인 데이터의 제목(title)을 ‘돈키호테 1’로 변경

    UPDATE book
    SET title = '돈키호테 1'
    WHERE title = '돈키호테';
    

    만약 WHERE 절을 생략하면, 해당 테이블의 모든 레코드의 title 필드의 값이 ‘돈키호테 1’로 변경된다.

04 데이터 삭제 (DELETE)

DELETE FROM 테이블이름
WHERE 필드이름=데이터값;
  • 제목이 ‘돈키호테 1’인 책 데이터를 book 테이블에서 삭제

    DELETE FROM book
    WHERE title = '돈키호테 1';
    

    만약 WHERE 절을 생략하면, 해당 테이블에 저장된 모든 데이터가 삭제되기 때문에 신중히 사용해야 한다.

    • 이때 테이블에 저장된 모든 데이터가 삭제되더라도 테이블은 여전히 남아있게 된다. 해당 테이블까지 삭제하고 싶을 때는 DROP TABLE 문을 사용해야 한다.

댓글남기기