본문 바로가기
데이터베이스/SQLD

[SQLD 도전기] SQL 기본(3) - DML(Data Manipulation Language)

by 썬키 2022. 10. 12.

본문 내용은 모두 필자가 공부하며 직접 정리한 내용입니다.

Kdata 데이터자격검정의 SQL 개발자(SQLD) 가이드를 참고하였습니다.

 

─지난 글 보기─

 

[SQLD 도전기] SQL 기본(2) - DDL(Data Definition Language)

본문 내용은 모두 필자가 공부하며 직접 정리한 내용입니다. Kdata 데이터자격검정의 SQL 개발자(SQLD) 가이드를 참고하였습니다. ─지난 글 보기─ [SQLD 도전기] SQL 기본(1) - 관계형 데이터베이스

itsmesunky.tistory.com

과목 2 SQL 기본 및 활용

 

제 1장 SQL 기본

 

제 3절 DML(Data Manipulation Language)

ㆍ만들어진 테이블에 관리하기를 원하는 자료들을 입력, 수정, 삭제, 조회할 때 사용하는 명령어

 

1. INSERT

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

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

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

ㆍ첫 번째 유형은 테이블의 칼럼을 정의할 수 있는데, 이 때 칼럼의 순서는 테이블의 칼럼 순서와 매치할 필요는 없다.

정의하지 않은 칼럼은 Default로 NULL 값이 입력된다.

 

2. UPDATE

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

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

 

3. DELETE

ㆍ테이블의 정보가 필요 없게 되었을 경우 데이터 삭제를 수행한다.

ㆍFROM 문구는 생략이 가능한 키워드이다.

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

 

데이터베이스가 DDL 명령어와 DML 명령어를 처리하는 방식
더보기

- DDL(CREATE, ALTER, RENAME, DROP) 명령어

: 직접 데이터베이스의 테이블에 영향을 미치기 때문에 DDL 명령어를 입력하는 순간

명령어에 해당하는 작업이 즉시(Auto Commit)완료 된다.

 

-DML(INSERT, UPDATE, DELETE, SELECT) 명령어

: 조작하려는 테이블을 메모리 버퍼에 올려놓고 작업을 하기 때문에

실시간으로 테이블에 영향을 미치는 것은 아니다.

버퍼에서 처리한 DML 명령어가 실제 테이블에 반영되기 위해서는

COMMIT 명령어를 입력하여 트랜잭션을 종료해야 한다.

 

SQL Server의 경우 : DML 명령어도 Auto Commit으로 처리되기 때문에

실제 테이블에 반영하기 위해 COMMIT 명령어를 입력할 필요가 없다.

 

4. SELECT

ㆍ사용자가 입력한 데이터는 언제라도 조회가 가능하다.

SELECT [ALL/DISTINCT] 보고 싶은 칼럼명, 보고 싶은 칼럼명, ...
FROM 해당 칼럼들이 있는 테이블명; 

- ALL : Default 옵션이므로 별도로 표시하지 않아도 된다. 중복된 데이터가 있어도 모두 출력한다. 
- DISTINCT : 중복된 데이터가 있는 경우 1건으로 처리해서 출력한다.

 

- WILDCARD 사용하기

해당 테이블의 모든 칼럼 정보를 조회하고 싶을 경우에는 와일드카드로 애스터리스크(*)를 사용하여 조회할 수 있다.

SELECT * 
FROM 테이블명;

 

- ALIAS 부여하기

ㆍ조회된 결과에 일종의 별명(ALIAS, ALIASES)을 부여해서 칼럼 레이블을 변경할 수 있다.

ㆍ칼럼명 바로 뒤에 온다.

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

[예제] 
SELECT PLAYER_NAME AS 선수명, POSITION AS 위치, HEIGHT AS 키, WEIGHT AS 몸무게 
FROM PLAYER; 

칼럼 별명에서 AS를 꼭 사용하지 않아도 되므로, 
아래 SQL은 위 SQL과 같은 결과를 출력한다. 
SELECT PLAYER_NAME 선수명, POSITION 위치, HEIGHT 키, WEIGHT 몸무게 
FROM PLAYER;

 

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

[예제] 
SELECT PLAYER_NAME "선수 이름", POSITION "그라운드 포지션", HEIGHT "키", WEIGHT "몸무게" 
FROM PLAYER;

 

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

- 산술 연산자

ㆍNUMBER, DATE 자료형에 대해 적용되며 일반적으로 수학에서의 사칙연산과 동일하다.

[예제] 
SELECT PLAYER_NAME 이름, HEIGHT - WEIGHT "키-몸무게" 
  FROM PLAYER;

 

- 합성(CONCATENATION) 연산자

ㆍ문자와 문자를 연결하는 합성 연산자를 사용하면 별도의 프로그램 도움 없이도

SQL 문장만으로도 유용한 리프토를 출력할 수 있다.

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

ㆍ문자와 문자를 연결하는 경우 + 표시에 의해 이루어진다. (SQL Server)

ㆍ두 벤더 모두 공통적으로 CONCAT (string1, string2) 함수를 사용할 수 있다.

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

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

출력 형태) 선수명 선수, 키 cm, 몸무게 kg 
예) 박지성 선수, 176 cm, 70 kg

[예제] Oracle 
SELECT PLAYER_NAME || '선수,' || HEIGHT || 'cm,' || WEIGHT || 'kg' 체격정보 
FROM PLAYER;

[예제] SQL Server 
SELECT PLAYER_NAME +'선수, '+ HEIGHT +'cm, '+ WEIGHT +'kg'체격정보 
FROM PLAYER;

 

 

다음에는 TCL에 관한 내용을 정리하여 포스팅하겠습니다.

댓글