본문 바로가기

Kosta DevOps 과정 280기/Java109

사용자 정의 함수(function)만드는 방법 오라클이 제공하는 함수들은 많이 있다.ceil, substr, sum, max, min, count, ...이러한 함수들은 모두 select 절에 사용할 수 있다. 이것들처럼 사용자가 select 절에 사용할 수 있는 사용자가 필요한 함수를 만들 수 있다.사용자 정의 함수(function)select 절에 사용되어야 하니 반드시 반환값이 있다.만드는 방법create or replace function 함수이름(매개변수명 자료형) return 자료형is 변수선언begin 함수가 해야할 문장(들) return 값;end;/-- 판매금액을 매개변수로 전달받아 이익금을 반환하는 함수를 만들어봅시다.-- 판매금액이 30000원이상이면 10% 그렇지 않으면 5%가 이익금입니다.create or replace .. 2024. 6. 25.
trigger 어떠한 테이블에 insert, update, delete이 일어났을 떄 연쇄하여 자동으로 동작시키고자 할 sql 문장이 있다면 트리거용한다. 이벤트 발생( insert, update, delete)시 자동으로 연쇄.대상이 되는 테이블, 이벤트 종류, 시점을 정할 수 있다. create or replace trigger 트리거이름시점 이벤트 종류on 테이블명 for each rowdeclarebeginend;/시점에는 before, after가 올 수 있다.이벤트에는 insert, update, delete 가 올 수 있다.트리에서 사용할 수 있는 키워드:new - insert, update 가 된 새로운 행을 의미하는 변수:old - delete, update 되기 전 과정의 행을 의미하는 변수-- de.. 2024. 6. 24.
PL/SQL 오라클 안에서도 프로그램을 만들 수 있다. 오라클 전용 프로그래밍 언어 PL/SQL 이다.(Procedural Language Structured Query Language) PL/SQL 로 만들 수 있는 것procedure : 자바의 메소드와 유사function : select 절에 사용할 수 있다.trigger : 이벤트(insert, update, delete)가 발생했을 때 연쇄하여 동작프로시저 만들기(메소드를 만든 것이나 다름없다)create or replace procedure 프로시저이름(매개변수명 모드 자료형,...)as 지역변수(들)begin 프로시저가 해야할 sql 명령어(들)end;/ 모드의 종류in : 입력용. 프로시저가 일을 하기 위해 값을 전달 받기 위한 모드(기본)out : 출.. 2024. 6. 24.
index 조건식에 자주 사용되는 컬럼에 대하여 미리 색인표를 만들어 두는 것을 말한다.인덱스를 만들어 두면 검색 시에 빠른 성능을 기대할 수 있다.어떤 책이 한권 있다고 가정하자. 그런데 그 책이 10페이지가 안된다. 이런 경우에는 굳이 색인표를 만들 필요가 없다.이 경우에 색인표를 만들거나 안만들거나 성능 차이를 기대할 수 없다. 책이 굉장이 두꺼우면, 1000페이지 600페이지정도 된다면 색인표가 있으면 빠르게 찾는 것을 도움 받을 수 있다.이것처럼 데이터 양(레코드 수) 이 많을 때 검색(조건식) 에 빈번히 사용하는 컬럼에 대하여 "인덱스"를 만들어두면 검색 시에 성능 향상을 기대할 수 있다.데이터를 빈번하게 수정하는 컬럼에 인덱스를 넣는것은 오히려 성능 저하의 요인이 된다.만드는 방법create index.. 2024. 6. 24.
뷰(View) 뷰(View) : 실제 물리적으로 존재하지 않는 가상의 논리적인 테이블자주 사용하는 복잡한 sql 을 view로 만들어둠으로써 편리하게 사용할 수 있다.보안 유지 상 사용자별로 조회할 수 있는 칼럼을 제한할 수 있다.사용자 별로 접근 권한을 두고자 할 때 View 를 이용한다.select 한 것으로 이름을 정해줄 때 사용한다.count, sum 등에 맞는 애칭이 필요하다.이 view 에서도 조건식에 맞는 view를 조회할 수 있다.view를 통해서 추가, 수정, 삭제가 가능하다. 실제로는 뷰를 만들 때 사용한 emp 테이블에 레코드가 추가되고 뷰의 속성 이외의 속성들이 null을 허용하거나, delete 값이 있어야지만 추가할 수 있다.create view 뷰이름 as select~-- 가장 판매량이 높.. 2024. 6. 24.
서브쿼리 위치에 따른 용어 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.