분류 전체보기 247

[세무민의 코딩일기] mysql에서 Procedure 사용하기

이번 포스팅에서는 Mysql에서 사용하는 프로시저라는 것에 대해 알아보도록 하겠습니다. 스토어드 프로시저 우선 Mysql에서는 스토어드 프로시저라고 합니다. "쿼리문의 집합이자 동작을 일괄로 처리할 수 있도록 사용된다." 스토어드 프로시저란 Mysql 내부에서 프로그래밍이 가능하도록 제공해주는 것이라고 생각하면 된다. 즉 일반 쿼리를 모듈화하여 호출하는 방식으로 이용하며 이는 편리성을 제공해줍니다. 프로시저의 장점 및 단점 [장점] 1. 다양한 쿼리를 모듈화 가능 -> 1개의 프로시저로 N개의 쿼리를 수행 가능하다. 2. 처리 시간이 단축된다 -> 구문 분석과 코드 변환에 필요한 시간들을 미리 하기 때문이다. 3. SQL 문장과 호스팅 언어의 분리로 인하여 프로시저 보수가 편리함 [단점] 1. 재사용성이..

DB/SQL 2022.02.03

[세무민의 IT 소식] : NFT를 직접 만들어보기

최근에 NFT에 자신의 셀카를 판매하여 12억원을 번 사례가 존재한다. 그렇다면 도대체 NFT란 무엇일까? NFT? NFT는 Non-Fungible Token이라는 단어의 약자로 대체 불가능한 토큰을 말한다. NFT는 블록체인의 기술을 이용하여 디지털 자산의 소유주를 증명할 수 있는 토큰이고 그림부터 영상까지 다양한 디지털 파일 및 자산에 복제 및 위조가 불가능하도록 암호 증명서를 붙여준다. 이는 즉 해당 원본에 대한 소유권을 제공해주는 목적을 가지게 된다. NFT 특징 기존의 파일과 달리 무단 복제가 불가능하다는 점이 특징이며 희소성을 인정받을 수 있다는 장점이 있다. 가장 큰 장점으로는 NFT의 생산을 통해 경매 및 거래가 가능해진다는 점이다. NFT를 통해 누군가가 함부로 변경할 수 없기 때문에 해..

[세무민의 코딩일기] LeetCode Trips and Users 문제풀이

오늘 포스팅 할 내용은 LeetCode에서 Trips and Users문제를 풀어봤습니다. 1. 문제 설명 2. 문제 예시 3. 문제 풀이 이번 문제는 driver_id와 client_id만 잘 구분해주면 된다. 말 그대로 cancel의 확률을 구하면 되는데 사용자 중 banned가 yes라면 제외한 확률을 구해주면 된다. 그래서 날짜별로 평균값을 구해주면 되는 문제이다. /** * LeetCode : Trips and Users * URL :https://leetcode.com/problems/trips-and-users/ */ /* * AVG 사용 */ select trip_totals.day, ,round(avg(trip_totals.status like '%cancel%'), 2) as "Canc..

Algorithm/leetCode 2022.01.17

[세무민의 코딩일기] LeetCode Rising Temperature문제풀이

오늘 포스팅 할 내용은 LeetCode 문제 중 하나인 Rising Temperature문제를 풀어봤습니다. 1. 문제 설명 2. 문제 예시 3. 문제 풀이 이번 문제는 전일 대비 온도가 높은 ID를 출력해주면 됩니다. 그렇다면 해당 문제를 접근한는 방법은 현재일과 현재일에서 DATE_ADD를 통해 1일을 추가한 일자와 비교하여 온도를 비교해주면 된다. 또 다른 방법은 DATEDIFF를 이용하여 날짜의 차이가 1일인 경우 온도를 비교해주면 된다. /** * LeetCode : Rising Temperature * URL : https://leetcode.com/problems/rising-temperature/ */ # DATEDIFF를 통해 날짜의 차이를 구하는 방식 select w1.id from W..

Algorithm/leetCode 2022.01.13

[세무민의 코딩일기] LeetCode Duplicate Emails 문제풀이

오늘 포스팅 할 내용은 LeetCode 문제 중 하나인 Duplicate Emails문제를 풀어봤습니다. 1. 문제 설명 2. 문제 예시 3. 문제 풀이 이번 문제는 이메일 중복이 존재한다면 해당 중복 이메일을 출력해주면 되는 문제입니다. 이 문제에서는 가장 쉽게 할 수 있는건 이메일로 Group by를 한 뒤 1개 이상인 이메일을 출력해주면 됩니다. 다른 방법으로는 서브쿼리에서 email의 count를 구하여 1개 이상의 값을 구하면 됩니다. # 서브 쿼리 사용 select duals.email as Email from ( SELECT id, email, count(email) as numEmail from Person group by email ) as duals where duals.numEmail..

Algorithm/leetCode 2022.01.11