IT/SQLD(SQL개발자)

[SQLD] DML(Data Manipulation Language)

pandada 2019. 6. 24. 09:59
반응형

DML(Data Manipulation Language)

DML(Data Mainpulation Language)

  -> 데이터 조작어

  -> 테이블에 관리하기를 원하는 자료들을 입력, 수정, 삭제, 조회하는 명령어들 

 

 

자 일단 시작하기 전에 이번 챕터를 같이 해줄 제가 미리 만들어놓은 테이블을 소개합니다

CREATE TABLE `my_contacts` (`last_name` varchar(30) , `first_name` varchar(20) , `email` varchar(50) , `gender` char(1), `birthday` date , `profession` varchar(50), `location` varchar(50), `status` varchar(20), `interests` varchar(100), `seeking` varchar(100)); 

 

< 제작 테이블 소개 및 내용 >

 

 

INSERT

  -> 데이블에 데이터를 입력하는 것.

  -> 방법은 2가지가 있습니다.

방식 

쿼리

 insert into my_contacts values ('minsu','kim','minssdf@naver.com','M','1991-05-07','student','korea','couple') 

 insert into my_contatcs (last_name,email,gender) values ('younghwi','young@naver.com','F')

1번 : 테이블의 각 칼럼들을 명시해주지 않은 대신 모든 칼럼에 값을 입력해준다.

2번 : 테이블의 모든 칼럼들을 명시하지 않고 내가 넣고 싶은ㅇ 칼럼에만 데이터를 넣어 줄 수도 있다. 단, 2번 같은 경우에는 내가 입력하지 않은 칼럼이 NOT NULL 이라면 오류가 생성되므로 이럴경우에는 DEFAULT를 설정해주거나 값을 빼지 않고 직접 입력해준다.

 

 

 

UPDATE

  -> 입력한 정보 중에 잘못 입력되거나 변경이 발생하여 정보를 수정해야하는 경우 사용

 update my_contacts set email='수정합니다.' where last_name='younghwi';

UPDATE 테이블명 set 수정할칼럼='수정할내용' where 조건절칼럼='조건칼럼내용';

이렇게 해주시면 됩니다.

 

주의!

UPDATE를 잘못 사용할 경우에는 모든 데이터가 바뀔수가 있으므로 조심히 신중하게 조건절을 준 다음에 사용해 줍니다.

 

 

 

DELETE

  - 테이블의 정보가 필요 없게 되었을 경우 데이터 삭제를 수행할 때 쓰는 명령어

 delete from my_contacts where last_name='younghwi';

DELETE FROM 테이블명 where 조건절칼럼='조건 값';

 

주의!

UPDATE와 마찬가지로 조건을 잘못 줄 경우 엉뚱한 값이 삭제될 수가 있으므로 신중히 사용합니다.

 

* 테이블 전체를 삭제하고 싶은 경우.

  -> DELETE FROM 테이블명;

  -> TRUNCATE 테이블명;

  -> 2가지 방법이 있지만 시스템 부하가 적은 TRUNCATE 를 쓰는 것을 추천합니다.

  -> 그러나 TRUNCATE 의 경우 삭제된 데이터의 로그가 없으므로 ROLLBACK이 불가능하다.

 

 

 

SELECT

  -> 사용자가 입력한 데이터를 조회하기 위한 명령문

< 테이블 구조 >

현재 이런 구조를 가진 테이블에 어떤 값이 입력되있는지 알고 싶다?!

그럴때 쓰는 명령어가 SELECT 이다.

 

 SELECT * FROM my_contacts;

my_contacts 테이블의 모든 내용을 보고싶다.

 SELECT last_name,first_name,email from my_contacts;

my_contacts 테이블의 last_name,first_name,email 칼럼의 내용만 보고싶다.

< 3가지 칼럼만 볼 수 있는 내용 >

 

바로 위의 실행 결과 3가지 칼럼만 나왔다.

 

 

DISTINCT 옵션

  - 중복된 값을 빼고 나머지를 보여준다.

 select distinct fist_name from my_contacts;

 

< 중복값 제거 후 select>

first_name 의 전체 값 16개가 나와야 하지만

distinct를 사용했으므로 Anne의 중복값이 없어지고 Anne이 1개만 나왔다.

이럴때 쓰는게 DISTINCT 이다.

 

 

ALIAS

  - 칼럼에 대한 별명을 부여한다.

  - 칼럼명 바로 뒤에 온다.

  - 칼럼명과 ALIAS 사이에 AS,as 키워드를 사용할 수도 있다. 안써도 가능하다.

  - 이중 인용부호는 ALIAS가 공백, 특수문자를 포함할 경우와 대소문자 구분이 필요할 경우 사용됨.

< Alias 적용 전 >

 

이렇게 되있는걸 이름, 성, 이메일 한글로 바꾸고 싶다 그럴때 쓴다.

 

< Alias 적용 후 >

 

이렇게 바꿔진다.

위의 select 문은 제가 2개는 as 붙이고 하나는 붙이지 않았습니다.

잘 보시고 편할거 같다는 생각이 드시는 것을 사용하면 됩니다.

저기서 본 결과 ALIAS 사용시 문자인데도 ( ' ' ) 를 안붙여도 된다는사실! 붙이나 안붙이나 똑같습니다.ㅎ

 

 

 

산술 연산자와 합성 연산자

  - NUMBER 와 DATE 자료형에 대해 적용되며 일반적으로 수학의 4칙 연산과 동일

 

산술연산자 

제가 이번에 가져온 테이블로는 안되므로...

그냥 대충 예시 문장으로 설명하겠습니다.

 select name, height-weight as "키-몸무게" from my_BMI;

이런식으로 써주시면 됩니다.

 

합성연산자

  - 문자와 무자를 연결하는 경우 2개의 수직바(||)에 의해 이루어진다.

  - 문자와 문자를 연결하는 경우 + 표시에 의해 이루어진다.

  - CONCAT(string1,string2) 함수를 사용할 수 있다.

  - 칼럼과 문자 또는 다른 칼럼과 연결시킨다.

  - 문자 표현식의 결과에 의해 새로운 칼럼을 생성한다.

 

먼저 이 내용을 하기 위해 테이블 부터 약간 수정해보도록 하겠습니다.

< 테이블 수정 후 >

 

테이블에 total_name 이라는 칼럼을 추가 했습니다.

 

< Concat 사용 내용 >

CONCAT을 이용하여 total_name 칼럼에 first_name 과 last_name 을 붙여 내용을 넣었습니다.

 

여기서 위의 그림을 보면 CONCAT이 꼭 2개만 합칠 수 있는 것이 아니라 3개도 합칠 수 있다는 사실!

중요합니다^^

반응형

'IT > SQLD(SQL개발자)' 카테고리의 다른 글

[SQLD] WHERE  (0) 2019.06.27
[SQLD] TCL (Transaction Control Language)  (1) 2019.06.26
[SQLD] DDL(Data Definition Language)  (0) 2019.06.23
[SQLD] 관계형 데이터베이스 개요  (0) 2019.06.22
[SQLD] 분산 데이터베이스와 성능  (0) 2019.06.21