본문 바로가기

Database

[DB] Join Join은 참가하다 합치다 라는 뜻을 가진 단어입니다.그렇다면 테이블 여러개를 'JOIN' 시킨다는 어떤 의미일까요?테이블 여러개를 붙여서 RAM에 잠깐 넣어놓는 형태를 말합니다. SELECT * FROM HONGKONG, CEO; 지금처럼 2개의 테이블을 붙여서 JOIN 형태로 사용이 가능하지만,테이블들이 합쳐지면서 나타낼 수 있는 모든 값들을 나타내기 때문에진짜 데이터들을 뽑아와야 합니다.이때는 조건식을 사용해야 하는데요. SELECT * FROM HONGKONG, CEO WHERE H_NO = C_NO; 다음과 같이 조건을 붙여서가상의 데이터를 제거할 수 있습니다. 더보기
[DB] 서브쿼리 서브쿼리 (SubQuery)는 select문 안에 다시 select문을 사용하는 기술입니다.하나의 SQL문 안에 다른 SQL문이 중첩된 질의문을 의미하는데요.다른 테이블에서 가져온 데이터로 현재 테이블에 있는 정보를찾거나 가공할 때 사용합니다.보통 데이터가 대량일 때 데이터를 모두 합쳐서 연산하는 JOIN보다필요한 데이터만 찾아서 공급해주는 Subquery가 성능이 더 좋습니다.쿼리는 주질의(main query, 외부질의)와 부속질의(subquery, 내부질의)로 구성됩니다. 예제를 하나 살펴보겠습니다. select s_name, s_pricefrom dec26_snackwhere s_price (select avg(s_price)from dec26_snack); 평균가보다 가격이 낮은 과자의 이름과 .. 더보기
[DB] 집합연산자 집합연산자는 합집합, 교집합, 차집합 등의 집합 기능을수행하는 연산자입니다.먼저 합집합부터 살펴보겠습니다.                   UNION : 중복되는 값을 제외하고 출력 SELECT 1 ID, '수학' SUBJECT, 90 SCORE FROM DUALUNIONSELECT 1 ID, '수학' SUBJECT, 90 SCORE FROM DUALUNIONSELECT 1 ID, '수학' SUBJECT, 90 SCORE FROM DUAL; 이렇게 중복되는 값을 조회하면한 번만 나오게됩니다.  UNION ALL : 중복되더라도 모두 출력 SELECT 1 ID, '수학' SUBJECT, 90 SCORE FROM DUALUNION ALLSELECT 1 ID, '수학' SUBJECT, 90 SCORE FROM.. 더보기
[DB] 패턴 연산자 패턴 연산자는 문자열을 포함하는 검색을 할 때 사용하는데like '패턴' 의 형태입니다.이 때 패턴에는 '%'를 넣는데 뭐가 들어갈지 모른다는 뜻입니다.%가 들어가는 경우는 총 3가지가 있을 수 있는데요. like   '%ㅋ'    : ㅋ로 끝나는 것like   'ㅋ%'    : ㅋ로 시작하는 것like  '%ㅋ%'  : ㅋ가 포함 그럼 like 대신 ( ='ㅋ%') 는 안될까요?    => 등호를 써서 식을 표현하면 패턴으로 인식하는 것이 아니라'ㅋ%' 문자 그대로 인식해버립니다. 예시로 하나 만들어보겠습니다. 크라운 과자거나, 몽쉘~인거 이름, 제조사, 가격 조회SELECT SNACK_NAME||SNACK_COMPANY||SNACK_PRICE FROM DEC26_SNACKWHERE SNACK_COMP.. 더보기
[DB] 관계연산자 관계연산자를 살펴봅시다.NOT, AND, OR, BETWEEN, IN 등이 있습니다.AND를 먼저 살펴보겠습니다.가격이 1000원 이상 3000원 이하인 과자의 전체내용을 조회해봅시다. SELECT * FROM DEC26_SNACK WHERE SNACK_PRICE >= 1000 AND SNACK_PRICE 3000; 자바에서 배웠던 && 연산자를 영어로 표기한 것이라 볼 수 있습니다.두 조건 모두 만족해야 조건식을 통과합니다.이것은 BETWEEN과 AND를 활용해서도 표현할 수 있습니다. SELECT * FROM DEC26_SNACK WHERE SNACK_PRICE BETWEEN 1000 AND 3000; 여기서 BETWEEN은 이상 이하로만 조건 범위를 정하기 때문에1000원 초과 3000원 미만인 .. 더보기
[DB] Where Where 절은 조건식으로전체 데이터 중 지정한 조건에 맞는 데이터를 찾아주는 문장입니다.조건식에 사용할 연산자 중 비교 연산자를 먼저 알아보겠습니다. = , !=, ^=, , >, =,  = : 같음!=, ^=, : 같지 않음!=, 는 표준화를 하려다보니 사용하게 되었고,^=는 몇몇 DBMS와 차별화를 두기 위해 사용하게 되었습니다. > : 초과>= : 이상 나머지 4개연산자는다른 언어에서 쓰이는 비교 연산자와 동일한 의미를 가지고 있습니다. 비교 연산자를 사용해서 실습해보겠습니다.과자 테이블에 대한 출력을 각각 해보겠습니다. --모든 과자 이름, 가격 조회SELECT * FROM SNACK; -- 모든 과자 이름(가격) 조회SELECT SNACK_NAME||'('||SNACK_PRICE||'원)' .. 더보기
[DB] 집계 / 분석/ NULL 함수 집계 / 분석 함수는 SELECT 컬럼명  절쪽이나 HAVING 절에서 주로 사용하는데요.이름 그대로 데이터를 집계 또는 분석해주는 함수입니다.하나씩 살펴보겠습니다. AVG(컬럼명) : 평균COUNT(컬럼명) : 검색되는 데이터 수MAX(컬럼명) : 최대값MIN(컬럼명) : 최소값SUM(컬럼명) : 총합 RANK : 중복 순위만큼 다음 순위값을 증가시킵니다.DENSE_RANK : 중복 순위가 존재해도 순차적으로 다음 순위값을 표시합니다. 다음은 NULL 관련 함수를 살펴보겠습니다.NULL : 미확인 값이나 아직 적용되지 않은 값을 의미합니다.0이나 비어있는 공란이 아닙니다.하나씩 살펴보겠습니다. NVL : NULL인 경우에만 지정된 값으로 대체하는 함수NVL(값, NULL일 때 대체값) 형식입니다.NVL.. 더보기
[DB] 날짜 함수 날짜와시간 함수에 대해서 자세히 알아보겠습니다.먼저 날짜 형식입니다.YYYY : 4자리 연도YYY, YY , Y : 각각 4자리 연도의 마지막 3, 2, 1 자리MM : 월 / DD : 1달 중 날짜(일자)DAY : 요일 (월요일 ~ 일요일)DY : 요일 약자 (월 ~ 일)HH, HH12 : 12시간 / AM or PM : 오전 or 오후HH24 : 24시간MI : 분 / SS : 초 SYSDATE : 현재 시간 / 날짜를 반환합니다.TO_DATE(s1, datetime형식) : 문자열 s1데이터를 날짜 데이터로 변환합니다. select to_date('2024-12-31 오전 06:00', 'YYYY-MM-DD PM HH:MI') from dual; TO_CHAR(date, datetime 형식) : .. 더보기