DML(Data Manipulation Language)
데이터를 조작하는 언어.
앞서 DDL 에서 데이터를 담는 틀을 만들었습니다.
해당 틀에 데이터를 담는 것이 데이터 조작의 일종입니다.
데이터 조작(DM)은 다음과 같습니다.
- 데이터베이스 내에 저장된 정보를 검색
- DB 에 새로운 정보를 삽입
- DB 로부터 정보를 삭제
- DB 내에 저장된 정보를 수정
DML은 두 종류로 분류됩니다.
- 절차적(proceduarl) DML
- 비절차적 DML, 선언적(declartive) DML
절차적 DML은 데이터를 구하는 방법을 직접 작성해주어야 한다고 합니다.
선언적 DML은 반대로 무슨 데이터만 필요한지 작성하면 됩니다.
저는 처음 공부할 때, 정의만 읽고 SQL DML 이 절차적 DML 이라고 생각했습니다.(즉, SQL DML은 선언적 DML 입니다.)
예를들어 SQL DML은 ooo에서 x 조건을 만족하는 a 데이터를 보여줘 라는 방식으로 작성합니다.
하지만 절차적 언어는 다음과 같습니다.출처
t1 테이블에서 food 컬럼의 값이 rice인 집합을 뽑아내야한다고 가정하겠습니다.
예시의 결과를 SQL로 조회할 때 이렇게 사용하신 적이 있으신가요?
- t1이란 테이블에서 반복문을 사용해서 t1의 row를 처음부터 끝까지 조회하면서
- 그 중 food 컬럼의 값이 rice인 row를 분리해서 별도의 배열 메모리에 담고
- 반복문이 끝나면 이 배열 집합을 보여준다.
아무튼 사용자 입장에선 선언적 DML 이 좋습니다.
그로인해 선언적 DML은 DB system이 스스로 데이터에 효율적으로 접근하는 방법을 찾아야 한다는 특징이 있습니다.
SQL DML
SQL DML 의 키워드로는 select, insert, delete, update 가 있습니다.
차례대로 검색, 삽입, 삭제, 수정 이라는 의미입니다.
데이터를 검색(select)하려면 다음과 같이 작성합니다.
1
2
select <속성명> from <table명> while <조건문>
select 학번 from 출석부 while 이름='홍길동'
출석부 table에서 홍길동이란 이름을 가진 행의 학번을 구하려면 위처럼 작성합니다.