본문 바로가기

파이썬으로 퀀트 프로그램 만들기 project/MySQL11

MySQL - 윈도우 함수 윈도우 함수 사용방법 [윈도우 함수] over ([partition by [열 리스트]] order by [정렬용 열 리스트]) 여기서 partition by는 생략 가능합니다 #윈도우 함수로 사용할 수 있는 함수 -윈도우 전용 함수 rank, dense_rank, row_number 등 rank: 같은 순위인 행이 여러개 있으면 후순위로 건너뜀 예) 1위가 3개인 경우: 1위, 1위, 1위, 4위, ··· dense_rank: 같은 순위인 행이 여러개 있어도 후순위를 건너뛰지 않음 예) 1위가 3개인 경우: 1위, 1위, 1위, 2위, ··· row_number: 순위와 상관없이 연속 번호를 부여 예) 1위가 3개인 경우: 1위, 2위, 3위, 4위, ··· 윈도우 전용 함수는 원칙적으로 select .. 2023. 8. 20.
MySQL - 테이블 결합, inner join, outer join 테이블 결합 작업에는 'join'이 사용됩니다. join의 종류를 다음과 같이 시각화할 수 있습니다. #inner join 두 테이블에서 공통되는 열을 기준으로 합칩니다. 사용 예시 select * from nameoftalbe_1 as t1 inner join nameoftable_2 as t2 on t1.col_1 = t2.col_1; → nameoftable_1 을 t1, nameoftable_2 을 t2로 가져옵니다. 두 테이블에서 t1의 col_1과 t2의 col_1을 기준으로 합칩니다. 그런데 만약 여기서 * 대신에 col_1을 쓰면 오류가 발생합니다. 두 테이블 모두다 col_1을 갖고 있기때문에 발생하는 오류입니다. 명시적으로 어디 테이블의 col_1인지 알려줘야합니다. 예를 들어 sele.. 2023. 7. 31.
MySQL - case #case case 식은 경우에 따라 값을 구분할 수 있습니다. 사용 방법 case when [조건식1] then [식1] when [조건식2] then [식2] when [조건식3] then [식3] ··· else [식n] end else는 위에서 만족하는 조건이 없을때의 반환값입니다. 생략할 수 있지만 명시적으로 작성하는것이 바람직합니다. 사용 예시 select col_1, col_2, case when col_2 >= 6000 then 'high' when col_2 >= 3000 and col_2 < 6000 then 'middle' when col_2 < 3000 then 'low' else null end as col2_classify from nameoftable; 2023. 7. 31.
MySQL - like 술어, 문자열 일치, between 술어, isnull, in 술어 #like 문자열을 검색할때 등호(=)를 사용할 수 있습니다. 그러나 이것은 완전히 일치하는 경우에만 참이 됩니다. 반면에 like술어는 문자열 중 부분 일치를 검색할 때 사용할 수 있습니다. #일치의 종류 전방일치 - 검색 조건이 되는 문자열이 검색 대상 문자열의 가장 앞에 위치하고 있는 행을 선택 중간일치 - 검색 조건이 되는 문자열이 검색 대상 문자열의 어딘가에 포함되어 있으면 행을 검색하며 위치는 어디는 상관없음 후방일치 - 검색조건이 되는 무자열이 검색 대상 문자열의 가장 뒤에 위치하고 있는 행을 검색 전방일치 예시 select * from nameoftable where col_1 like 'ddd%'; → 'nameoftable'에서 'col_1'열에서 'ddd'로 시작되는 모든 문자열 데이.. 2023. 7. 31.
MySQL - 날짜함수, extract #날짜함수 현재 날짜와 시간, 일시를 다루는 함수의 경우 from 구문이 없이 사용 가능합니다. current_date 현재 날짜 current_time 현재 시간 current_timestamp 현재 날짜와 시간 사용 예시 select current_date, current_time, current_timestamp; 결과 #extract 현재 날짜에서 년, 월, 일을 따로 추출하고 싶으면 extract구문을 사용하면 됩니다. 사용 예시 select current_date, extract(year from current_date) as year, extract(month from current_date) as month, extract(day from current_date) as day; 결과 2023. 7. 31.
MySQL - error code: 1175, safe update 모드 해제 방법 error code: 1175가 발생하는 이유는 SQL editor의 기본 모드가 safe update모드로 되어 있기 때문입니다. 이것은 update나 delete구문의 제한없는 사용을 방지하는 모드입니다. 이로인해 error code: 1175가 발생할 수 있습니다. 이것을 해제하기 위해서는 다음의 과정을 거쳐야합니다. 2023. 7. 27.