728x90

오라클 10

[DB] 오라클 자주 쓰는 내장함수 모음(코테 대비)

1. 문자 함수CONCAT(string1, string2)두 문자열을 연결하는 함수( || 와 같음)SUBSTR(string, start, length)문자열에서 지정된 부분을 추출하는 함수INSTR(string, substring)주어진 문자열 내에서 서브 문자열의 위치를 반환하는 함수(없으면 0 반환)LENGTH(string)문자열의 길이를 반환하는 함수REPLACE(string, search, replace)문자열 내의 지정된 부분을 다른 문자열로 교체하는 함수LOWER(string)주어진 문자열을 소문자로 변환하는 함수UPPER(string)주어진 문자열을 대문자로 변환하는 함수LPAD(string, length, pad_string)왼쪽에 문자열을 채워서 지정된 길이의 문자열을 반환하는 함수RP..

CS 공부/DB 2024.10.21

[DB] 제 2정규화

All non-key columns must depend on the whole of the columns of every key 함수 종속성f(x) dependenciesX -> Y (X determines Y)Each X value has one Y value각각의 x값이 있으로 하나의 Y값을 얻을 수 있음 예)Date -> Day-of-week [예제 1]Stadium -> CityStadium(key)CityDate(key)Stadion BerlinBerlin17 Aug 2021Stadion BerlinLondon5 Sep 2021Stadium, Date는 키가 됨. 한 경기장의 같은 날짜에서는 한 경기만 이루어질 수 있기 때문스타디움에서 여러 경기가 있다고 할 때는 외래키를 사용할 수 있다.cr..

CS 공부/DB 2024.07.10

[프로그래머스] 조건에 맞는 사용자 정보 조회하기 - ORACLE

GROUP BY,HAVING만 잘 써서 서브쿼리(인라인 뷰 방식)을 만든다면 어렵지않게 풀 수 있는 문제입니다. --oracle SELECT A.USER_ID,A.NICKNAME,B.PRICE AS TOTAL_SALES FROM USED_GOODS_USER A, (SELECT WRITER_ID,SUM(PRICE) AS PRICE FROM USED_GOODS_BOARD GROUP BY WRITER_ID,STATUS HAVING STATUS = 'DONE' AND SUM(PRICE) >= 700000) B WHERE A.USER_ID = B.WRITER_ID ORDER BY TOTAL_SALES

[프로그래머스] 조건에 맞는 사용자와 총 거래금액 조회하기 - ORACLE

이번 문제는 '테이블에서 중고 거래 게시물을 3건 이상 등록한 사용자의 사용자 ID' 이 문장이 중요했고 나머지는 문자열 합치는 거라 그렇게 어렵진않을 것 같네요. 앞서 말한 문장을 아래처럼 Group by, having으로 표현할 수 있다면 조인을 걸거나 USER_ID의 조건으로 IN을 걸어서 풀 수 있어요. SELECT WRITER_ID FROM USED_GOODS_BOARD GROUP BY WRITER_ID HAVING COUNT(*) >= 3 SUBSTR로 문자열 나누고 ||이나 concat 사용해서 문자열 결합하는 건 그리 어렵지않으니 쉽게 해결할 수 있는 문제네요. -- oracle SELECT A.USER_ID,A.NICKNAME,A.CITY || ' ' || STREET_ADDRESS1 |..

[프로그래머스] 조건에 맞는 도서와 저자 리스트 출력하기

간단한 JOIN 문제이다. JOIN문제는 차근차근 출력해보면서 푸는 걸 추천한다. 그리고 프로그래머스에서는 매번 DATE 타입의 포맷을 지정해주기 때문에 TO_CHAR로 변환하는 방법은 당연히 알고있어야한다. --오라클 SELECT A.BOOK_ID,B.AUTHOR_NAME, TO_CHAR(A.PUBLISHED_DATE,'YYYY-MM-DD') AS PUBLISHED_DATE FROM BOOK A, AUTHOR B WHERE A.AUTHOR_ID = B.AUTHOR_ID AND A.CATEGORY = '경제' ORDER BY A.PUBLISHED_DATE

[프로그래머스] 가격대 별 상품 개수 구하기

가격대별로 상품 개수를 구하는데 여기서 핵심은 n만원대를 어떻게 나눌 것인가이다. TRUNC(PRICE/10000,0)으로 몇 만원인지 구하고 다시 10,000을 곱하는 방법으로 풀어줬는데 CASE WHEN이나 SUBSTR을 사용하는 방법도 있으나 10만원 이하라는 보장이 없기 때문에 아래와 같이 풀어주는 것이 제일 정확한 방법이지 않을까싶다. --오라클 코드 SELECT TRUNC(PRICE/10000,0)*10000 AS PRICE_GROUP, COUNT(PRODUCT_ID) AS PRODUCTS FROM PRODUCT GROUP BY TRUNC(PRICE/10000,0)*10000 ORDER BY PRICE_GROUP

프로그래머스 - SQL 고득점 Kit

백신 맞고 심심해서 풀다보니 고득점 키트를 다 풀어버렸다. 문제는 다 Oracle로 풀었다는 점..? 정답이긴 해도 효율 생각안하고 직관적으로 풀어버려서 맘에 안들긴하는데 지금 노트북에는 오라클을 안깔아둬서 어쩔 수 없다. 저 중에서 어느정도 난이도 있는 문제와 개인적인 코드 리뷰를 적어볼까한다. 1. GROUP BY - 입양 시간 구하기(1) 데이터가 많은 경우 TO_CHAR, TO_DATE같은 함수로 데이터 내용 일부를 추출하거나 변환할 때 시간이 많이 걸려서 그 횟수를 줄이고자 아래와 같이 짰고 BETWEEN AND 를 안 쓴 이유는 포함여부가 헷갈리는 것을 막기 위함이다. --입양 시각 구하기(1) SELECT HOUR,COUNT(HOUR) AS COUNT FROM ( SELECT TO_CHAR(..

취준일지/SQLD 2021.10.28

[Database] 오라클 11g 설치방법

1. 오라클 설치파일 다운로드 1) 아래 링크로 오라클에 접속 https://www.oracle.com/database/technologies/oracle-database-software-downloads.html 2) 하단에 Oracle 11g 선택 3) PC OS에 맞는 버전 다운로드 * 오라클에서 다운로드를 하기 위해서는 로그인이 필요합니다. 회원가입 또는 로그인을 해주시면 다운로드 가능합니다. 2. 설치 파일 실행 1) 다운로드 경로에서 exe파일 클릭 2)설치 진행 3) Next 클릭 4) 약관 동의 후 Next 클릭 5)비밀번호 설정 후 Next 클릭 6) 설치 경로 확인 후 Install 클릭 7) Finish 클릭 3. 접속 테스트 - cmd창 실행 후 sqlplus 입력하면 SQL Rel..

카테고리 없음 2021.01.23
728x90
반응형