KoreaIt Academy/Oracle DBMS

[Oracle] DML(Data Manipulation Language) - 데이터 조작어

hongeeii 2021. 8. 5.
728x90
반응형

DML(Data Manipulation Language, 데이터 조작어)

DML에는 테이블의 데이터를 검색(SELECT), 추가(INSERT), 수정(UPDATE), 삭제(DELETE)를 할 수 있는 SQL 문이 있습니다. 그중에서

UPDATEDELETE는 조건절(WHERE)을 추가 하지않으면 전체 데이터가 수정, 삭제가 될 수 있으니 조심하여 사용해야 합니다.DML문은 반드시 부모테이블부터 처리를 해야합니다. 그렇지 않으면 오류가 발생합니다.

(PARENT KEY NOT FOUND)

한꺼번에 처리 : CASCADE , SET NULL

※ 부모 테이블 : 참조받는 테이블을 말합니다.

 

* SELECT 

▶ 테이블에서 데이터를 조회(검색)을 하는 역할을 합니다.

▶AS(ALIAS) : 별칭 --SELECT절 : 컬럼명 뒤에 AS 또는 한 칸 띄어쓰고 작성

SELECT 컬럼명1, 컬럼명2, ... FROM 테이블명 WHERE 조건식;
SELECT 컬럼명1 AS "바꿀 컬럼명" FROM 테이블명;

 

* INSERT

▶ 테이블에 데이터를 추가 해주는 역할을 합니다.

▶ 부모 테이블 부터 추가 해야합니다.

INSERT INTO 테이블명 (컬럼명1, 컬럼명2,...) VALUES(값1, 값2,...); //디폴트 값을 쓰고싶을때 사용합니다.

INSERT INTO 테이블명 VALUES(값1, 값2,...); //컬럼명을 생략하면 전체 컬럼을 추가합니다.

 

* UPDATE

▶ 테이블의 데이터를 수정 해주는 역할을 합니다.

UPDATE 테이블명 SET 기존 컬럼명 = 새로운 값 WHERE 조건식;

 

* DELETE

▶ 테이블의 데이터(행)을 삭제해주는 역할을 합니다.

▶ TRUNCATE는 테이블 내용을 전체 삭제하므로, DELETE보다 빠르게 처리할 수 있습니다.
    대용량 데이터 처리에 유리하지만 복구가 불가능하기 때문에 복구가 가능한 DELETE를 사용하는 것이 좋습니다.

DELETE FROM 테이블명 WHERE 조건식;

 

 

조건식 : 참 또는 거짓 둘 중 하나가 나오는 식

>, < : 초과, 미만
>=, <= : 이상, 이하
=, : 같다
<>, !=, ^= : 같지 않다.
AND : 조건식 2개 모두 참일 때 참
OR : 하나라도 참이면 참

 

 

DDL 예제

--PLAYER 테이블에서 TEAM_ID가 'K01'인 선수 검색
SELECT * FROM PLAYER WHERE TEAM_ID ='K01';

--PLAYER 테이블에서 TEAM_ID가 'K01'이 아닌 선수 검색
SELECT * FROM PLAYER WHERE TEAM_ID <>'K01';

--PLAYER 테이블에서 WEIGHT가 70이상이고 80이하인 선수 검색
SELECT * FROM PLAYER WHERE WEIGHT>=70 AND WEIGHT<=80;
SELECT * FROM PLAYER WHERE WEIGHT BETWEEN 70 AND 80;

--PLAYER 테이블에서 TEAM_ID가 'K03' 이고 HEIGHT가 180미만인 선수 검색
SELECT * FROM PLAYER WHERE TEAM_ID='K03' AND HEIGHT<=180;

--PLAYER테이블에서 TEAM_ID가 'K06'이고 NICKNAME이 '제리'인 선수 검색
SELECT * FROM PLAYER WHERE TEAM_ID='K06' AND NICKNAME='제리';

--PLAYER테이블에서 HEIGHT가 170이상이고 WEIGHT가 80이상인 선수 이름 검색
SELECT PLAYER_NAME FROM PLAYER WHERE HEIGHT>=170 AND WEIGHT>=80;

--PLAYER테이블에서 TEAM_ID가 'K02'이거나 'K07'이고 포지션은 'MF'인 선수 검색
SELECT * FROM PLAYER WHERE TEAM_ID IN('K02','K07') AND "POSITION"='MF';

-- player 테이블에서 TEAM_ID가 'K01'인 선수 이름을 내 이름으로 바꾸기
UPDATE PLAYER SET PLAYER_NAME='홍길동' WHERE TEAM_ID='K01';

--PLAYER테이블에서 HEIGHT가 180이상인 선수 삭제하기
DELETE FROM PLAYER WHERE HEIGHT>=180; 

--PLAYER 테이블에서 POSITION이 'MF'인 선수 삭제하기
DELETE FROM PLAYER WHERE "POSITION" = 'MF';

--PLAYER 테이블에서 HEIGHT가 180이상인 선수 삭제하기
DELETE FROM PLAYER WHERE HEIGHT >= 180;

--PLAYER 테이블에서 BACK_NO를 "등 번호"로, NICKNAME을 "선수 별명"으로 변경하여 검색
SELECT PLAYER_NAME "선수 이름", BACK_NO "등 번호", NICKNAME "선수 별명" FROM PLAYER; SELECT * FROM PLAYER WHERE NICKNAME = '터프가이';

 


이상으로 DML에 대해 알아보았습니다.

728x90
반응형

추천 글