전체 글 18

15. EXISTS : 조건에 해당하는 ROW의 존재 유무 확인

EXISTS 조건에 해당하는 ROW의 존재 유무를 확인 'SELECT 절'까지 수행하지 않기 때문에 In에 비해 속도나 성능면에서 더 좋음 EXISTS는 WHERE 절에서 주로 사용하며, WHERE 절에서 IN을 사용하는 것과 같은 결과를 주며, JOIN Query로도 동일한 결과를 낼 수 있음 해당하는 데이터가 없는 경우를 찾을 때는 NOT EXISTS 를 사용할 수 있음 IN의 경우 실제 존재하는 데이터의 값을 비교하기 때문에 EXISTS 보다 속도가 느린 경우가 있음 예시 TABLE: team_epl - EPL 팀 no name 1 Arsenal 2 Liverpool 3 Manchester United 4 Manchester City 5 Chelsea 6 Tottenham 7 Newcastle ....

MySQL 2023.07.27

05. 논리 연산(로직 게이트)

논리 연산(Logic Gate) - 컴퓨터의 가장 기초적인 논리 구조 - 논리 입력(True 또는 False) 후 논리연산(AND, OR, ...)을 거쳐 논리 출력을 얻는 회로 - 이후 분석 방법에 대한 학습을 위해 필요한 기초지식 딥러닝 초기, 마빈 민스키(Marvin Minsky)에 의해 퍼셉트론(Perceptron)이 AND와 OR 문제는 해결할 수 있지만 NOR 문제를 해결할 수 없기 때문에 선형적 계산의 한계를 극복하기 위해 다중 퍼셉트론(Multi-Layer Perceptron, MLP)이 필요하다는 주장을 할 때에도 언급됨 0. 논리 게이트 형식 게이트 종류 입력 입력 입력 출력 출력 입력 출력 출력 1. AND 게이트 - 입력이 모두 1이어야 1이 출력됨 AND 0 1 0 0 0 1 0 ..

02. 데이터 수집 - 오픈 데이터

