본문 바로가기

순이코딩/데이터베이스

[데이터베이스] SQL-DML(Data Manipulation Language)

728x90
반응형

1. DML(Data Manipulation Language)

 

DML(Data Manipulation Language)은 테이블에 원하는 데이터를 입력/수정/삭제하는 문법입니다. DDL과는 다르게 데이터를 직접 조작하는 언어입니다.

 

■ INSERT

 

테이블에 새로운 데이터를 튜플(행) 단위로 입력할 때 사용합니다.

INSERT INTO 테이블명 (COLUMN_LIST)
VALUES (COLUMN_LIST에 입력할 값 리스트) ;

INSERT INTO 수강생정보(학생ID, 학생이름, 소속반)
VALUES ('S0010', '김군순', 'A');

위의 코드와 같이 입력하면 수강생정보라는 테이블에 새로운 튜플이 추가된 것을 볼 수 있습니다.

INSERT 사용시 주의할 점이 있습니다.

1) 식별자에 NULL값이나 중복 값을 입력할 수 없습니다. 이전에 이야기했듯 식별자(PK)는 모두가 가지고 있는 고유한 속성이기 때문입니다.
2) 입력 값이 컬럼의 기존 자료형과 일치해야 합니다. 예를 들어 입력하려는 컬럼'점수'가 숫자형으로 지정되어 있다면 문자형으로 '백점'이라고 입력하는 경우 오류가 발생합니다. 컬럼의 자료형에 맞게 숫자형으로 100을 입력해야 합니다.
3) 소괄호와 COMMA 사용에 주의해야 합니다. 입력해야 할 컬럼리스트가 많아지는 경우 빼먹거나 더 입력하는 경우가 발생하는데 오류가 발생하기 때문에 주의해서 사용해야 합니다.
4) INSERT문에 입력하지 않은 컬럼은 자동으로 NULL이 입력됩니다. 그러나 NOT NULL의 속성을 가진 컬럼의 경우에는 누락된 경우 오류가 발생합니다.
5) 컬럼리스트의 개수와 컬럼리스트에 입력할 값의 개수는 일치해야 합니다.
6) INSERT를 사용하려는 테이블의 컬럼정보를 모두 일치시켜 값을 입력하면 컬럼 리스트를 생략해도 됩니다. 하지만 실제로 컬럼은 더욱 많고 복잡하며 유지보수가 어렵기 때문에 컬럼리스트를 입력하는 게 좋습니다.

 

■ DELETE

 

DELETE는 테이블에 있는 기존 데이터를 튜플 단위로 삭제할 때 사용합니다.

 DELETE FROM 테이블명
 WHERE 삭제하고 싶은 행조건 ;

DELETE를 사용할 때 주의사항은 자식테이블이 존재하는 경우 식별자(PK)컬럼은 삭제가 불가능합니다. PK-FK관계를 끊고 삭제를 진행해야 합니다. 그리고 다중 행 삭제가 가능하므로 WHERE문에 조건을 잘 입력해야 합니다, WHERE문을 적지 않으면 모든 행이 삭제되어 버립니다.

DELETE는 DROP과 달리 COMMIT전에는 복구가 가능합니다.

위에서 생성한 학생ID 'S0010' 튜플이 삭제됨

 

■ UPDATE

 

UPDATE는 기존 데이터를 새로운 내용으로 수정할 때 사용합니다. 

UPDATE테이블명 SET 바꿀컬럼 = 바꿀값
WHERE바꾸고싶은행조건 ;

UPDATE도 DELETE와 마찬가지로 WHERE문에 아무것도 적지 않으면 모든 행의 데이터가 변경되고, WHERE의 조건에 해당하는 튜플이 없으면 제대로 실행되지 않으니 주의해서 잘 입력해야 합니다.

또한 INSERT와 마찬가지로 식별자에 NULL값과 중복 값을 입력할 수 없고, 업데이트할 내용이 컬럼의 자료형과 일치해야 합니다.

학생ID 'S0022'였던 정보가 'S0010'으로 수정됨

 

728x90
반응형