본문 바로가기
데이터베이스/SQL

SQLD 를 위한 SQL기본문법 정리 3

by ADELA_J 2024. 2. 7.

DML (Data Manipulation Language) 

데이터를 검색 또는 변형하기 위한 명령어

SELECT, INSERT, UPDATE, DELETE

: SELECT 는 조회라서 아무런 영향을 안줌.

 

나머지 INSERT, update, delete는 테이블 구조에는 영향을 주지 않지만

(구조에 영향을 주는건 DDL, Data Definition Language ex. create, alter, drop etc...)

인스턴스에 영향을 줌

 

 

<INSERT>

- 테이블에 한 건의 레코드 추가

: 여러 건이면 INSERT ALL ~구문 활용

- 문자 or 날짜는 작은 따옴표 사용 (숫자는 x)

 

INSERT INTO PLAYER (PLAYER_ID, PLAYER_NAME, TEAM_ID, BIRTH_DATE)
VALUES ('2999001', '손흥민', 'K07', '1999-01-01');

INSERT INTO PLAYER
VALUES ('2999002', '황희찬', 'K07', '','', '2010', 'MF', '10', NULL, NULL, NULL, NULL, NULL);

 

작성하는 컬럼 순서와 실제 테이블 컬럼 순서 무관

정의하지 않은 컬럼은 NULL 값이 입력됨

 

전체를 적을 때는 모든 값을 순서대로 입력.

빈 값은 NULL 또는 작은 따옴표 ( '' ) 로 입력

 

* 동시에 여러 레코드를 추가할 때는

1. 테이블 생성 후 초기 데이터 일괄 업로드

2. 기존 테이블의 레코드 조회 후 다른 테이블에 삽입

** INSERT ALL은 반드시 SELECT 문을 사용해서 다른 테이블의 값을 조회해야한다.

 : 만약 새로운 값을 입력해야하면 DUAL 테이블을 사용하기

INSERT ALL
    INTO STADIUM (STADIUM_ID, STADIUM_NAME) VALUES ('TP1', '임시경기장1')
    INTO STADIUM (STADIUM_ID, STADIUM_NAME) VALUES ('TP2', '임시경기장2');

INSERT ALL
    INTO STADIUM (STADIUM_ID, STADIUM_NAME) VALUES ('TP1', '임시경기장1')
    INTO STADIUM (STADIUM_ID, STADIUM_NAME) VALUES ('TP2', '임시경기장2')
SELECT * FROM DUAL;

▷ 위에꺼는 틀린 문법

아래꺼가 맞는 문법

 

<DELETE>

테이블에 존재하는 전체 레코드 삭제

* 일반적으로는 WHERE 절을 사용해서 조건에 맞는 레코드만 삭제

DELETE FROM STADIUM
WHERE STADIUM_ID = 'TP1';

FROM은 생략 가능

> WHERE 절 없으면 싹 다 날라감

 

<UPDATE>

- 전체 레코드 값 변경

- WHERE 절 줘서 조건에 맞는 레코드만 변경

UPDATE STADIUM SET STADIUM_NAME = '우리경기장'
WHERE STADIUM_ID = 'TP2';