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';
'데이터베이스 > SQL' 카테고리의 다른 글
SQLD 를 위한 SQL기본문법 정리 5 - DDL, 테이블 변경 (0) | 2024.02.14 |
---|---|
SQLD 를 위한 SQL기본문법 정리 4 - DDL, 테이블 생성 (0) | 2024.02.13 |
SQLD 를 위한 SQL기본문법 정리 2 (0) | 2024.02.05 |
SQLD 를 위한 SQL기본문법 정리 1 (0) | 2024.02.05 |
SQL 서브쿼리 사용, 데이터 합치기 (0) | 2024.01.25 |