티스토리

개발노트
검색하기

블로그 홈

개발노트

lifeonguide.tistory.com/m

dev? 님의 블로그입니다.

구독자
1
방명록 방문하기

주요 글 목록

  • 스칼라 서브쿼리 스칼라 서브쿼리: 한 개의 행과 한 개의 열을 반환하여 단일 값처럼 사용할 수 있는 쿼리단일 값 반환: 서브쿼리는 오직 하나의 행과 열을 반환해야 하며, 그렇지 않으면 에러가 발생합니다.어디서나 사용 가능: 스칼라 서브쿼리는 SELECT, WHERE, HAVING 등 여러 위치에서 사용될 수 있습니다.연산 가능: 외부 쿼리의 필드와 결합해 계산식이나 조건문을 구성할 수 있습니다.SELECT A.ENAME, A.SAL, A.DEPTNO, (SELECT ROUND(AVG(X.SAL), 2) FROM EMP X WHERE X.DEPTNO = A.DEPTNO) AS DVG_SALFROM EMP A;  ▶ 서브쿼리에 DEPTNO의 값이 각각 들어가고  서브.. 공감수 0 댓글수 0 2024. 11. 15.
  • (다중행 서브쿼리) ALL / ANY ALL : 메인 쿼리 조건이 서브쿼리의 모든 값에 대해 참이 되어야 조건이 만족됩니다.SELECT ENAME, JOB, SALFROM EMPWHERE SAL > ALL(SELECT SAL FROM EMP WHERE JOB='SALESMAN');> 서브쿼리 결과 - ALL보다 커야 하기 때문에 서브쿼리 결과 중 제일 큰값이 기준이됨 아래의 MAX로 대체 가능하다SELECT ENAME, JOB, SALFROM EMPWHERE SAL > (SELECT MAX(SAL) FROM EMP WHERE JOB='SALESMAN'); ANY: 메인 쿼리 조건이 서브쿼리의 하나 이상의 값에 대해 참이 되면 조건이 만족됩니다. SELECT ENAME, JOB, SALFROM EMPWHERE SAL > ANY(SELECT S.. 공감수 0 댓글수 0 2024. 11. 14.
  • 서브쿼리 (단일 / 다중 행) 1. 단일행 서브쿼리  : 결과가 1줄인 경우 SELECT ENAME, JOB, SALFROM EMPWHERE SAL > 서브쿼리 결과 1-1. 단일행 서브쿼리에서 사용할 수 있는 연산자들 =, >, >=,   2. 다중행 서브쿼리 : 결과가 여러 줄인 경우  SELECT ENAME, JOB, DEPTNOFROM EMPWHERE DEPTNO IN (SELECT DEPTNO FROM EMP WHERE JOB='CLERK');> 서브쿼리 결과 2-1. 다중행 서브쿼리에서 사용할 수 있는 연산자들IN, ALL, ANY(=SOME), EXISTS 공감수 0 댓글수 0 2024. 11. 14.
  • FULL OUTER JOIN 2개의 테이블이 존재 CREATE VIEW V_EMPLOYEES AS ( SELECT 1 AS EMP_ID, 'ALICE' AS NAME, 100 AS SALARY FROM DUAL UNION ALL SELECT 2 AS EMP_ID, 'BOB' AS NAME, 200 AS SALARY FROM DUAL UNION ALL SELECT 3 AS EMP_ID, 'CHARLIE' AS NAME, 300 AS SALARY FROM DUAL);CREATE VIEW V_PROJECT AS ( SELECT 1 AS PROJ_ID, 'PROJECT A' AS PRJO_NAME, 1 AS EMP_ID FROM DUAL UNION ALL SELECT 2 AS PROJ_ID, 'PROJECT B'.. 공감수 0 댓글수 0 2024. 11. 14.
  • USING절, NATURAL JOIN 쿼리 결과 특징 INNER JOIN 한 결과 ( USING 이나 NATURAL JOIN을 사용하지 않은 이너 조인의 결과)양쪽 테이블에 있는 DEPTNO가 출력SELECT *FROM EMP AINNER JOIN DEPT BON A.DEPTNO = B.DEPTNO; USING / NATURAL JOIN 한 결과DEPTNO가 1개만 출력JOIN 기준인 컬럼이 맨 앞에 출력SELECT *FROM EMP AJOIN DEPT BUSING (DEPTNO);SELECT *FROM EMP ANATURAL JOIN DEPT B; 공감수 0 댓글수 0 2024. 11. 12.
  • NATURAL JOIN 사용조건EQUAL JOIN양쪽에 같은 이름을 가진 컬럼이 있어야함 조건절 사용 안함 (NATURAL JOIN은 USING과 달리 같은 이름을 가진 컬럼들을 자동으로 다 조인조건에 넣음)SELECT EMPNO, A.ENAME, B.DNAMEFROM EMP ANATURAL JOIN DEPT B; 공감수 0 댓글수 0 2024. 11. 12.
  • ON을 USING으로 바꾸기 USING 사용 방법 ON 대신에 USING으로 변경하고, USING (두 테이블에 같은 이름을 가진 컬렴명) USING이 사용될 수 있는 조건EQUAL JOIN 일때 양쪽에 같은 이름을 가진 컬럼이 있어야함SELECT EMPNO, A.ENAME, B.DNAMEFROM EMP AJOIN DEPT BUSING (DEPTNO); 공감수 0 댓글수 0 2024. 11. 12.
  • OUTER JOIN, 기준 테이블에 다른 테이블 더하기(+) OUTER JOIN한 쪽 테이블 기준으로 조인 기준 테이블을 불러오고, 다른쪽 테이블을 추가한다.기준이 되는 반대쪽에다가(+) 기호 추가SELECT A.STADIUM_NAME, A.STADIUM_ID, B.STADIUM_ID, B.TEAM_NAMEFROM STADIUM A, TEAM BWHERE B.STADIUM_ID(+) = A.STADIUM_ID; 공감수 0 댓글수 0 2024. 11. 11.
  • Non Equi JOIN, =이 아닌 조건으로 조인하기 CROSS  JOIN : 양쪽 테이블의 모든 조합-- 가상의 테이블 생성WITH SALGRADE AS ( SELECT 1 GRADE, 700 LOSAL, 1200 HISAL FROM DUAL UNION ALL SELECT 2 GRADE, 1201 LOSAL, 1400 HISAL FROM DUAL UNION ALL SELECT 3 GRADE, 1401 LOSAL, 2000 HISAL FROM DUAL UNION ALL SELECT 4 GRADE, 2001 LOSAL, 3000 HISAL FROM DUAL UNION ALL SELECT 5 GRADE, 3001 LOSAL, 9999 HISAL FROM DUAL)-- 조건을 주지 않고 JOIN하면 CROSS.. 공감수 0 댓글수 0 2024. 11. 11.
  • EQUI JOIN JOIN일반적으로 PK, FK를 이용논리적 관계만으로 가능테이블 여러개 조인해도 2개씩 조인JOIN A, B, C,D -> JOIN(JOIN(JOIN(A,B), C), D)EQUI JOIN테이블 간의 칼럼 값들이 정확히 일치 할때JOIN 대상 테이블이 N개라면 EQUI JOIN은 조인 조건 N-1개 필요SELECT EMP.EMPNO, EMP.ENAME, DEPT.DNAMEFROM EMP, DEPTWHERE EMP.DEPTNO = DEPT.DEPTNO; [제약사항]ALIAS를 사용하면 기존 테이블의 이름 사용 불가능ALIAS를 사용하면 ALIAS만 사용가능FROM에 AS 사용 불가 조건 추가해서 사용 가능SELECT A.EMPNO, A.ENAME, B.DNAMEFROM EM.. 공감수 0 댓글수 0 2024. 11. 8.
  • ORDER BY ORDER BY 절: 결과를 정렬해서 출력SELECT NAME, GROUP_NAME, BIRTH_YEARFROM ARTISTORDER BY BIRTH_YEAR; -- (기본 : ASC) 생략가능한 옵션정렬 순서ORDER BY에 있는 컬럼 순서대로 정렬-- ORDER BY의 첫번째 컬럼으로 정렬(BIRTH_YEAR)-- 같은 것들을 두번째 컬럼으로 정렬SELECT NAME, GROUP_NAME, BIRTH_YEARFROM ARTISTORDER BY GROUP_NAME, BIRTH_YEAR DESC ; -- 정렬 기준을 각각 다르게 줄 수 있다SELECT NAME, GROUP_NAME, BIRTH_YEARFROM ARTISTORDER BY GROUP_NAME .. 공감수 0 댓글수 0 2024. 11. 7.
  • HAVING HAVING: GROUP BY 되거나 집계된 데이터 필터링SELECT GROUP_NAME, ROUND(AVG(HEIGHT), 2), MAX(HEIGHT), MIN(HEIGHT), AVG(FOOT_SIZE)FROM ARTISTGROUP BY GROUP_NAMEHAVING AVG(FOOT_SIZE) > 240; HAVING과 GROUP BY 순서를 바꿔도 실행이 된다. (논리적으로 GROUP BY 먼저 수행한 후 HAVING이 처리된다.)SELECT GROUP_NAME, ROUND(AVG(HEIGHT), 2), MAX(HEIGHT), MIN(HEIGHT), AVG(FOOT_SIZE)FROM ARTISTHAVING AVG(F.. 공감수 0 댓글수 0 2024. 11. 6.
  • GROUP BY -- GROUP_NAME이 같은 것끼리 그룹화-- 같은 GROUP_NAME을 가진 것 끼리 평균, 가장큰값, 작은값, 합계를 구함SELECT GROUP_NAME, COUNT(*), ROUND(AVG(HEIGHT),2), MAX(HEIGHT), MIN(HEIGHT), SUM(HEIGHT)FROM ARTISTGROUP BY GROUP_NAME; GROUP BY에 2개 이상의 컬럼 지정 가능SELECT GROUP_NAME, BIRTH_YEAR, COUNT(*), ROUND(AVG(HEIGHT),2), MAX(HEIGHT), MIN(HEIGHT), SUM(HEIGHT)FROM ARTISTGROU.. 공감수 0 댓글수 0 2024. 11. 5.
  • 집계함수 집계함수MIN, MAX, SUM, AVG, COUNT -- 전체 데이터를 집계해서 한줄로 표현SELECT COUNT(*), SUM(HEIGHT), AVG(HEIGHT), MAX(HEIGHT), MIN(HEIGHT)FROM ARTIST;  -- NULL을 포함한 중복제거SELECT DISTINCT GROUP_NAME FROM ARTIST;SELECT COUNT(*), -- NULL 포함 전체 개수 COUNT(GROUP_NAME), -- NULL 포함X COUNT(DISTINCT GROUP_NAME) -- NULL 포함XFROM ARTIST;SELECT COUNT(*) AS 전체행수, COUNT(FOOT_SIZE) AS NULL.. 공감수 0 댓글수 0 2024. 11. 4.
    문의안내
    • 티스토리
    • 로그인
    • 고객센터

    티스토리는 카카오에서 사랑을 담아 만듭니다.

    © Kakao Corp.