3 분 소요

관계형 데이터베이스 개요

데이터베이스

  • 간단하게 말하자면 당연히 데이터들이 저장되는 공간
  • 용도와 목적에 맞는 데이터들끼리 모아서 저장한다

관계형 데이터베이스(Relational DataBase => RDB)

  • 관계형 데이터 모델에 기초를 둔 DB이다.
  • 모든 데이터를 2차원 테이블 형태로 표현함.
  • RDBMS는 RDB를 관리 감독하기 위한 시스템이며 우리가 익히 알고 있는 Oracle, SQL Server(MSSQL), MySQL, MariaDB, PstgreSQL등이 있음.

TABLE

  • RDB의 기본 단위이고 일반적으로 DB는 여러 개의 테이블로 구성이 됨.
  • 이렇게 데이터를 저장하는 주된 목적은 다음과 같은 기능을 수행하기 위함.
    1. 테이블 형태로 조회
    2. 변경 또는 삭제

SQL(Strctured Query Language)

  • SQL은 RDB에서 데이터를 다루기 위해 사용하는 언어.

SELECT 문

SELECT

  • 저장되어 있는 데이터를 조회하고자 할 때 사용하는 명령어이다.
  • 컬럼 명에 별도의 별칭인 Alias를 붙여줄 수 있음. Alias 설정시 테이블 명 대신 Alias로 써야됨.
    • ex) SELECT BAND.BAND_NAME FROM BAND;
      • SELECT B.BAND_NAME FROM BAND B;

산술 연산자

  • 수학에서 사용하는 사칙연산의 기능을 가진 연산자이다. NUMBER DATE 유형의 데이터와 같이 사용할 수 있다.
  1. () : 괄호로 우선순위를 조정할 수 있음.
    • : 곱하기.
  2. / : 나누기.
    • : 더하기.
    • : 빼기.
  • 우선순위는[ () ] > [ *, / ] > [ +, - ]이다.

합성 연산자

  • 문자와 문자를 연결 할 때 사용하는 연산자이다.
  • ex) SELECT ‘S’   ‘Q’   ‘L’ AS SQLD FROM DUAL;

함수

문자 함수

  1. CHR(ASCII 코드)

    • 128개의 문자를 숫자로 표현할 수 있도록 정의해 놓은 코드.
    • ASCII 코드를 인수로 입력했을 때 매핑되는 문자가 무엇인지 알려줌.
    • ex) SELECT CHR(65) FROM DUAL;
  2. LOWER(문자열)

    • 문자열을 소문자로 변환해주는 함수.
    • ex) SELECT LOWER(‘JENNIE’) FROM DUAL; => jennie가 나옴.
  3. UPPER(문자열)

    • 당연히 LOWER과는 반대로 문자열을 대문자로 변환해주는 함수.
  4. LTRIM(문자열, [특정 문자]) => []는 옵션임…

    • 특정 문자를 따로 명시해주지 않으면 문자열의 왼쪽 공백을 제거하고, 명시해주었을 경우 문자열을 왼쪽부터 한 글자씩 특정 문자와 비교하여 특정문자에 포함되어 있으면 제거하고 포함되어 있지 않으면 멈춘다.
    • ex) SELECT LTRIM(‘ JENNIE’) FROM DUAL; => ‘JENNIE’
    • ex) SELECT LTRIM(‘블랙핑크’, ‘블랙’) FROM DUAL; => ‘핑크’
  5. RTRIM(문자열, [특정 문자])

    • 4번과 반대라고 보면 됨.
      • ex) SELECT LTRIM(‘ JENNIE ‘) FROM DUAL; => ‘JENNIE’
      • ex) SELECT LTRIM(‘블랙핑크’, ‘핑크’) FROM DUAL; => ‘핑크’
  6. TRIM([위치] [특정 문자] [FROM] 문자열) *[]는 옵션

    • 옵션이 하나도 없을 경우 문자열의 왼쪽과 오른쪽 공백을 제거하고, 그렇지 않을 경우 문자열을 위치(LEADING or TRAILING or BOTH)로 지정된 곳부터 한 글자씩 특정 문자와 비교하여 같으면 제거하고 같지 않으면 멈춘다.
    • LTRIM, RTRIM과는 달리 특정 문자는 한 글자만 지정할 수 있다.
    • ex) SELECT TRIM(‘ JENNIE ‘) FROM DUAL; => JENNIE
    • ex) SELECT TRIM(LEADING ‘블’ FROM ‘블랙핑크’) FROM DUAL ; => 랙핑크
    • ex) SELECT TRIM(TRAILING ‘크’ FROM ‘블랙핑크’) FROM DUAL; => 블랙핑
  7. SUBSTR(문자열, 시작점 [,길이]) *[]는 옵션

    • 문자열의 원하는 부분만 잘라서 반환해주는 함수이다.
    • ex) SELECT SUBSTR(‘블랙핑크제니’, 3, 2) FROM DUAL; => 핑크
    • ex) SELECT SUBSTR(‘블랙핑크제니’, 3, 4) FROM DUAL; => 핑크제니
  8. LENGTH(문자열)

    • 문자열의 길이를 반환해주는 함수이다.
    • ex) SELECT LENGTH(‘JENNIE’) FROM DUAL; => 6
    • ex) SELECT LENGTH(‘블랙핑크’) FROM DUAL; => 4
  9. REPLACE(문자열, 변경 전 문자열 [, 변경 후 문자열]) => []는 옵션.

    • 문자열에서 변경 전 문자열을 찾아 변경 후 문자열로 바꿔주는 함수이다. 변경 후 문자열을 명시해주지 않으면 문자열에서 변경 전 문자열을 제거한다.
    • ex) SELECT REPLACE(‘블랙핑크제니’, ‘제니’, ‘지수) FROM DUAL; => 블랙핑크 지수
    • ex) SELECT REPLACE(‘블랙핑크제니’, ‘블랙’) FROM DUAL; => 핑크제니

