2주차 기본미션!
p. 138 - 확인문제 2번 풀고 인증샷👀
앞쪽을 살짝 봤지만 그래도 풀었습니다!
테이블에 행 데이터를 입력하는 기본적인 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 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는 빈 테이블을 남긴다.