본문 바로가기

DataBase(SQL)/DAY 26 _ 23.09.22

(5)
Where 연산자 ** WHERE 연산자 종류 : = ,(NOT)IN, ALL, ANY(SOME), EXISTS SELECT * FROM CUSTOMER c WHERE c.CUSTID IN (3,3,4) -- '이 중 한 개라도 같으면' => 'or' ; -- ANY : 연산자와 조합 SELECT * FROM CUSTOMER c WHERE c.CUSTID >= ANY (3,3,4) -- any앞에 연산자 필요. '이 중에서 하나라도 작거나 같으면' --> if custid is bigger then 3 or 3 or 4 WHERE c.CUSTID = ANY (3,3,4); -- 완벽하게 IN -- all SELECT * FROM CUSTOMER c WHERE c.CUSTID > all (3, 3, 4); -..
Sub Query3 -- 1. 인라인 뷰 (from 부속질의)-따로 for문 -- 괄호안을 테이블로 인식시킴 SELECT t1.*, c.* FROM ( SELECT o.CUSTID AS a, AVG(o.SALEPRICE) AS b FROM ORDERS o GROUP BY o.CUSTID ) t1 -- 별칭 INNER JOIN CUSTOMER c ON c.CUSTID = t1.a WHERE t1.b > 10000 -- for문 끝나고 이후에 필터링 ; -- 별칭을 잘 지어줘야함(필수). 이 상태로도 실행됨 SELECT o.CUSTID, AVG(o.SALEPRICE) AS avg FROM ORDERS o GROUP BY o.CUSTID --HAVING AVG(o.SALEPRICE) > 10000 ; -- ex1. 고객번호가 2..
NVL ☆ NVL : null값 반환. 은근히 쓰임 정확하게 알아두기 -- 고객 별 총 구매액 -- count 가능하지만 깨짐. null이 아니라 1로 출력됨. null때문에 sum도 불가능 -- NVL(SUM(saleprice),0) '안쪽에 null값이 있으면 0으로 변환하여 출력해라' SELECT c.NAME, NVL(SUM(saleprice),0) FROM CUSTOMER c LEFT OUTER JOIN ORDERS o ON c.CUSTID = o.CUSTID GROUP BY c.NAME; -- NULL : 문자가 아닌 키워드, 값 -- '='이 안됨 is로 표현 SELECT * FROM CUSTOMER WHERE PHONE = null; -- 출력안됨 SELECT * FROM CUSTOMER WHERE..
형태변환 1. 날짜 2. 숫자 3. 문자 -- 숫자를 문자로 SELECT TO_CHAR(1234) FROM Dual; -- 문자를 숫자로 SELECT TO_NUMBER('1234') + 55 FROM Dual; -- ☆ 날짜를 문자로 TO_CHAR(날짜, formatter)-> 통계에서 쓰임. 날짜는 사실상 GROUP BY가 불가능하므로 -- JAVA랑 다름. 검색해보기 SELECT TO_CHAR(ORDERDATE,'yyyy.mm.dd HH') FROM ORDERS; -- ☆ 문자를 날짜로 TO_DATE. WHERE조건에 쓰임 SELECT TO_DATE('2014-07-11','yyyy-mm-dd') FROM Dual; -- ADD_MONTHS(date, 숫자). 그냥 더하기도 가능함 -- ☆ SYSDATE. insert시 실행된 시간을 저장해..
DB _ API -- 출력시에 연산이 가능 SELECT orderid + 1, saleprice * 0.1 FROM ORDERS; SELECT 1234, saleprice FROM ORDERS; SELECT '안녕하세요', saleprice FROM ORDERS; -- 문자열 연산 || SELECT '안녕하세요'||'반갑', saleprice FROM ORDERS; SELECT * FROM book WHERE BOOKNAME LIKE '%축구%'; SELECT * FROM book WHERE BOOKNAME LIKE '%' || '축구' || '%'; -- 현재시간 SELECT SYSDATE FROM Dual; SELECT 1234 + 555 FROM Dual; -- ☆ 소수점 반올림. GROUP BY와 같이 쓰임 SE..