CONCAT_WS() 구분자를 사용해 문자열을 연결한다. 둘 이상의 문자열이 있는 경우에 문자열 사이에 설정 구분자를 넣어주어야 한다. CONCAT()과는 다르게 합쳐지는 문자열에 Null을 포함하여도 Null로 반환하지 않는다. -- CONCAT_WS(구분자, 문자열1, 문자열2, ...) SELECT CONCAT_WS(' ', ci...
[DBMS] 데이터 모델링
데이터 모델링 데이터 모델링이란 정보시스템 구축의 대상이 되는 업무 내용을 분석하여 이해하고 약속된 표기법에 의해 표현하는 걸 의미한다. 그리고 이렇게 분석된 모델을 가지고 실제 데이터베이스를 생성하여 개발 및 데이터 관리에 사용된다. 데이터 모델링 순서 절차 1. 업무 파악 (요구사항 수집 및 분석) 업무 파악은 어떠한 업무를 시작하기 전에 해...
[MySQL] WINDOWING절
Window Function SELECT WINDOW_FUNCTION(ARGUMENTS) OVER( [PARTITION BY 컬럼] [ORDER BY 절] [WINDOWING 절] ) FROM 테이블명; WINDOWING절 WINDOWING절은 함수의 대상이 되는 범위를 지정해주는 역할을 한다. 범위를...
[MySQL] 윈도우 함수(Window Function)
윈도우 함수(Window Function) 그룹 함수들에 대해서 데이터 처리를 간단하게 하기 위한 함수이다. 윈도우 함수는 중첩해서 사용할 수 없다. 윈도우 함수는 OVER 구문이 필수로 포함되어야 한다. 윈도우 함수를 OLAP 함수라고도 한다. 윈도우 함수 분류 분류 종류 ...
문자열 유형 정리
문자열 유형 코딩 테스트에 등장하는 문자열 유형에 대해 정리한 내용이다. 유형1. 회문(Palindrome) 앞뒤가 똑같은 단어나 문장을 의미한다. 대소문자를 구분하지 않는다. def Palinedrome(str): for i in range(len(str) // 2): if str[i] == str[-i-1]: ...
진수 변환법
진수 10잔수 외의 다른 진수는 접두어가 붙는다. 2진수 : 0b 8진수 : 0o 16진수 : 0x 내장함수 val = 13 print(bin(val)) print(oct(val)) print(hex(val)) 0b1101 0o15 0xd foramt 내장함수 #의 유무에 따라 접두어의 유무가 결정된다. b = form...
완전 탐색(Brute Force)
완전 탐색 완전탐색은 가능한 경우의 수를 모두 조사해서 정답을 찾는 방법으로, 무식하게 가능한 것을 다 해보겠다는 의미로 Brute Force라고도 한다. 완전 탐색 종류 1. 브루트포스(Brute Force) 브루트포스 기법은 반복/조건문을 통해 가능한 모든 방법을 단순히 찾는 경우를 말한다. 2. 백트래킹(Backtracking) 백트래킹은 현...
정렬 알고리즘 - 퀵/합병
정렬 알고리즘 버블 정렬(Bubble Sort) 선택 정렬(Selection Sort) 삽입 정렬(Insertion Sort) 퀵 정렬(Quick Sort) 합병 정렬(Merge Sort) 퀵 정렬 O(nlogn) 시간 복잡도를 가진다. 재귀함수를 활용한다. 과정 리스트의 한 요소를 선택해 pivot으로 설정한...
정렬 알고리즘 - 버블/선택/삽입
정렬 알고리즘 버블 정렬(Bubble Sort) 선택 정렬(Selection Sort) 삽입 정렬(Insertion Sort) 퀵 정렬(Quick Sort) 합병 정렬(Merge Sort) 버블 정렬 쉽지만 좋은 알고리즘은 아니다. O(n^2)의 시간 복잡도를 가진다. 과정 배열 [5, 2, 6, 3, 1, 4]가 ...
[NLP] Hugging Face란?
트랜스포머(Transformer) 인공신경망 알고리즘은 크게, 합성곱 신경망(CNN), 순환 신경망(RNN), 트랜스포머(Transformer) 3가지로 나뉘어진다. 트랜스포머는, 2017년 구글이 발표한 논문인 “Attention is all you need”에서 나온 모델로, 셀프 에텐션(Self-Attention)이라는 방식을 사용하는 ...