Notice
Recent Posts
Recent Comments
12-12 16:21
«   2024/12   »
1 2 3 4 5 6 7
8 9 10 11 12 13 14
15 16 17 18 19 20 21
22 23 24 25 26 27 28
29 30 31
Archives
Today
Total
관리 메뉴

-

[SQLD] #014 SQL 기본 - DML 본문

SQLD

[SQLD] #014 SQL 기본 - DML

choiht 2021. 4. 29. 17:54
반응형

목차

1. INSERT

2. UPDATE

3. DELETE

4. SELECT

5. 산술 연산자와 합성 연산자

 

 

 


 

 

 

DML(Data Manipulation Language) : 만들어진 테이블에 자료들을 입력/수정/삭제/조회 하는 언어

 

 

 

1. INSERT

테이블에 데이터를 입력하는 방법은 두가지 유형이 있고, 한 번에 한 건만 입력된다. 

INSERT INTO 테이블명 (COLUMN_LIST) VALUES (COLUMN LIST에 넣을 VALUE_LIST);

INSERT INTO 테이블명 VALUES (전체 COLUMN에 넣을 VALUE_LIST);

 

해당 칼럼명과 입력되어야 하는 값을 서로 1:1로 매핑해서 입력한다. 

해당 칼럼의 데이터 유형이 CHAR나 VARCHAR2 등 문자 유형일 경우 ' (single quotation)으로 입력한다. 숫자일 경우 붙이지 않는다. 

 

첫번째 유형은 테이블의 칼럼을 정의할 수 있는데, 이 때 칼럼의 순서는 테이블의 칼럼 순서와 매치할 필요는 없고 정의하지 않은 칼럼은 NULL 값이 입력된다. 단 PK나 NOT NULL로 지정된 칼럼은 NULL이 허용되지 않는다. 

 

두번째 유형은 모든 칼럼에 데이터를 입력하는 경우로, 칼럼의 순서대로 빠짐없이 데이터가 입력되어야한다. 

 

 

 

 

 

 

 

 

 

 

2. UPDATE

입력된 정보를 수정해야하는 경우 사용한다. 

UPDATE 테이블명 SET 수정할칼럼명 = 수정되기를 원하는 새로운 값;

 

 

 

 

 

 

 

3. DELETE

테이블 안에 있는 데이터를 삭제한다. 

DELETE [FROM] 삭제를 원하는 정보가 들어있는 테이블명;

 

DDL 명령어의 경우 (CREATE, ALTER, RENAME, DROP) 직접 데이터베이스 테이블에 영향을 미치기 때문에 명령어 입력시 곧바로 완료된다. 하지만 DML 명령어의 경우 (INSERT, UPDATE, DELETE, SELECT) 조작하려는 테이블을 메모리버퍼에 올려놓고 작업하기 때문에 실시간으로 테이블에 영향을 미치진 않는다. 

따라서 DML 명령어가 실제 테이블에 반영되기 위해서는 COMMIT 명령어를 입력하여 트랜잭션을 종료해야한다. 

 

그러나 SQL Server의 경우 DML의 경우도 AUTO COMMIT으로 처리된다. 

 

 

 

 

 

 

 

 

 

4. SELECT

SELECT는 사용자가 입력한 데이터를 조회할 수 있게 해준다.

SELECT [ALL/DISTINCT] 보고싶은 칼럼명 FROM 테이블명;

 

 

DISTINCT 옵션

테이블의 특정 칼럼의 값을 중복없이 조회한다.

SELECT DISTINCT 칼럼명 FROM 테이블명;

 

 

WILDCARD 사용하기

테이블의 모든 칼럼 정보를 볼 수 있다. 

SELECT * FROM 테이블명;

 

 

 

ALIAS 부여하기

조회된 결과에 별명을 부여하여 칼럼 레이블을 변경할 수 있다. 

- 칼럼명 바로 뒤에 온다.

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

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

SELECT 컬럼명 [AS] 컬렴별명, ... FROM 테이블명;

 

 

 

 

 

 

 

 

 

 

 

 

 

5. 산술 연산자와 합성 연산자

산술 연산자

산술 연산자는 NUMBER와 DATE 자료형에 대해 적용되며 일반적으로 수학에서의 사칙연산과 동일하다. 그리고 우선순위를 위한 괄호 적용이 가능하다. 

 

 

 

 

 

합성 연산자

합성 연산자는 문자와 문자를 연결하여 데이터를 출력한다. 

-- ORACLE
SELECT 칼럼1 || '문자열' || 칼럼2 FROM 테이블명;

-- SQL Server
SELECT 칼럼1 + '문자열' + 칼럼2 FROM 테이블명;

 

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

- Oracle과 SQL Server 모두 공통적으로 CONCAT(string1, string2) 함수를 사용할 수 있다. 

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

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

 

 

 

 

 

 

As-Is : 비절차적 데이터 조작어(DML)는 사용자가 무슨(What) 데이터를 원하는지만을 명세한다. 

To-Be : 절차적 데이터 조작어(DML)은 사용자가 어떻게(How) 데이터를 접근해야하는지를 명세한다.

 

 

 

 

 

 

 

 


출처
이 글의 내용은 모두 한국데이터베이스진흥원이 출판한 SQL 전문가 가이드 2013 Edition을 기본으로 한다.

 

 

 

반응형
Comments