[MySQL] 사용자 정의 함수(User Defined Function, UDF)
·
SQL/MySQL
1. 사용자 정의 함수(UDF)1.1. UDF 기본 개념MySQL 내장함수 이외에 사용자가 직접 만들 수 있는 함수반복해서 쓰는 복잡한 로직이 있을 경우, 직접 함수를 정의해서 재사용하면 유용함ex) 특정 패턴의 문자열 처리, 특정 규칙에 따른 계산, 데이터 정제 등❇️기본 쿼리 형식매개변수 : 함수 사용 시 입력받는 변수 (여러 개 가능)반환타입 : 함수가 어떤 타입의 값을 반환하는지 명시아래 2장 참고DETERMINISTIC : 입력한 파라미터가 같으면 출력도 동일하게 해주는 설정 (아닐 경우 NOT DETERMINISTIC)NOW, RAND 처럼 매번 실행 결과 달라지는 함수 사용 시, 일관된 출력을 하도록 쓸 수 있음.BEGIN과 END 사이에 함수 내부 로직을 작성하면 됨구문마다 종료 기호(;)..
[MySQL] Window 함수
·
SQL/MySQL
1. Window 함수1.1. Window 함수 개념MySQL 8.0부터 정식으로 지원행들의 집합(window)에 대해 계산을 수행하는 함수로, 집계 함수의 확장판(GROUP BY와 달리) 데이터를 집계해도 원래의 행들은 그대로 두고, 결과를 추가적인 컬럼으로 붙여줌⭐공식 도규먼트 曰 "By contrast, window operations do not collapse groups of query rows to a single output row. Instead, they produce a result for each row."기본 쿼리 형식함수명(): 사용할 윈도우 함수. 2~4장 참고. (필수)OVER(): 윈도우 함수임을 나타내는 키워드 (필수)PARTITION BY: 데이터를 나눌 기준 (=GRO..
[MySQL] 해커랭크, 리트코드 문제 풀이 (4)
·
SQL/MySQL
SQL 쿼리 연습을 위해 다양한 문제를 풀어보고 있다.다만, 대부분의 코딩테스트 플랫폼에서는 BigQuery 선택지가 없어서 MySQL 기준으로 연습하는 중이다.(대부분의 문법이 비슷하지만 간혹 문법이나 정책이 다른 경우가 있는 듯하다) 아래와 같은 문제들을 기록해두고 복기하려고 한다.어려워서 풀이에 실패한 문제풀긴 했으나 좀 더 좋은 쿼리가 있었던 문제몰랐던 문법이나 함수를 알게 된 문제그 외 복기가 필요하다고 느낀 문제1. Placements (해커랭크)📌문제Write a query to output the names of those students whose best friends got offered a higher salary than them.Names must be ordered by th..
[MySQL] Data Manipulation Language (INSERT, UPDATE, DELETE)
·
SQL/MySQL
1. 데이터 조작어(Data Manipulation Language)SQL 구문을 기능에 따라 분류하면 아래와 같다.구문역할예시DDL (Data Definition Language)테이블이나 컬럼 등의 구조 정의/수정 CREATE, ALTER, DROPDML (Data Manipulation Language)테이블 안의 데이터 추가/수정/삭제/조회 INSERT, UPDATE, DELETE, SELECTDCL (Data Control Language)사용자 권한 부여/회수GRANT, REVOKETCL (Transaction Control Language) 트랜잭션을 확정/취소COMMIT, ROLLBACK, SAVEPOINT이 중에서 DML은 (테이블 구조는 그대로 두고) 테이블 안의 "데이터" 자체를 조작..
[MySQL] 해커랭크 문제 풀이 (3)
·
SQL/MySQL
SQL 쿼리 연습을 위해 다양한 문제를 풀어보고 있다.다만, 대부분의 코딩테스트 플랫폼에서는 BigQuery 선택지가 없어서 MySQL 기준으로 연습하는 중이다.(대부분의 문법이 비슷하지만 간혹 문법이나 정책이 다른 경우가 있는 듯하다) 아래와 같은 문제들을 기록해두고 복기하려고 한다.어려워서 풀이에 실패한 문제풀긴 했으나 좀 더 좋은 쿼리가 있었던 문제몰랐던 문법이나 함수를 알게 된 문제그 외 배울 점이 있었던 문제1. Weather Observation Station 11 (해커랭크)📌문제Query the list of CITY names from STATION that either do not start with vowels or do not end with vowels.Your result ca..
[MySQL] 해커랭크, 리트코드 문제 풀이 (2)
·
SQL/MySQL
SQL 쿼리 연습을 위해 다양한 문제를 풀어보고 있다.다만, 대부분의 코딩테스트 플랫폼에서는 BigQuery 선택지가 없어서 MySQL 기준으로 연습하는 중이다.(대부분의 문법이 비슷하지만 간혹 문법이나 정책이 다른 경우가 있는 듯하다) 아래와 같은 문제들을 기록해두고 복기하려고 한다.어려워서 풀이에 실패한 문제풀긴 했으나 좀 더 좋은 쿼리가 있었던 문제몰랐던 문법이나 함수를 알게 된 문제그 외 배울 점이 있었던 문제1. Employees Earning More Than Their Managers (리트코드 181번)📌문제Write a solution to find the employees who earn more than their managers.Return the result table in an..
[MySQL] 해커랭크, 리트코드 문제 풀이 (1)
·
SQL/MySQL
SQL 쿼리 연습을 위해 다양한 문제를 풀어보고 있다.다만, 대부분의 코딩테스트 플랫폼에서는 BigQuery 선택지가 없어서 MySQL 기준으로 연습하는 중이다.(대부분의 문법이 비슷하지만 간혹 문법이나 정책이 다른 경우가 있는 듯하다) 아래와 같은 문제들을 기록해두고 복기하려고 한다.어려워서 풀이에 실패한 문제풀긴 했으나 좀 더 좋은 쿼리가 있었던 문제몰랐던 문법이나 함수를 알게 된 문제그 외 배울 점이 있었던 문제 1. Higher Than 75 Marks (해커랭크)📌문제Query the Name of any student in STUDENTS who scored higher than  Marks. Order your output by the last three characters of each ..