KoreaIt Academy/Oracle DBMS
[Oracle] DML(Data Manipulation Language) - 데이터 조작어
728x90
반응형
DML(Data Manipulation Language, 데이터 조작어)
DML에는 테이블의 데이터를 검색(SELECT), 추가(INSERT), 수정(UPDATE), 삭제(DELETE)를 할 수 있는 SQL 문이 있습니다. 그중에서
UPDATE와 DELETE는 조건절(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
반응형
'KoreaIt Academy > Oracle DBMS' 카테고리의 다른 글
[Oracle] 정규화 (0) | 2021.08.09 |
---|---|
[Oracle] DCL(Data Control Language) , TCL(Transaction Control Language) (0) | 2021.08.07 |
[Oracle] DDL(Data Definition Language) - 데이터 정의어, 자료형 (0) | 2021.08.05 |
[Oracle] 데이터 모델링 (0) | 2021.08.04 |
[Oracle] DMBS(Database Management System), 무결성 (0) | 2021.08.04 |
댓글