숫자 함수

  1. ABS(수)

    • 수의 절대 값을 반환.
  2. SIGN(수)

    • 수의 부호를 반환. 양수면 1, 음수면 -1, 0이면 0을 반환.
  3. ROUND(수, [,자릿수])

    • 수를 지정된 소수점 자릿수까지 반올림하여 반환해주는 함수.
  4. TRUNC(수, [,자릿수])

    • 수를 지정된 소수점 자릿수까지 버림하여 반환해주는 함수.
  5. CEIL(수)

    • 소수점 이하의 수를 올림한 정수를 반환해주는 함수이다.
  6. FLOOR(수)

    • 소수점 이하의 수를 버림한 정수를 반환해주는 함수이다.
  7. MOD(수1, 수2)

    • 수1을 수2로 나눈 나머지를 반환해주는 함수이다.
    • 수1, 수2 모두 다 음수이면 나머지도 그대로 음수값으로 도출된다.

날짜 함수

  1. SYSDATE

    • 현재의 연, 월, 일, 시, 분, 초를 반환해주는 함수.
    • ex) SELECT SYSDATE FROM DUAL; => 2021-09-21 22:08:08
  2. EXTRACT(특정단위 FROM 날짜 데이터)

    • 날짜 데이터에서 특정 단위(YEAR, MONTH, DAY, HOUR, MINUTE, SECOND)만을 출력해서 반환해주는 함수이다.
    • ex) SELECT EXTRACT(YEAR FROM SYSDATE) AS YEAR FROM DUAL;
  3. ADD_MONTHS(날짜 데이터, 특정 개월 수)

    • 날짜 데이터에서 특정 개월 수를 더한 날짜를 반환해주는 함수이다.
    • 이전 달이나 다음 달에 기준 날짜의 일자가 존재하지 않으면 해당 월의 마지막 일자가 반환된다.
    • ex) SELECT ADD_MONTHS(TO_DATE(‘2021-12-31’, ‘YYYY-MM-DD’),-1) AS PREV_MONTH FROM DUAL; => 2021-11-30;

변환 함수

  1. 명시적 형변환과 암시적 형변환

    • 명시적 형변환 : 변환 함수를 사용하여 데이터 유형을 명시적으로 나타냄.
    • 암시적 형변환 : 데이터베이스가 내부적으로 알아서 데이터 유형을 변환함.
  2. 명시적 형변환에 쓰이는 함수

    • TO_NUMBER(문자열)

      • 문자열을 숫자형으로 형변환
    • TO_CHAR(수 or 날짜 [,포멧])

      • 수나 날짜형의 데이터를 포멧 형식의 문자형으로 변환.
    • TO_DATE(문자열, 포멧)

      • 포멧 형식의 문자형 데이터를 날짜형으로 변환해주는 함수.

NULL 관련 함수

  1. NVL(인수1, 인수2)

    • 인수1의 값이 NULL일 경우 인수2를 반환하고 NULL이 아닐 경우 인수1을 반환해주는 함수이다.
  2. NULLF(인수1, 인수2)

    • 인수1과 인수2가 같으면 NULL을 반환하고 같지 않으면 인수1을 반환해주는 함수이다.
  3. COALESCE(인수1, 인수2, 인수3…)

    • NULL이 아닌 최초의 인수를 반환해주는 함수이다.

CASE

  • CASE는 함수보다 구문에 가깝긴 함.
  • 같은 기능을 하는 함수로는 Oracle의 DECODE가 있음.

ex) CASE WHEN SUBWAY_LINE = ‘1’ THEN ‘BLUE’ ㅤㅤㅤWHEN SUBWAY_LINE = ‘2’ THEN ‘GREEN’ ㅤㅤㅤWHEN SUBWAY_LINE = ‘3’ THEN ‘ORANGE’ ㅤㅤㅤ[ELSE ‘GRAY’] END

ex) SELECT SUBWAY_LINE, DECODE(SUBWAY_LINE, ‘1’, ‘BLUE’, ‘2’, ‘GREEN’, ‘3’, ‘ORANGE’, ‘GRAY’) AS LINE_COLOR FROM SUBWAY_INFO;

태그:

카테고리:

업데이트: