교육/SQL

Day 18 (SQL)

Mr.6_냥아치 2019. 12. 11. 22:57
반응형

DML문은 행단위 작업을 의미하며 INSERT, DELETE, UPDATE로 구성되어있다. 

'INSERT INTO <테이블> 칼럼 VALUES 값;'으로 구성되고, 테이블의 어떤 열에 어떤 값을 입력하겠다는 의미이다.

'UPDATE 테이블 SET 칼럼 = 값 [WHERE 조건];'으로 구성되고, 테이블의 어떤 열에 조건에 맞춘 값을 변경하겠다는 의미이다. 여기서 WHERE은 사용하지 않아도 되는데 사용하지 않는다면 모든 행의 값을 전부 변경한다.

'DELETE FROM 테이블 [WHERE 조건];'으로 구성되고, 테이블에서 조건에 맞는 행을 삭제한다는 의미이다.

INSERT, DELETE, UPDATE를 사용하고 나면 COMMIT이나 ROLLBACK을 무조건 사용해줘야한다. 그렇지 않으면 테이블 내용 수정이 이루어 지지 않는다.

'COMMIT;'은 작업 완료.

'ROLLBACK;'은 작업 취소이다.

아래는 COMMIT과 ROLLBACK의 차이이다.

<좌>DELETE후에 COMMIT을 하지 않으면 다른 sql에서는 내용 확인이 가능하다.<우>COMMIT을 하면 테이블이 지워져 다른 sql에서 확인할수없다.
<좌>COMMIT이나 ROLLBACK을 하지 않고 테이블을 수정하게 되면 Waiting상태가 된다.<우>COMMIT이나 ROLLBACK을 하면 수정이 적용된다.

 

1. 다음 INSERT 문을 실행하고 입력 결과를 확인한다. 
SQL> INSERT INTO emp (eno,hdate) VALUES (5, TO_DATE('12', 'MM')); 
SQL> INSERT INTO emp (eno,hdate) VALUES (6, TO_DATE('10', 'DD')); 
SQL> INSERT INTO emp (eno,hdate) VALUES (7, TO_DATE('9', 'HH24')); 
SQL> INSERT INTO emp (eno,hdate) VALUES (8, TO_DATE('12', 'MI')); 
SQL> INSERT INTO emp (eno,hdate) VALUES (9, TO_DATE('20', 'SS')); 
SQL> INSERT INTO emp (eno,hdate) VALUES (10, sysdate); 
* 입력값에 포함되지 않은 년도, 월, 날짜, 시, 분, 초에 입력된 값을 확인한다.

 

2. Emp 테이블의 행을 모두 삭제하고 다들 제시된 데이터를 입력한다.

 

3. 모든 학생의 성적을 4.5 만점 기준으로 수정한다.

 

4. 모든 교수의 부임일자를 100일 앞으로 수정한다.

 

5. 화학과 2학년 학생의 정보를 삭제한다.

 

6. 조교수의 정보를 삭제한다.

 

논리 관계도를 작성했다.

 

논리 관계도에 데이터 타입과 길이를 같이 적어주었다.

 

반응형