반응형
WHERE ~ IN () : 서브 쿼리 처럼 사용하는 방법
SELECT c.name
FROM customer c
WHERE c.custid IN (
SELECT o.custid
FROM book b
JOIN orders o ON b.bookid = o.bookid
WHERE b.publisher = '대한미디어'
);
WHERE EXIST : 존재하는 것이 있으면 사용하기
SELECT c.name, c.address
FROM customer c
WHERE EXISTS
(SELECT *
FROM orders o
WHERE c.custid = o.custid
);
Join on Join on : 조인 두개를 사용해서 원하는 값 출력
select publisher from book b
join orders o on b.bookid=o.bookid
join customer c on c.custid=o.custid
where c.name='박지성';
AND AND : AND 조건으로만 조건 뽑아내기
SELECT publisher
FROM book b, orders o, customer c
WHERE b.bookid = o.bookid AND o.custid = c.custid AND c.name = '박지성';
내장 함수들
ROUND : 반올림
-- ROUND 반올림 : (1자리에서 반올림)
SELECT ROUND(4.879, 1)
FROM dual;
ABS : 절대값
-- ABS : 절댓값
SELECT ABS(-88), ABS(88)
FROM dual;
REPLACE : 대체 값 넣어서 보기
-- REPLACE : 특정 값 대체 / SELECT에서 잠깐 대체해서 보는 것
SELECT bookid, REPLACE(bookname, '야구', '농구') bookname, publisher
FROM book;
SUBSTR : 특정 범위 글자 따와서 보기
-- SUBSTR (원본 문자열, 자르기 시작할 위치, 문자열 길이)
-- 이름의 한 글자만 따오는 것
SELECT SUBSTR(NAME, 1, 1) "성", COUNT(*) "인원"
FROM customer
GROUP BY substr(name,1, 1);
날짜 함수들
-- 날짜 함수
STR_TO_DATE('22-07-15','%y-%m-%d') 문자 -> 날짜
DATE_TO_STR() 날짜 -> 문자
-- 3달 더하기
SELECT DATE_ADD(STR_TO_DATE('22-07-15','%y-%m-%d'), INTERVAL 3 MONTH)
FROM dual;
-- 현재 시간
SELECT NOW();
FLOOR : 소수점 버림
-- 소수점 버림
SELECT FLOOR(15.7)
FROM DUAL;
Ceil : 천장 처리 15.7 -> 16
SELECT ceil(15.7)
FROM dual;
반응형
'BACK_END > SQL' 카테고리의 다른 글
250220 _ SQL (0) | 2025.02.20 |
---|---|
250218_ SQL SELECT 문 (0) | 2025.02.18 |
250217 _ MY SQL (0) | 2025.02.17 |