INSERT문
INSERT INTO 테이블 이름 (열1, 열2, ...) (생략시= 테이블을 만들 때 설정한 순서)
VALUES (열1 값, 열2 값, ...);
특정 테이블에 데이터를 새로 추가할 때 사용한다. 열 지정을 생략하면 해당 테이블을 만들 때 설정한 열 순서대로 모두 나열되어 있다고 가정하고 데이터를 작성하면 된다.
NULL을 INSERT하고 싶은 경우 세 가지 방법
1. NULL이라고 작성하기 - VALUES(1, 'A', NULL);
2. ''으로 표현하기 - VALUES(1, 'A', '');
3. INSERT INTO 절에서 열 이름을 생략하는 방법 - INSERT INTO 테이블 이름 (열1, 열2) VALUES(1, 'A')
날짜 데이터를 INSERT하고 싶은 경우
1. '2021/12/30' - 운영체제의 종류나 사용하는 기본 언어군에 따라 오류가 발생할 수 있다.
2. '2021-12-30' - 운영체제의 종류나 사용하는 기본 언어군에 따라 오류가 발생할 수 있다.
3. TO_DATE('12/30/2021', 'DD/MM/YYYY') - 기본 언어군에 따라 날짜 표기방식이 달라 발생할 수 있는 버그를 미리 방지할 수 있다.
여러 데이터를 한 번에 INSERT하고 싶은 경우
VALUES절 없이 서브 쿼리를 사용하면 된다. (SELECT 열1, 열2 FROM 테이블B 부분)
INSERT INTO 테이블A (열1, 열2)
SELECT 열1, 열2
FROM 테이블B
UPDATE문
UPDATE 변경할테이블
SET 열=데이터, 열=데이터, ...
WHERE 변경 대상 행 선정 조건(생략시= 전체 행)
저장된 데이터를 변경할 때 사용한다. UPDATE문을 실행하면 저장된 데이터가 변경되기 때문에, UPDATE문을 실행하기 전에 SELECT문을 활용하여 WHERE절을 검증하는 작업이 반드시 필요하다.
수정한 내용을 되돌리고 싶을 때: ROLLBACK 명령문 사용
ROLLBACK;
여러 열을 수정하고 싶은 경우
UPDATE 테이블A
SET
열1 = (SELECT 서브쿼리),
열2= (SELECT 서브쿼리)
WHERE 조건;
DELETE문
DELETE FROM 테이블 이름
WHERE 삭제할 대상 행 선정 조건(생략시= 전체 행)
테이블에 있는 데이터를 삭제할 때 사용한다.
서브쿼리를 이용하여 데이터 삭제하기
DELETE FROM 테이블A
WHERE 열1 IN (SELECT 서브쿼리);
CREATE문
테이블을 새로 생성할 때
CREATE TABLE 테이블이
AS SELECT * FROM 테이블이름
급하게 테이블 형식만 복사하고 싶은 경우
WHERE 1<>1; 조건 때문에 행은 복사되지 않고, 열 구조만 같게 복사 된다.
CREATE TABLE EMP_TEMP
AS SELECT *
FROM EMP
WEHRE 1<>1;
DROP문
테이블을 잘못 만들었거나 지워야 할 때
DROP TABLE 테이블 이름
'BackEnd > DB, SQL' 카테고리의 다른 글
SQL 16편: 데이터 정의어 DDL(CREATE, ALTER, RENAME, TRUNCATE, DROP) (0) | 2022.01.09 |
---|---|
SQL 15편: 트랜잭션과 세션 (ROLLBACK, COMMIT, 읽기 일관성, LOCK, HANG) (0) | 2022.01.03 |
SQL 13편: 서브쿼리 (0) | 2021.12.30 |
SQL 12편: 조인 (집합 연산자와 조인의 차이점, WHERE절 조인, SQL-99 표준 문법 조인) (0) | 2021.12.27 |
SQL 11편: GROUP BY절 사용하기(+ HAVING절) (0) | 2021.12.27 |
댓글