DML(데이터조작어)

정은지·2022년 8월 25일
0
post-custom-banner

DML의 활용

  • 기본 단위 : ROW, RECORD, TUPLE
  • 수정(update), 삭제(*delete), 삽입(insert).
    (DDL에서는 DROP인데 DML에서는 DELETE임)
  • 종류
    1)INTSERT INTO VALUES
    2) UPDATE SET WHERE
    3) DELETE FROM WHERE

Insert문

 : 지정한 칼럼에 데이터 삽입

insert into 테이블_이름 (칼럼1, 칼럼2...)
values (값1, 값2..)

: 칼럼리스트 생략하면 모든 칼럼에 데이터 삽입한다는 뜻

INSERT INTO 테이블 VALUES(값1, 값2)

update - 수정할때 사용

update 테이블_이름 set 칼럽1 = 값1, 칼럼2=값2, ...
where 조건식; (조건식 현재까지 in, between 배움)
(where 안적어주면 전체 값이 모두 수정됨)

delete

DLELTE FROM 테이블_이름
WHERE 조건식; -- 주의 : 이거 없으면 테이블 전체를 지운다는 뜻이됨

SET

부서번호가 3인 부서의 부서번호를 6으로 수정
→ DEPARTMENT의 부서번호를 EMPLOYEE가 참조중이므로 수정이 안 됨
해결책 :
-외래키 일시중지
-수정
-외래키 재시작

ALTER TABLE EMPLOYEE

DISABLE CONSTRAINT FK_EMPLOYEE_DEPARTMENT; -- 외래키 중지

UPDATE EMPLOYEE

SET DEPART = 6
WHERE DEPART = 3;

UPDATE DEPARTMENT

SET DEPT_NO = 6
WHERE DEPT_NO = 3;

ALTER TABLE EMPLOYEE

ENABLE CONSTRAINT FK_EMPLOYEE_DEPARTMENT; -- 외래키 시작

수정하고 싶은 내용이 여러개라면 set절에 , 찍어서 계속 적어줌.
update~
set~
where~
각각은 절이라고 함. 업뎃절.셋절.

트랜잭션

-트랜잭션이 필요한 SQL
INSERT UPDATE DELETE 했다 -- 작업의 완료상태가 아님. 작업을 해도 작업이 완료된 상태가 아님 왜이러냐면 취소하기 위해서
따라서 이 셋은 취소가 가능한 특징이 있다
실제로 INSERT했다, 삽입된것처럼, 작업이 완료된 것처럼 보이지만 DB에 저장된게 아님.

트랜잭션 제어 명령

  1. COMMIT : I U D작업한 다음에 작업을 저장해도 좋다. 라는 완료 명령임. 따로 내려줘야함.
  2. ROLL BACK : 지금까지 작업한 내용 취소하라는 명령어.트랜잭션 종료

트랜잭션을 (dcl)의 종류로 봄/ DCL : < GRANT , REVOKE 권한 부여 회수 데이터 콘트롤 렝기쥐. >

이체의 하나의 작업을 트랜잭션이라고 함 1.뺀다. 2.보낸다 이 두개를 합쳐서 하나의 트랜잭션이 된다. -- 이를 묶는걸 스프링에서 배울거임
-특징-
트랜잭션으로 묶어놓고 둘다 성공이면 COMMIT으로 나오고
둘중 하나 실패하면 ROLL BACK 실행됨.

DML 2개 이상을 처리할 때 이걸 반드시 트랜잭션 처리를 해야함.
안하면 하나 실패 하나 성공을 그대로 유지. 이체에서 돈을뺏는데 다른 계좌로 가고 막

회원탈퇴
1. 회원 DELETE
2. 탈퇴 INSERT
이 2개를 트랜잭션처리 해야함.
어느 하나라도 실패했을 때 회원탈퇴가 실패할 수 있도록.
@Transactionul - 이런 코드가 들어감

DDL과 DML의 차이

DDL의 대상 : DB object (테이블, 사용자.. 등) // 커밋 필요없음
DML의 대상 : ROW, //커밋 필요함

https://mockaroo.com/?subid1=20220825-1545-038c-8fac-dd4d6adf1a03

DQL-SELETE
FUNTION-함수
JOIN-테이블 2개 이상헤서 내가 원하는 데이터를 가져오는 것
서브쿼리 - 쿼리안에 쿼리가 들어가는 중첩을 의미함
시퀀스 - 은행 번호표 같은거 번호증가역할

post-custom-banner

0개의 댓글