sql 17

PLSQL이란? - 세기무민

이번에 다뤄볼 내용은 PLSQL입니다 PLSQL? PLSQL은 상용 관계형 데이터베이스 시스템인 SQL 확장성 프로그래밍 언어 중 하나이다. PLSQL은 SQL 문장으로 처리하기 어려운 내용을 프로시저 및 트리거로 작성하는데 자주 사용된다. PLSQL 장점 1. PLSQL은 오라클 서버 및 툴들에 일관적이고 중심적인 역할을 수행하기 떄문에 통합 관리 및 이식성이 가능하다. 2. 절차적인 언어 프로그래밍 언어가 가지고 있는 다양한 기능들을 제공한다. 3. 프로그램 모듈화 개발을 지원한다. PLSQL 예시 declare l_today date := sysdate; begin if to_char(l_today,'D') < 4 then dbms_output.put_line( '일주일 절반도 아직 안지남'); e..

DB/SQL 2022.07.12

[세무민의 코딩일기] : 오라클 시퀀스 조회 번호 확인하기

안녕하세요 세기무민입니다. 이번에 다룰 포스팅은 USER_SEQUENCES입니다. 우선 Oracle 문서에서 확인한 정의는 위와 같습니다. 즉 USER_SEQUENCES는 현재의 사용자가 소유한 시퀀스를 모두 보여줍니다. 타입은 VIEW입니다. 해당 뷰의 컬럼은 아래와 같습니다. 아래의 컬럼은 ALL_SEQUENCES의 컬럼이며 USER_SEQUENCES와 같습니다. 컬럼 명 컬럼 내용 SEQUENCE_OWNER 시퀀스의 소유자 SEQUENCE_NAME 시퀀스 이름 MIN_VALUE 시퀀스의 최소값 MAX_VALUE 시퀀스의 최대값 INCREMENT_BY 시퀀스가 증가하는 값 CYCLE_FLAG 시퀀스 순환 여부 ORDER_FALG 시퀀스 번호 순서 생성 여부 CACHE_SIZE 시퀀스의 캐시 크기 LA..

DB/SQL 2022.02.23

[세무민의 코딩일기] : 오라클 프로시저 및 함수 내용 찾기

안녕하세요 세기무민입니다. 이번에 다룰 포스팅은 오라클을 사용하다보면 프로시저와 함수를 만드는데 만약 프로시저와 함수가 엄청 많다면 모든 내용을 들어가서 확인하는건 비 효율적입니다. 따라서 프로시저와 함수 내에서 내용을 찾는 쿼리를 알아보도록 하겠습니다. /** * 프로시저 내 포함된 내용 찾기 */ SELECT * FROM USER_SOURCE WHERE 1=1 AND TYPE= "PROCEDURE"-- 타입 : 프로시저 AND TEXT LIKE '%%'-- 찾으려는 텍스트 입력 /** * 함수 내 포함된 내용 찾기 */ SELECT * FROM USER_SOURCE WHERE 1=1 AND TYPE= "FUNCTION"-- 타입 : 함수 AND TEXT LIKE '%%'-- 찾으려는 텍스트 입력 우선..

DB/SQL 2022.02.21

[세무민의 코딩일기] LeetCode Exchange Seats 문제풀이

오늘 풀어볼 문제는 LeetCode의 Exchange Seats 문제입니다. 1. 문제 및 예시 2. 문제풀이 이번 문제는 앞뒤로 바꾸는 쿼리 결과를 조회하면된다. 그렇다면 곰곰히 생각해보면 2의 배수의 경우는 앞뒤로 변경이 가능하지만 2의 배수에서 -1인 경우는 마지막의 값은 변경이 불가능하다. 이 말은 즉슨 Mod(ID, 2) = 1 공식에 따라서 문제를 풀면 된다. 3. 코드 /** * LeetCode : Exchange Seats * URL :https://leetcode.com/problems/exchange-seats/ */ SELECT ID, IFNULL(CASE WHEN MOD(ID, 2) != 0 THEN LEAD(student) over() ELSE LAG(student) over() ..

Algorithm/leetCode 2022.02.11

[세무민의 코딩일기] 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