Format
INSERT INTO 테이블명 (컬럼명_리스트들)
VALUES (컬럼값_리스트);
컬럼 데이터 타입이 문자라면 '' 사용, 숫자라면 그냥 쓴다.
Example
INSERT INTO PLAYER (PLAYER_ID, PLAYER_NAME, TEAM_ID, POSITION,
HEIGHT, WEIGHT, BACK_NO)
VALUES ('2002007', '박지성', 'K07', 'MF', 178, 73, 7);
INSERT INTO PLAYER
VALUES ('2002010', '이청용', 'K07', '', 'BlueDragon',
'2002', 'MF', '17', NULL, NULL, '1', 180, 69);
위와 같이 NULL과 공백도 넣을 수 있다.
Format
INSERT INTO 테이블명 (컬럼명_리스트들)
SELECT 문;
Example
CREATE TABLE BLUE_DRAGON_TEAM1 (
PLAYER_ID CHAR(7) NOT NULL,
PLAYER_NAME VARCHAR(20) NOT NULL,
BACK_NO TINYINT
);
INSERT INTO BLUE_DRAGON_TEAM1
SELECT PLAYER_ID, PLAYER_NAME, BACK_NO
FROM PLAYER
WHERE TEAM_ID = 'K07';
BLUE_DRAGON_TEAM1 테이블이 미리 정의되어 있어야한다.
Format
DELETE FROM 테이블명
[WHERE 투플_조건식];
WHERE절은 생략 가능한데, 생략 시 테이블의 전체 데이터를 삭제한다. (테이블은 남김)
하지만, 테이블의 전체 데이터를 삭제하는 경우에는 DELETE FROM 보다는 TRUNCATE TABLE을 권한다.
Example
DELETE FROM PLAYER
WHERE PLAYER_ID = '2002007';
여기서 PLAYER_ID는 PK이기 때문에 튜플 한개만 삭제하는 경우이다.
DELETE FROM PLAYER
WHERE POSITION = 'GK';
하지만, 여기서는 두개 이상 튜플이 제거되기때문에 safe_update mode에서 거부된다.
DELETE FROM PLAYER;
이 경우는 테이블의 모든 튜플을 삭제하는 것인데 이것도 거부된다.
✋ 여기서 잠깐, self_update mode 란?
'PK를 사용하는 WHERE절'이 없는 DELETE문은 실행되지 않는다.
그렇다면 거부되지 않으려면 어떻게 해아하나? -> 비활성화 시켜주면 된다.
SET sql_safe_updates=0; /* safe update mode 비활성화 */
DELETE FROM PLAYER;
이렇게 하면 비활성화가 되고, 삭제가 된다.
SET sql_safe_updates=1; /* safe update mode 활성화 */
하지만 이렇게 다시 활성화 시켜주는게 안전하다.
Format
UPDATE 테이블명
SET {컬럼명 = 산술식,}⁺
[WHERE 투플_조건식];
Example
UPDATE PLAYER
SET BACK_NO = 99
WHERE PLAYER_ID = '2000001';