원본
DML( Data Manipulation Language : 데이터 조작어)
DML은 테이블의 자료들을 입력, 수정, 삭제, 조회하는, 데이터를 조작한다.
혹시나 테이블 생성하는 법을 모른다면 이전글을 보자.
본인은 MariaDB를 사용하고, DML에서 SQL과 차이는 거의 없지만 다른 부분은 따로 써놨다.
예제로 연습할 테이블의 구조다.
1. Select ( 조회 )
먼저 데이터를 조회하는 구문을 알아보자.
먼저 DDL을 통해 테이블을 새로 만들고 조회해보자.
사용법
Select '조회할 칼럼' From '테이블명';
select '칼럼1','칼럼2' ... '칼럼6' from '테이블명'
select * from test3; -- *은 모든이란 뜻을 가진다 읽는 법은 애스터리스크(별표) 또는 와일드카드
select id from test3;
나는 조회를 위해서 데이터를 넣었다.
테이블을 만들고 나서는 데이터가 아무것도 없기 때문에, 데이터가 안나오는게 당연하다.
아래 다른 DML을 사용해보면서 결과 값을 Select 구문으로 확인해보면 연습에 도움이 될 것이다.
Select의 옵션
ALIAS (별칭 부여)
별칭은 칼럼을 다르게 보고 싶을 때 사용한다.
사용법
Select '보고싶은칼럼' as '볼 칼럼명' 이다.
select id as '아이디' from test3;
DISTINCT (중복 제거)
중복제거는 같은 값을 제거하고 보여준다.
위의 ALIAS 로 검색된 결과에서 ㅋㅎ3 은 3개로 중복된다.
Distinct를 사용하면 중복을 제거할 수 있다.
사용법
select distinct '중복제거할 칼럼' from test3;
select distinct id from test3;
*에는 중복 제거하는 기준을 알려주지 않았으니 적용되지 않는다
산술 연산
숫자, Date에 할 수 있으며 수학의 4칙연산이 모두 적용된다.
수학처럼 () , *, / , +, - 의 우선순위를 가진다.
select '숫자 또는 Date 칼럼' '산술연산자' as '결과' from '테이블명';
select whtea2 + 5 as '결과' from test3;
select ( 5 * 20) / (whtea2 + 5) as '결과' from test3;
합성 연산
합성 연산자는 문자와 문자를 합성한다.
사용법
Oracle과 MariaDB가 달라 두개 다 써놨다 ( 본인은 MariaDB 사용)
-- Oracle
select id || ' 님' as '아이디' from test3 ;
-- MariaDB
select concat(id, ' 님') as '아이디' from test3 ;
2. Insert ( 삽입 )
데이터를 삽입하는 방법은 두가지가 있다.
- 방법 1 - 모든 칼럼을 명시하는 경우 - 넣을 데이터를 지정해서 할 경우
- 방법 2 - 칼럼을 명시하지 않는 경우 - 테이블의 모든 칼럼에 데이터를 넣는 경우
방법 1
원하는 칼럼을 지정해서 데이터를 넣을 수 있다.
insert into test3 (
num, name, address
) values(
2, '테스트아이디', '테스트주소'
);
해당 insert 구문은 not null 제약조건이 붙은 칼럼에 대해서 insert를 했다.
방법 2
테이블의 모든 칼럼에 데이터를 넣을 수 있다.
insert into test3 values (
1, '테스트아이디', '테스트이름', '테스트주소', 50
);
칼럼을 모두 채워야하며 모두 채우지 않을 시 아래와 같이 사용하면 Error를 발생시킨다.
insert into test3 values(
2, '테스트아이디', '테스트주소'
);
저장된 데이터를 보면,
위는 방법 1 아래는 방법 2를 통해서 저장된 데이터이다.
3. Update (수정)
테이블에 저장된 자료를 수정하고 싶을 때 사용한다.
사용법
UPDATE '테이블명' SET '변경할 칼럼' = '값' [조건문]
update test3 set id = 'ㅋㅎ2' where num = 1;
만약 where 절을 사용하지 않으면 테이블의 모든 Row에 대해서 변경이 이뤄지니 조심!
변경 후 num이 1인 곳에 ㅋㅎ가 ㅋㅎ2로 변경된 걸 볼 수 있다.
4. Delete (삭제)
테이블의 정보를 지우고 싶을 때 사용한다.
사용법
Delete from '테이블명' [조건문]
Delete from test3 where num = 2;
결과
num이 2인 칼럼이 삭제되었다.
update와 마찬가지로 조건문을 사용하지 않으면 테이블의 모든 칼럼에 대해서 삭제가 이뤄지니 조심!