혼공단 SQL 2주차

choija·2022년 7월 17일
2

혼공단 SQL

목록 보기
2/5

Chapter 03

2주차 기본미션!
p. 138 - 확인문제 2번 풀고 인증샷👀
앞쪽을 살짝 봤지만 그래도 풀었습니다!

선택미션: 데이터 입력, 삭제하는 기본 형식 작성하기

데이터 입력: INSERT

  • 테이블에 행 데이터를 입력하는 기본적인 SQL 문은 INSERT입니다.

    기본적인 형식↓
    INSERT INTO 테이블 [(열1, 열2, ...)] VALUES (값1, 값2, ...)
    INSERT문은 별로 어렵지는 않지만 몇가지 주의할점이 있다.

  • 우선 테이블 이름 다음에 나오는 열은 생략 가능하다

  • 열 이름을 생략할 경우 VALUES 다음에 나오는 값들의 순서 및 개수는 테이블을 정의할 때의 열 순서 및 개수와 동일해야 한다.

    ex)
    USE market_db;
    CREATE TABLE hongong1 (toy_id INT, toy_name CHA(4), age INT);
    INSERT INTO hongong1 VALUES (1, '우디', 25);

    이 예제에서 아이디(toy_id)와 이름(toy_name)만 입력하고 나이(age)는 입력하고 싶지 않다면 테이블 이름 뒤에 입력할 열의 이름을 써줘야 한다. 그러면 나이(age)에 아무것도 없다는 의미인 NULL 값이 들어간다.

    ex)
    INSERT INTO hongdong1 (toy_id, toy_name) VALUES (2, '버즈')
    INSERT INTO hongdong1 (toy_name, age, toy_id) VALUES ('제시', 20, 3)

    (열의 순서를 바꿔서 입력하고 싶을땐 열 이름과 값을 원하는 순서에 맞춰 써주면 된다.


데이터 삭제: DELETE

  • 테이블의 행 데이터를 삭제해야 하는 경우도 발생한다. 예를 들어 회원이 탈퇴한 경우 해당 회원의 정보를 삭제해야 한다. 이럴 때 DELETE를 사용하여 행 데이터를 삭제한다.

    기본형식↓
    DELETE FROM 테이블이름 WHERE 조건;

    city_popul 테이블에 'New'로 시작하는 도시를 삭제하기 위해서는 다음과 같이 실행된다. (New가 들어가는 도시는 Newcastlem Newport, New Orleans 등 11개 정도가 있다)

    DELETE FROM city_popul
    WHERE city_name LIKE 'New%';

    만약 'New' 글자로 시작하는 11건 도시를 모두 지우는게 아니라 상위 몇 건만 삭제하려면 LIMIT 구문과 함께 사용하면 된다. (이미 앞에서 관련 데이터가 삭제되어서 다음 SQL은 실행해도 0건이 삭제된다)

    DELETE FROM city_popul
    WHERE city_name LIKE 'New%'
    LIMIT 5;

이때 주의 사항!
-UPDATE와 마찬가지로 WHERE 절이 생략되면 전체 행 데이터를 삭제 해야되므로 주의해야 한다.
-DELETE 문을 WHERE 절 없이 사용하면 모든 행 데이터가 삭제된다.

대용량 테이블의 삭제...
DELETE, DROP, TRUNCATE 각각 다른 3가지 방법이 있다!

  • DELETE 문은 삭제가 오래 걸린다. 데이터가 수억 건 이상이면 훨씬 오랫동안 삭제할 수도 있다.
  • DROP 문은 테이블 자체를 삭제한다. 그래서 순식간에 삭제된다.
  • TRUNCARE 문도 DELETE와 동일한 효과를 내지만 속도가 무척 빠르다. DROP은 테이블이 아예 없어지지만, DELETE와 TRUNCATE는 빈 테이블을 남긴다.

이상으로 2주차 혼공S였다~
profile
즐거운 프로그래밍

0개의 댓글