본문 바로가기

반응형

Oracle

[Oracle] Like 연산자 (SQLD 시험에 많이 나옴) 정의 SQLD시험에서 적어도 3문제 이상 나오는 빈출 개념 Like 연산자에 대해 알아보자. [문법] SELECT FROM WHERE LIKE ' '; '_' : 특정 미지의 글자 하나를 의미 '_B_' : 미지의 글자 + B + 미지의 글자 (세글자이면서 가운데 B가 들어간) 예) ABC, BBB, CBD, WBA 등등 '%' : 미지의 글자 0개 이상 '%B%' : 앞뒤 갯수 상관없이 B문자열이 포함되어 있는 단어 예) 'A%'를 입력하면 ABC, A, AB, ABCD, AAAAAA 등이 출력됨. 예시 [명령어] SELECT ENAME FROM EMP WHERE ENAME LIKE '%B%'; [출력] [실전문제] 사원 테이블(EMP)에서 이름이 5글자인 사원의 이름(ENAME), 사원 번호(EMPN.. 더보기
[Oracle] BETWEEN 연산자 BETWEEN 연산자 특정범위조건에 있는 값을 가져오고 싶을 때 사용하는 연산자 BETWEEN이다. 문법 : WHERE [컬럼] BETWEEN AND 예시 SELECT EMPNO, ENAME, SAL, HIREDATE FROM EMP WHERE HIREDATE BETWEEN '1981/01/01' AND '1981/12/31'; 더보기
[ORACLE] CONCAT 연산자란 무엇인가 CONCAT 1. 합성 연산자는 문자형 데이터를 수평 결합시킨다. 2. 오라클에서는 합성연산자로 수직바 '||' 를 사용한다. [예시 코드] SELECT 'ABC' || 'CCC' FROM DUAL; SELECT '안녕' || '하세요' FROM DUAL; [결과] [응용문제] SELECT ENAME || '입니다.' FROM EMP; [결과] ※ 참고 : SQL 서버에서는 '+'를 사용하여 계산함 더보기
[국민취업지원제도 일경험프로그램 55일차] 결재시스템 대리결재 controller 55일 차 특이사항 1. 대리결재를 하면 proxy 테이블에 대리결재자와 대리결재 위임자의 아이디가 입력된다. 2. 그 다음은? 3. 만약 결재 위임받은 사람의 아이디가 proxy 테이블에 있으면 list에 다른 데이터를 보여준다. 대리결재자 1. boss, king으로 manager, clerk에게 대리결재 권한을 부여하면 proxy 테이블에 대리결재자와 대리결재 위임자 아이디가 입력되고, 위임받은 사람이 로그인하면 대리결재 정보가 출력되는 것까지 완료했다. 2. 그 다음 step을 못 가겠다. 어떻게 해야 할까? 3. 뭘 건드려야 하지? 사원이 과장처럼 결재버튼을 누를 수 있어야 한다. - proxy 테이블의 grant_member의 계급이 과장이면 과장을 대신해서 결재한다. - 그럼 결재글을 누르고.. 더보기
[국민취업지원제도 일경험프로그램 54일차] 결재시스템 과장 서브쿼리 조건문 54일차 특이사항 1. proxy 테이블에 대리결재자의 이름이 들어간다. 2. ${proxy}는 쓸 수 있는데... 왜 그 컬럼값들을 쓸 수 없을까? ${proxy} ${proxy.proxyMember} ${proxy.grantMember} ${proxy.grantTime} ${proxy.endGrant} 3. resultMap을 잘못 입력함... proxyRs로 해야되는데 loginRs로 했음. SELECT PROXY_MEMBER ,GRANT_MEMBER ,GRANT_TIME ,END_GRANT FROM JSH_APPROVAL_PROXY 팀장님의 지도 1. mapper, 쿼리짜는 부분 - 서브쿼리 사용 - 직급 관련 검색 쿼리부터 만들기 - 과장이 결재에 참여한 글. . . history에서 가져와야 .. 더보기
[프로그래머스] 성분으로 구분한 아이스크림 총 주문량 문제 상반기 동안 각 아이스크림 성분 타입과 성분 타입에 대한 아이스크림의 총주문량을 총주문량이 작은 순서대로 조회하는 SQL 문을 작성해주세요. 이때 총주문량을 나타내는 컬럼명은 TOTAL_ORDER로 지정해주세요. 풀이 SELECT B.INGREDIENT_TYPE, SUM(A.TOTAL_ORDER) as TOTAL_ORDER FROM FIRST_HALF A INNER JOIN ICECREAM_INFO B ON A.FLAVOR = B.FLAVOR GROUP BY B.INGREDIENT_TYPE ORDER BY SUM(A.TOTAL_ORDER) ASC; FLAVOR 컬럼을 기준으로 INNER JOIN 한다. 그리고 ICECREAM_INFO 테이블에 있는 성분 타입 컬럼을 기준으로 GROUP BY 한다. .. 더보기
[프로그래머스] 가격이 제일 비싼 식품의 정보 출력하기 문제 FOOD_PRODUCT 테이블에서 가격이 제일 비싼 식품의 식품 ID, 식품 이름, 식품 코드, 식품분류, 식품 가격을 조회하는 SQL문을 작성해 주세요. 풀이 SELECT PRODUCT_ID, PRODUCT_NAME, PRODUCT_CD, CATEGORY, PRICE FROM FOOD_PRODUCT WHERE PRICE = (SELECT MAX(PRICE) FROM FOOD_PRODUCT); WHERE절에 서브쿼리를 사용했고, MAX() 집계함수를 사용하여 가격이 제일 비싼 식품을 조회했다. WHERE절에 사용된 서브쿼리는 어떤 유형일까? 스칼라 서브쿼리(SCALAR SUB QUERY)다. 스칼라 서브쿼리는 '단일'의 의미를 가지고 있다. 반드시 1행 1열만을 반환 값으로 반환한다. 더보기
[프로그래머스] 인기있는 아이스크림 문제 상반기에 판매된 아이스크림의 맛을 총주문량을 기준으로 내림차순 정렬하고 총주문량이 같다면 출하 번호를 기준으로 오름차순 정렬하여 조회하는 SQL 문을 작성해주세요. 분명 쉬운 문제라 했는데 보자마자 어렵게 느껴졌다. 쪼개서 생각했다. 1. 상반기 아이스크림 맛을 총주문량을 기준으로 내림차순 정렬하고 2. 총주문량이 같은 경우 출하 번호를 기준으로 오름차순 정렬 1번 문장만 쿼리문으로 짜면 쉽다. 문제는 2번이다. 총주문량이 같은 경우를 어떻게 조건으로 넣지? dense_rank() 함수를 써야할 것 같아서 썼는데 오답이다. order by를 2번 한다? 중요한 것은 문제 예시에 나와있는 테이블이 아니었다. 내가 어떤 테이블을 가지고 쿼리문을 실행하는지 파악하는 것이 먼저다. SELECT * FROM.. 더보기

반응형