📌 데이터 삽입 (INSERT)
데이터를 삽입하는 종류는 여러 개가 있다.
데이터 전체 행을 삽입하거나 일부만 삽입할 수 있고 SQL 결과문을 삽입할 수도 있다. 데이터 전체 행을 삽입하는 방법은 열 이름을 지정하지 않고 삽입하는 방법과 열 이름을 지정한 후 삽입하는 방법으로 나눌 수 있다. 열 이름을 지정하지 않고 삽입하는 방법은 코딩을 짧게 해도 된다는 장점이 있는 반면 데이터를 삽입하는 값의 순서가 변경될 경우 테이블이 망가질 수 있는 위험이 있다. 그에 반해 열 이름을 지정한 후 행전체를 삽입하는 방법은 열 이름을 지정하기 때문에 코딩을 길게 해야 한다는 단점이 있지만 순서에 따라 값 매칭이 잘되었는지 확인할 수 있고 오류도 적다. 행의 일부분만 삽입할 때도 동일한 문법을 사용한다. 'SELECT 열 이름 FROM 테이블명 WHERE 조건절;'을 사용하면 SQL 문장 결과 전체를 삽입할 수 있다.
1.완전한 행 삽입
INSERT INTO 테이블명 VALUES(값1, 값2, 값3);
열 이름을 지정하지 않고 값을 삽입하는 방법
2.완전한 행 삽입 WITH 열 이름
INSERT INTO 테이블명(열 이름1, 열 이름2, 열 이름3) VALUES (값1,값2,값3);
열 이름을 지정한 후 값을 삽입하는 방법, 오류를 줄일 수 있는 효과적인 방법이다.
3.부분 행 삽입
INSERT INTO 테이블명(열 이름1, 열 이름3) VALUES(값1, 값3);
열 이름을 사용하여 완전한 행을 삽입한 것과 같이 열 이름을 지정하고 해당 열 이름에 매칭되는 값을 VALUES 키워드 뒤에 순서대로 적으면 된다.
4. SQL문장 결과를 삽입
INSERT INTO 테이블명1(열 이름1, 열 이름2, 열 이름3)
SELECT 열 이름1,열 이름2, 열 이름3 FROM 테이블명2 WHERE 조건절;
서브쿼리와 WHERE 절을 분리해서 조회한 후 DML을 실행한다.
DML명령어에서는 서브쿼리와 WHERE 절을 모두 사용할 수 있다. 서브쿼리를 사용하는 경우에는 메인 쿼리를 적용하기 전에 먼저 서브쿼리를 조회해서 의도한 결과가 나오는지 확인한다.
SQL 문장 결과 전체를 삽입하고 싶을 경우, VALUES 키워드 대신 'SELECT 열 이름 FROM 테이블명 WHERE 조건절;'을 적으면 된다.
📌데이터 삭제 (DELETE)
1. 테이블의 모든 행 삭제
DELETE FROM 테이블명;
데이터를 삭제할 때는 DELETE절을 사용하면된다.
2. 테이블의 부분 행 삭제
DELETE FROM 테이블명 WHERE 조건절;
--단일 행 삭제
DELETE FROM departments
WHERE department_name = 'Sample_Dept';
--서브쿼리를 이용해도 삭제할 수 있다.
DELETE FROM departments
WHERE department_id IN (SELECT dapartment_id
FROM departments
WHERE department_name = 'Sample_Dept')
테이블의 부분 행을 삭제할 때는 WHERE 조건절을 추가하면 된다.
테이블의 행을 삭제할 때는 DELETE절을 사용하는데 WHERE 조건절을 사용하지 않으면 데이터 전체가 삭제될 수 있기 때문에 단독으로 DELETE절을 사용할 때는 주의해야 한다.
SQL에서는 실행한 내용을 취소할 수 있는 기능이 없기 때문에 DELETE문을 사용할때 주의해야 한다!
📌데이터 수정 (UPDATE)
1.모든 행의 데이터 수정
UPDATE 테이블명 SET 열이름=변경할 값;
2.특정한 행의 데이터 수정
UPDATE 테이블명 SET 열이름=변경할 값 WHERE 조건절;
UPDATE문의 문법은 DELETE문과 같이 아주 간단하다. 또한 UPDATE문도 테이블 전체의 데이터를 변형시키는 명령어이기 때문에 사용할 때 조심해야 한다. 행 전체의 데이터를 변경할 때는 WHERE조건절을 사용하지 않고, 일부를 변경할 때는 WHERE조건절을 기재해야 한다.
3.SQL문장으로 데이터 수정
UPDATE 테이블 이름 --변경하려는 데이터가 있는 테이블
SET 열 이름1 [,열 이름2, ...]= --변경하려는 열
(SELECT 열 이름1 [,열 이름2, ...]--변경하려는 데이터 값
FROM 테이블 이름
[WHERE 조건식])
[WHERE 조건식];
서브쿼리와 WHERE 절을 분리해서 조회한 후 DML을 실행한다.
DML명령어에서는 서브쿼리와 WHERE 절을 모두 사용할 수 있다. 서브쿼리를 사용하는 경우에는 메인 쿼리를 적용하기 전에 먼저 서브쿼리를 조회해서 의도한 결과가 나오는지 확인한다.
DML을 실행한 후 커밋을 필수이다.
데이터 값을 변경하면 커밋해야 한다. 커밋하기 전에 DML 작업이 잘못되었다면 롤백을 실행하여야 한다.
'DBMS > SQL, RDBMS' 카테고리의 다른 글
[SQL]데이터 무결성 & 트랜잭션 & 가상 테이블 (0) | 2022.06.25 |
---|---|
[SQL]DDL (테이블 생성 & 추가 & 수정 & 삭제) (0) | 2021.08.12 |
SQL 하위 쿼리(Sub-query) (0) | 2021.08.10 |
SQL 테이블 합치기 (조인과 집합) (0) | 2021.08.10 |
SQL 문자, 숫자, 날짜, COUNT, CASE WHEN, 데이터의 그룹화 (0) | 2021.08.10 |