오픈데이터 누구나 활용할 수 있도록 데이터를 만들어 공개한 것 사례 1) 국가통계포털(https://kosis.kr) 2) 머신러닝 알고리즘 벤치마크 목적으로 공개한 데이터 - 어바인 대학 머신러닝 저장소 / UC Irvine Machine Learning Repository(https://archive.ics.uci.edu/ml/index.php) 3) 특정 분야의 오픈형 데이터베이스 - IMDB 영화 데이터베이스(https://www.imdb.com/interfaces) 4) 데이터 과학 연구, 수행 수준 진단을 위한 서비스 - Kaggle(https://www.kaggle.com) - Deep Analytics(https://deepanalytics.jp) 데이터 수집 예시: 국가통계포털 '국가통계..

01. 데이터 과학 입문

데이터 활용 프로세스 - 데이터 수집 및 처리 - 분석(통계 기반의 분석, 머신러닝/딥러닝) - 의사 결정과 개발까지 연결 배경지식 - 수학 - 알고리즘 - 하드웨어 지식 - 프로그래밍 스킬 - 통계학 - 머신러닝 - 비즈니스 과제 연결 데이터 과학 수행의 흐름(Workflow) 01) 가설 수립 02) 데이터 수집 데이터 수집 방법 | 오픈데이터 - 오픈 데이터: 누구나 활용할 수 있도록 공개된 데이터 - 오픈 데이터 사례: 한국 국가통계 포털(https://kosis.kr) 데이터 수집 방법 | API - Web API(Application Programming Interface) - 시스템이 보유한 데이터를 다른 시스템도 활용할 수 있도록 공개하는 기술 - API 사례: 대학 정보공시(https:/..

14. JOIN(두 개 이상의 테이블을 참조)

관계가 있는 두 개 이상의 테이블을 연결하여 데이터를 조회하는 작업을 진행할 때 JOIN을 사용함 INNER JOIN(내부조인) - INNER JOIN 또는 JOIN SELECT TABLE1.userid, COUNT(*) FROM TABLE1 INNER JOIN TABLE2 ON TABLE1.userid = TABLE2.userid WHERE ~ ; 참조 - GROUP BY를 사용하거나, DISTINCT 를 이용하여 중복값을 제거할 수 있음 SELECT DISTINCT TABLE1.userid FROM TABLE1 INNER JOIN TABLE2 ON TABLE1.userid = TABLE2.userid WHERE ~ ; EXISTS - JOIN을 사용하지 않고 WEHRE 절에 EXISTS문을 사용하여 ..

MySQL 2022.05.03

13. 피벗(Pivot)

아래와 같은 테이블이 있다고 가정한다. TABLE Name: football_heritage id team trophy value etc 1 레알 마드리드 LEAGUE 25 20C 2 FC 바르셀로나 LEAGUE 14 20C 3 바이에른 뮌헨 LEAGUE 20 20C 4 유벤투스 LEAGUE 36 20C 5 리버풀 LEAGUE 18 20C 6 AC밀란 LEAGUE 14 20C 7 레알 마드리드 CHAMPIONS LEAGUE 13 - 8 FC 바르셀로나 CHAMPIONS LEAGUE 5 - 9 바이에른 뮌헨 CHAMPIONS LEAGUE 6 - 10 유벤투스 CHAMPIONS LEAGUE 2 - 11 리버풀 CHAMPIONS LEAGUE 6 - 12 AC밀란 CHAMPIONS LEAGUE 7 - 13 레알..

MySQL 2022.05.03

12. 숫자 함수 & 날짜 시간 함수

01. 숫자 함수 ABS(숫자): 절대값 SELECT ABS(-120) ; 결과: 120 CEILING(숫자, 자리수): 올림 FLOOR(숫자, 자리수): 버림 ROUND(숫자, 자리수): 반올림 - 자리수가 양수일 때, 소수점 O번째를 의미 - 자리수가 음수일 때, 1의 자리 / 10의 자리 / ... 를 의미 SELECT CEILING(1230, -2) ; 결과: 1300 - 자리수 '-2' 는 십의자리를 의미함 - 십의 자리에서 올림하여 1300 출력 SELECT FLOOR(1235, -1) ; 결과: 1230 - 자리수 '-1' 은 일의자리를 의미함 - 일의 자리에서 버림하여 1230을 출력 SELECT ROUND(1234.5678, 3) ; 결과: 1234.57 - 자리수 3은 소수점 셋째자리를..

MySQL 2022.05.03

11. 문자열 함수(CONCAT, CONCAT_WS, FORMAT, LEFT, RIGHT, SUBSTRING_INDEX)

CONCAT - 문자열을 합칠 때 사용 SELECT CONCAT( '2022', '_', '99' ) ; 결과: '2022_99' CONCAT_WS - 문자열 사이에 구분자를 넣어 합칠 때 SELECT CONCAT_WS( '_', '2022', '99', 'ED103') ; 결과: '2022_99_ED103' FORMAT - 소수점 자릿수까지 표현 SELECT FORMAT( 123.45678, 3) ; 결과: 123.456 LEFT / RIGHT - 값의 왼쪽 또는 오른쪽으로부터 길이 만큼 반환 SELECT LEFT(ABCDEFG, 3) ; 결과: ABC SELECT RIGHT(ABCDEFG, 3) ; 결과: EFG SUBSTRING - 시작위치부터 길이만큼 문자열을반환 SELECT SUBSTRING( ..

MySQL 2022.05.03

10. 제어 흐름(IF, IFNULL, NULLIF, CASE~ WHEN~)

01. IF / 수식이 참 또는 거진인지 결과에 따라서 2중 분기함 SELECT IF(조건, '참', '거짓') FROM ~ ; 결과 - 참 또는 거짓 02. IFNULL / 수식이 NULL이 아니면 수식1이 반환되고, 수식1이 NULL이면 수식2가 반환됨 SELECT IFNULL( A , '0') FROM ~ ; 결과 - A 또는 0 03. CASE ~ WHEN ~ ELSE ~ END / 다중 분기에 사용될 수 있는 함수 SELECT CASE A WHEN 1 THEN '일' CASE A WHEN 10 THEN '십' CASE A WHEN 100 THEN '백' ELSE '기타' END FROM ~ 결과 - '일' 또는 '십' 또는 '백' 또는 '기타'

MySQL 2022.05.03