MySQL 조작어 (Data Manipulation Language)


1. MySQL 조작어


조작어는 크게 4가지 SELECT(선택), INSERT(삽입), UPDATE(수정), DELETE(삭제)로 나뉜다.
이 외에 자주사용되는 키워드들과 엮어 세부 카테고리로 나누었다.
세부 키워드는     와 같이 하이라이트 처리

2.1 SELECT

데이터의 선택

SELECT *
FROM ALPHABET abc

필요한 내용들(컬럼 이름)을 선택하고, SELECT
ALPHABET이라는 이름을 가진 테이블에서 불러온다는 의미FROM ALPHABET
여기서, *는 전체 컬럼을 불러온다는 의미이므로,
해당 질의어는 ALPHABET테이블 전체를 불러오게 된다. abc는 ALPHABET테이블의 별칭으로 같은 의미를 가진다. 아래의 AS구문과 동일

2.1.1 WHERE (조건문)

수식기호를 조건으로 둘 수 있다.(비교 및 수리/논리연산)
프로그램 언어들과 다르게 등치기호를 = 하나만 쓴다.
다중조건은 ANDOR로 묶어줘야 한다.

LIKE
LIKE는 해당 내용과 유사한지 판별하는 구문
"%keyword%"의 형식으로 입력한다면, 해당 내용을 포함하는지 확인할 수 있다. 해당 구문은 단 1개의 조건(컬럼 OR 문자열)과만 비교 가능하며, OR 로 연결한다고 해서 여러가지 문자열을 검색하지 않는다.
이는, 해당 비교조건이 컬럼일 때 OR로 묶이는 범위의 모호성을 배제하고
여러가지 Colume의 비교를 하나의 WHERE문을 묶어줄 수 있게한다.

SELECT *
FROM REGISTER reg
WHERE NAME LIKE "%Tom%"
SELECT *
FROM REGISTER reg
WHERE ADDRESS LIKE CITY
/* WHERE ADDRESS LIKE CITY OR CONTRY */
/* 해당 비교문은  */
/* WHERE [ADDRESS LIKE CITY] OR [CONTRY] 로 동작함 */

REGEXP (정규화)
정규화를 통해 특정 키워드가 포함되었는지 파악 가능하다.

REGEXP_LIKE (정규화 비교)
정규화를 통해 특정 키워드가 포함되었는지 파악 가능하다.

2.1.3 LIMIT (출력제한)

정렬갯수에 제한을 걸고싶을 때 사용 LIMIT 10 과 같이 사용하면 된다

2.1.4 AS & DISTINCT

AS : 컬럼명을 변경하고 싶을 때 사용.
DISTINCT : 중복된 값을 제거하고 싶을 때.

SELECT COUNT(DISTINCT NAME) AS nameNum
FROM TABLE

중복된 NAME을 제거한 개수를 nameNum 컬럼으로 제공

count
96


2.1.4 IFNULL

해당 값이 NULL일때, 대체하여 입력할 값

SELECT PT_NAME, PT_NO, GEND_CD, AGE, IFNULL(TLNO, 'NONE') AS TLNO
FROM PATIENT WHERE AGE <= 12 AND GEND_CD = "W" ORDER BY AGE DESC, PT_NAME ASC

TLNO가 NULL일때, “NONE” 출력

*추가로, NULL값을 판단할때는 =가 아닌 IS를 사용해야 한다.

2.2 JOIN

결합구문은 여러 테이블의 레코드를 조합하여, 하나로 표현할 수 있게 해준다.
기본적으로 아래 네가지 결합을 규정한다.

INNER JOIN OUTER JOIN LEFT JOIN RIGHT JOIN

2.2.1 CROSS JOIN

교차조인은 곱집합을 반환한다.
A 테이블의 각 행과 B 테이블의 각 행을 곱연산한 결과값을 반환한다.
따라서, 결과 테이블의 행은 (A행 수*B행 수)가 된다.

2.2.2 INNER JOIN

내부조인은 가장 흔한 결합방식으로, A와 B테이블에 일치하는 결과를 가진 것만 반환한다.

SELECT *
FROM A INNER JOIN B
ON A.ID = B.ID;

A테이블의 ID와 B테이블의 ID가 일치하는 내용만 반환
(일치하지 않으면 제외된다)

테이블 1 INNER JOIN 테이블 2 ON 일치조건(AND로 결합)

2.2.3 OUTER JOIN

LEFT JOIN & RIGHT JOIN

왼쪽/오른쪽 조인은 외부조인의 종류로서, 해당하는 방향의 테이블을 최소 1번씩은 출력한다.

FULL OUTER JOIN

완전 외부 조인은, 양측 테이블의 내용을 모두 최소 한번씩은 출력하게 하는 외부조인이다.
모든 결과값을 반환하는 방식.(CROSS JOIN과는 다르다)
일치하는 결과값이 없더라도, 해당 데이터는 NULL로 반환된다.
결과 테이블의 행은, (A행 수 + B행 수 - 겹치는갯수)가 된다.

HAVING 조건문

HAVING은 SUM, COUNT등과 결합하여 GROUP된 집합에서 필터링 조건을 추가한다.

DATEDIFF함수

3. 연관문서 & 참고자료


연관포스팅

0. SQL 개요
2. MySQL 정렬&분류

참고자료

  1. PostgreSQL 키워드
  2. MySQL 키워드
  3. Oracle 키워드

You might also enjoy