카테고리 없음

SQLD 요약 - DML

비뀨_ 2023. 1. 25. 18:05

원본

DML( Data Manipulation Language : 데이터 조작어)

DML은 테이블의 자료들을 입력, 수정, 삭제, 조회하는, 데이터를 조작한다.

 

혹시나 테이블 생성하는 법을 모른다면 이전글을 보자.

https://beetr.tistory.com/85

 

SQLD 요약 - DDL

원본 DDL은 이전글에서도 짧게 설명했듯이 데이터 정의어 (Data Definition Language)이다. 저의 사용 DB는 mariadb이고, MySQL, Oracle과 큰 차이가 없다. https://beetr.tistory.com/84 SQLD 요약 - 관계형 데이터베이스

beetr.tistory.com

 

본인은 MariaDB를 사용하고, DML에서 SQL과 차이는 거의 없지만 다른 부분은 따로 써놨다.

 

예제로 연습할 테이블의 구조다.

1. Select ( 조회 )

먼저 데이터를 조회하는 구문을 알아보자.

먼저 DDL을 통해 테이블을 새로 만들고 조회해보자.

 

사용법

Select '조회할 칼럼' From '테이블명';

select '칼럼1','칼럼2' ... '칼럼6' from '테이블명'
select * from test3; -- *은 모든이란 뜻을 가진다 읽는 법은 애스터리스크(별표) 또는 와일드카드
select id from test3;

좌 = * , 우 = id만 조회

나는 조회를 위해서 데이터를 넣었다.

테이블을 만들고 나서는 데이터가 아무것도 없기 때문에, 데이터가 안나오는게 당연하다.

아래 다른 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와 마찬가지로 조건문을 사용하지 않으면 테이블의 모든 칼럼에 대해서 삭제가 이뤄지니 조심!