devops2-1

남생이·2024년 8월 9일

Robotics

목록 보기
4/8
  • MySQL 데이터 형식
    • Data type으로 표현
    • 30개 정도
    • VARCHAR, CHAR를 많이씀, VARCHAR가 가변길이 문자열을제공하여 유용함
    • TEXT형식이 CHAR 계열보다 장문의 글자 표현




  • 변수의 사용
    • SET @변수명 = value(숫자, 문자열)

  • 데이터 형식과 형변환
    • 데이터 형식 변환 함수
      • CAST(), CONVERT() 함수를 가장 일반적으로 사용
      • 데이터 형식 중에서 가능한 것은 BINARY, CHAR, DATE, DATETIME, DECIMAL, JSON, SIGNED INTEGER,TIME, UNSIGNED INTEGER

  • 암시적인 형 변환: CAST(), CONVERT() 함수를 사용하지 않고 형이 변환되는 것

  • MySQL 내장 함수

    • 제어 흐름함수: 프로그램의 흐름 제어

      • IF(수식, 참, 거짓): 수식이 참 또는 거짓인지 결과에 따라서 2중 분기
      • IFNULL(수식1, 수식2): 수식1이 NULL이 아니면 수식1 반환, NULL이면 수식2 반환
      • NULLIF(수식1, 수식2): 수식1, 2가 같으면 NULL을 반환, 다르면 수식1을 반환
      • CASE~WHEN~ELSE~END
        : CASE는 연산자로 분류, 다중 분기에 사용되므로 내장함수와 함꼐 사용
        CASE 뒤의 값에 따라 WHEN의 수식이 수행, 해당 사항 없다면 ELSE의 수식이 반환
    • 문자열 함수

      • ASCII(아스키 코드): 문자의 아스키 코드값 반환

      • CHAR(숫자): 숫자의 아스키 코드값에 해당하는 문자 반환

      • BIT_LENGTH(str): 할당된 bit 크기 또는 문자 크기 반환

      • CHAR_LENGTH(str): 문자의 개수 반환

      • LENGTH(str): 할당된 byte 수 반환

      • CONCAT(str1, str2): 문자열을 이어줌

      • CONCAT_WS(구분자, str1, str2): 구분자와 함께 문자열을 이어주는 역할

        - ELT(위치, 문자열1, 문자열2,...): 위치에 해당하는 문자열 반환

      • FIELD(찾을 문자열, 문자열1, 문자열2,...): 찾을 문자열의 위치를 찾아 반환, 없으면 0

      • FIND_IN_SET(찾을 문자열, 문자열 리스트): 찾을 문자열을 문자열 리스트에서찾아 위치 반환, 문자열 리스트는 콤마로 구분되어 있고 공백이 없어야 함

      • NSTR(기준 문자열, 부분 문자열): 기준 문자열에서 부분문자열 찾아 그 시작 위치 반환

      • LOCATE(부분 문자열, 기준 문자열): INSTR()과 동일하지만 파라미터 순서가 반대

      • FORMAT(숫자, 소수점 자릿수): 숫자를 소수점 아래 자릿수까지 표현, 1000단위마다 콤마 표시

      • BIN(숫자), HEX(숫자), OCT(숫자): 2진수, 16진수, 8진수의 값을 반환

      • INSERT(기준 문자열, 위치, 길이, 삽입할 문자열): 기준 문자열의 위치부터 길이만큼 지우고 삽입할 문자열 끼워 넣음

      • LEFT(문자열, 길이), RIGHT(문자열, 길이): 왼쪽 또는 오른쪽에서 문자열의 길이만큼 반환

      • UPPER(문자열), LOWER(문자열): 소문자를 대문자로, 대문자를 소문자로 변경

      • LPAD(문자열, 길이, 채울 문자열), RPAD(문자열, 길이, 채울 문자열): 문자열으 길이만 큼 늘린 후에 빈 곳을 채울 문자열로 채움

      • LTRIM(문자열), RTRIM(문자열): 문자열의 왼쪽/오른쪽 공백을 제거, 중간의 공백은 제거되지 않음

      • TRIM(문자열), TRIM(방향 자를문자열 FROM 문자열): 문자열 앞뒤 공백을 모두 없앰, TRIM(방향 자를문자열 FROM 문자열) 에서 방향은 LEADING(앞), BOTH(양쪽), TRAILING(뒤) 으로 표시

        - REPEAT(문자열, 횟수): 문자열을 횟수만큼 반복

      • REPLACE(문자열, 원래 문자열, 바꿀 문자열): 문자열에서 원래 문자열을 찾아서 바꿀 문자열로 바꿈

        - REVERSE(문자열): 문자열의 순서를 거꾸로 바꿈

      • SPACE(길이): 길이만큼의 공백을 반환

      • SUBSTRING(문자열, 시작위치, 길이)/(문자열 FROM 시작위치 FOR 길이)

    • 수학 함수

      • ABS(숫자): 숫자의 절댓값 계산
      • ACOS(숫자), ASIN(숫자), ATAN(숫자), ATAN2(숫자1, 숫자2), SIN(숫자), COS(숫자), TAN(숫자): 삼각 함수와 관련된 함수 제공
      • CEILING(숫자), FLOOR(숫자), ROUND(숫자): 올림, 내림, 반올림 계산
      • CONV(숫자, 원래 진수, 변환할 진수): 숫자를 원래 진수에서 변환할 진수로 계산
      • DEGREES(숫자), RADIANS(숫자), PI ( ): 라디안 값을 각도값으로, 각도값을 라디안 값으로 변환, PI( )는 3.141592 반환
      • EXP(X), LN(숫자), LOG(숫자), LOG(밑수, 숫자), LOG2(숫자), LOG10(숫자): 지수, 로그와 관련된 함수 제공
      • MOD(숫자1, 숫자2) 또는 숫자1 % 숫자2 또는 숫자1 MOD 숫자2: 숫자1을 숫자2로 나눈 나머지 값을 구함
      • POW(숫자1, 숫자2), SQRT(숫자): 거듭제곱값 및 제곱근을 구함
      • RAND( ): RAND( )는 0 이상 1 미만의 실수 구함
        • ‘m<= 임의의 정수 < n’를 구하고 싶다면 FLOOR(m + (RAND( ) * (n-m) ) 사용
      • SIGN(숫자): 숫자가 양수, 0, 음수인지 판별, 결과는 1, 0, -1 셋 중에 하나 반환
      • TRUNCATE(숫자, 정수): 숫자를 소수점을 기준으로 정수 위치까지 구하고 나머지는 버림
    • 날짜 및 시간 함수

      • ADDDATE(날짜, 차이), SUBDATE(날짜, 차이): 날짜를 기준으로 차이를 더하거나 뺀 날짜를 구함
      • DATEDIFF(날짜1, 날짜2), TIMEDIFF(날짜1 또는 시간1, 날짜1 또는 시간2): DATEDIFF( )는 날짜1-날짜2의 일수를 결과로 구함
      • DAYOFWEEK(날짜), MONTHNAME( ), DAYOFYEAR(날짜): 요일(1:일, 2:월~7:토) 및 1년 중 몇 번째 날짜인지 구함
      • LAST_DAY(날짜): 주어진 날짜의 마지막 날짜를 구함
      • MAKEDATE(연도, 정수): 연도에서 정수만큼 지난 날짜 구함
      • MAKETIME(시, 분, 초): 시, 분, 초를 이용해서 ‘시 : 분 : 초’의 TIME 형식 만듦
      • PERIOD_ADD(연월, 개월수), PERIOD_DIFF(연월1, 연월2)
        PERIOD_ADD( )는 연월에서 개월만큼의 개월이 지난 연월 구함
        PERIOD_DIFF( )는 연월1-연월2의 개월수 구함
      • QUARTER(날짜): 날짜가 4분기 중에서 몇 분기인지를 구함
      • TIME_TO_SEC(시간): 시간을 초 단위로 구함

  • 피벗의 구현

    • 피벗(pivot): 한열에 포함된 여러 값 출력, 이를 여러 열로 변환하여 테이블 반환식 회전, 필요하면 집계까지 수행
  • JSON 데이터

    • JSON (JavaScript Object Notation)이란?
      웹과 모바일 응용프로그램 등과 데이터 교환하기 위한 개방형 표준 포맷
      속성(Key) 과 값(Value)으로 쌍을 이루며 구성
      JavaScript 언어에서 파생
      특정한 프로그래밍 언어에 종속되어 있지 않은 독립적인 데이터 포맷
      포맷이 단순하고 공개되어 있기에 거의 대부분의 프로그래밍 언어에서 쉽게 읽거나 쓸 수 있도록 코
      딩 가능
      MySQL 5.7.8부터 지원
      *MySQL 8.0에서는 인라인 패스라 불리는 → 연산자 및 JSON_ARRAYAGG(), JSON_OBJECTAGG(),JSON_PRETTY(), JSON_STORAGE_SIZE(), JSON_STORAGE_FREE(), JSON_MERGE_PATCH()등의 함수가 추가됨

  • 조인(Join)
    두 개 이상의 테이블을 서로 묶어서 하나의 결과 집합으로 만들어 내는 것

    • 데이터 베이스의 테이블

      • 중복과 공간 낭비를 피하고 데이터의 무결성을 위해서 여러 개의 테이블로 분리하여 저장
      • 분리된 테이블들은 서로 관계를 가짐
      • 1대 다 관계가 보편적
    • INNER JOIN : 조인 중 가장 많이 사용되는 조인

    • OUTER JOIN : 조인의 조건에 만족되지 않는 행까지도 포함시키는 것

      - LEFT OUTER JOIN : 왼쪽 테이블의 것은 모두 출력되어야 한다로 이해, 줄여서 LEFT JOIN으로 쓸수있음
      - RIGHT OUTER JOIN : 쪽 테이블의 것은 모두 출력되어야 한다로 이해

    • CROSS JOIN(상호 조인): 한쪽 테이블의 모든 행들과 다른쪽 테이블의 모든 행을 조인시키는 기능

      • 테스트로 사용할 많은 용량의 데이터를 생성할 때 주로 사용
      • ON구문을 사용할 수 없음
      • 대량의 데이터를 생성하면 시스템이 다운되거나 디스크 용량이 모두 찰 수 있어 COUNT(*)함수로 개수만 카운트
      • CROSS JOIN의 결과 개수 = 두 테이블 개수를 곱한 개수
    • SELF JOIN(자체 조인)

      • 자기 자신과 자기 자신이 조인한 다는 의미
    • UNION/UNION ALL/NOT IN/IN

      • 두 쿼리의 결과를 행으로 합치는 것

  • IF...ELSE : 조건에 따라 분기, 한문장 이상 처리되어야 할 때 BEGIN...END로 묶기

    • 2중 분기
  • CASE : 조건에 따라 분기

    • 다중분기
    • 조건에 맞는 WHEN이 여러개더라도 먼저 조건이 만족하는 WHEN처리
    • SELECET문에서 많이 사용
    • 여러 분기
  • WHILE문 : 해당 부울식이 참인 동안에 계속 반복되는 반복문

    • ITERATE : CONTINUE와 같은 기능
    • LEAVE : BREAK와 같은 기능
  • 오류처리




profile
공부하는 거북이

0개의 댓글