본문 바로가기

분류 전체보기117

서브쿼리 위치에 따른 용어 select 절 : 스칼라 서브쿼리select 절에 컬럼 이름이 오는 곳에 사용되는 쿼리를 말한다.단일 행이 오도록 표현해야 한다. 따라서 반드시 조건 식이 필요하다메인 쿼리와 서브 쿼리의 조건이 항상 필요하므로 상관서브쿼리(서로 상관이 있음을 표현)라고도 부른다.예제-- 고객별 고객 아이디, 이름, 총주문 금액 출력select custid,( -- 앞의 custid 와 관련이 있는 name의 단일 행만 가져온다. select name from customer c where c.custid = o.custid) name, sum(saleprice)from orders ogroup by custid;-- 스칼라서브쿼리(= 상관 서브쿼리)를 이용하여-- 도서명별 판매 건수를 출력한다.sele.. 2024. 6. 21.
rownum 속성 select 문으로 조회한 결과에 대하여 차례대로 행 번호를 붙이기 위하여 사용하는 속성이다.select rownum, eno, enamefrom emp e, dept dwhere e.dno = d.dno AND dname like '개발%';-- 박지성 고객이 주문한 도서 이름과 가격을 행번호를 붙여서 출력한다.-- 조인식을 이용select rownum,bookname,price from book b, customer c, orders owhere b.BOOKID = o.bookid ANDc.CUSTID = o.CUSTID ANDname = '박지성';-- 서브 쿼리를 이용select rownum, bookname,price from bookwhere bookid in ( select bookid.. 2024. 6. 21.
NULL 처리 값이 정해지지 않은 상태를 null 이라고 한다null인 상태에서는 어떠한 연산이나 함수를 사용할 수 없다.null 인지 아닌지 판별하기 위해서는 is null / is not null 연산자를 사용한다.해당 레코드가 없을 떄 count 를 제외한 집계 함수의 결과는 null이다.null값을 대체하기 위해서 nvl() 을 사용할 수 있다.select max(cnt) from test; -- nullselect min(cnt) from test; -- nullselect sum(cnt) from test; -- nullselect avg(cnt) from test; -- nullselect count(cnt) from test; -- 0 2024. 6. 21.
날짜 시간 함수 -2 months_between(날짜1, 날짜2);두 날짜 사이의 개월 수를 반환해야 한다.날짜 1이 더 최근의 날짜여야 한다.(아니면 음수가 나온다)select MONTHS_BETWEEN(sysdate, to_date('2002/10/10', 'YYYY/mm/dd')) from dual;/* 근무 개월 수가 60개월 이상인 직원들에게 특별 휴가를 준다. 대상자의 사원번호, 사원이름, 부서명, 입사일, 근무개월 주민번호를 출력하시오 주민번호는 14자리를 잡아서 출력하되 성별까지만 출력하고 오른쪽 빈 칸은 * 로 표시한다. 근무 개월 수가 높은 순으로 출력하고 동일할 떄는 이름 순으로 출력한다.*/select eno, ename, ( select dname from dept.. 2024. 6. 21.
날짜 시간 함수 sysdate : 오늘 날짜와 시간을 알려줌select sysdate from dual;select sysdate-1 from dual;select sysdate+1 from dual;날짜 형식 변경 함수to_date(문자, 형식) : 문자를 날짜로 변경to_char(날짜, 형식) : 날짜를 문자로 변경형식yyyy : 연도 4자리yy : 연도 2자리 mm : 월dd: 일hh: 시mi : 분ss: 초select sysdate from dual;select to_char(sysdate, 'yyyy') from dual;select to_char(sysdate, 'yyyy-mm-dd hh:mi:ss') from dual;--2020년도에 입사한 사람의 이름, 관리자명, 부서명, 입사일, 주민번호를 적는다.--.. 2024. 6. 20.
숫자 함수 -- 모든 주문에 대하여 주문번호, 도서가격, 판매가격을 조회select orderid, price, salepricefrom book b, orders o where b.bookid = o.orderid;-- 모든 주문에 대하여 주문번호, 도서가격, 판매가격을 조회select orderid, price, saleprice, abs(price-saleprice)from book b, orders owhere o.bookid = b.bookid; dual(가상의 테이블)을 이용하여 함수의 동작 방식을 알아보는 방법(일일히 테이블을 만들지 않고 함수 써보기)select abs(28) from dual;Mathceil : 올림수를 취해 주는 함수 floor : 버림수를 취해 주는 함수round : 반올림을 취.. 2024. 6. 20.
문자함수 lower : 소문자로 변환upper : 대문자로 변환select lower(name) from customer;select upper(name) from customer;select count(name) from customerwhere UPPER(name) = 'TIGER'; length : 문자열 길이ltrim : 왼쪽 공백을 제거rtrim : 오른쪽 공백을 제거trim : 양 옆의 공백을 제거select length('hello') from dual; -- 5select length(' hello') from dual; -- 7select length(trim(' hello')) from dual; -- 5select length(' hello ') from dual; -- 12sel.. 2024. 6. 20.
commit, rollback commit 을 작성한 DML 은 자동 commit 이고, 명령1명령2명령3commit;명령4명령5rollback;-- 명령 1, 2,3은 이미 반영되어서 되돌릴 수 없고 명령 4, 5가 취소됩니다. 2024. 6. 20.