DAY 34 - ORACLE DB - 프로시저 / 함수 / 트리거 (2024.08.20)
·
Oracle
저장 서브프로그램(stored subprogram) PL/SQL 블록은 작성한 내용을 한 번 실행하는 데 사용한다.PL/SQL 블록은 이름이 정해져 있지 않아서 익명 블록이라고 한다.익명 블록은 오라클에 저장되지 않기 때문에 한 번 실행한 후에 다시 실행하려면 PL/SQL 블록을 다시 작성하여 실행해야 한다. - 여러 번 사용할 목적으로 이름을 지정하여 오라클에 저장해 두는 PL/SQL 프로그램 - 저장할 때 한 번 컴파일 한다.- 오라클에 저장하여 공유할 수 있어서 메모리, 성능, 재사용성 등 여러 면에서 장점이 있다.- 대표적인 구현 방식은 프로시저, 함수, 패키지, 트리거이다  1. 프로시저 - 특정 처리 작업을 수행하는데 사용하는 저장 서브프로그램- 파라미터를 사용할 수도 있고 사용하지 않을 수도..
DAY 33 - ORACLE DB - SYNONYM / PL/SQL( 조건제어문) (2024.08.19)
·
Oracle
[ SYNONYM ]- Synonym은 오라클 객체(테이블, 뷰, 시퀀스, 프로시저)에 대한 대체이름(Alias)를 말한다- Synonym은 Object가 아니라 Object에 대한 직접적인 참조이다- 데이터베이스의 투명성을 제공하기 위해서 사용 한다   다른 유저의 객체를 참조할 때 많이 사용 한다- 객체의 긴 이름을 짧게 만들어 SQL 코딩을 단순화 할 수 있다- 객체의 실제 이름, 소유자, 위치를 감추기 때문에 데이터베이스의 보안을 유지할 수 있다 * 종류 Private Synonym 전용 Synonym은 특정 사용자만 사용할 수 있다 Public Synonym 공용 Synonym은 사용자 그룹이 소유하면 그 데이터베이스에 있는 모든 사용자가 공유한다 [형식] CREATE [PUBLIC] SYNON..
DAY 32 - ORACLE DB - 뷰(인라인) (2024.08.16)
·
Oracle
[뷰 - 인라인(inline)개념] : 별칭을 사용하는 서브쿼리 (일반적으로 from절에서 사용)SELECT ~~ FROM 테이블 WHERE SELECT ~~~SELECT ~~FROM SELECT ~~~create or replace view v_view7("부서ID", "부서평균")as select nvl(department_id, 5000), round( avg(salary), -3)from employeesgroup by department_idorder by department_id asc;select * from v_view7;select 부서ID, 부서평균from (select nvl(department_id, 5000) "부서ID", round( avg(salary), -3) "부서평균"fr..
DAY 31 - ORACLE DB - VIEW / 전체 복습 (2024.08.14)
·
Oracle
[ VIEW ] - 가상(복사본)- 다른 테이블이나 뷰에 포함된 맞춤표현(virtual table) join하는 테이블의 수가 늘어나거나 질의문이 길고 복잡해지면작성이 어려워지고 유지보수가 어려울 수 있다. 이럴 때는 스크립트를 만들어두거나 stored query를 사용해서데이터베이스 서버에 저장해두면 필요할 때 마다 호출해서 사용할 수 있다 - 뷰와 테이블의 차이는 뷰는 실제로 데이터를 저장하고 있지 않다는 점이다.- 베이스테이블(Base table) : 뷰를 통해 보여지는 실제테이블- 선택적인 정보만 제공 가능 뷰는 수정까지는 상관없는데 삭제는 안된다.뷰랑 원본이 연결되어있기 때문에 뷰를 통해 원본을 바꿀 수 있다.  [형식] create [or replace] [force|noforce] view ..
DAY 30 - ORACLE 연습5 (2024.08.13)
·
Oracle
[ ROLL UP ] 1학년 - department_name    1반 총점 or 평균    2반    3반서브 total 구하는 거 - roll up 2학년    1반    2반    3반select department_name, job_title, round(avg(salary), 2) as "Avg_sal"from employeesjoin departments using(department_id)join jobs using(job_id)group by rollup(department_name, job_title); 설명: ROLLUP은 계층적인 집계 결과를 반환합니다. 지정된 그룹화 컬럼의 순서에 따라 집계 레벨이 결정다.그룹화 수준:department_name, job_title로 그룹화된 결과d..
DAY 29 - ORACLE DB 연습4 - 서브쿼리 / 상관쿼리 (2024.08.12)
·
Oracle
[하위질의 (SubQuery)] \: 하나의 쿼리에 다른 쿼리가 포함되는 구조, ( )로처리 1) 단일 행 서브쿼리(단일 행 반환) : > , =, (!=)          Main Query                 Sub Query -----> 1개결과여기서 JOIN을 걸어야할지 Sub Query를 걸어야할지 고민해야한다.부서코드를 알아낼 수 있는지 본다.코드넘버가 90번이면 90번인 사람의 이름을 알 수 있게 되는 것이다.select department_id from employees where first_name='Neena';select department_name from departments where department_id=90; 이렇게 따로 쓴 코드를 합쳐야한다.select dep..
DAY 28 - SELF JOIN / UNION / UNION ALL / INTERSECT / MINUS (2024.08.09)
·
Oracle
[ self 조인 ]select employee_id, manager_id, last_name from employees; [e]select employee_id, last_name from employees order by 1; [m]101 - Kochhar - King102 - De Haan - King 방법 1select e.employee_id as 사원번호, e.last_name as 사원이름, m.last_name as 관리자from employees e, employees mwhere m.employee_id = e.manager_id order by 1; 방법 2select e.employee_id as 사원번호, e.last_name as 사원이름, m.last_name as 관리자fro..
DAY 15 - Oracle 설치(hr계정 / 사용자 계정_java) / 기본SQL / 트랜잭션 (2024.07.23)
·
Oracle
데이터베이스는 여러개이다.구분해야한다. → 이름부여 데이터베이스 - xe1521 port 번호 정해져있음. 네트워크 → IP(고유번호 / 주소), port http://www.naver.com:80 80포트로 들어옴 123.123.123(IP)타고 IP를 안 외우니 도메인 주소로 데이터베이스에 들어갈 때 port번호가 필요하다.계정만들어서 들어옴.계정 sys system비밀번호 1234sys system / 1234  hr/hrhr 계정에 비밀번호 hr이야scott / tiger예전에는 다 줬는데 이제 없애버림. hr/hr 연습용으로 할거임 -> 데이터준다. 우리들의 계정을 만들 것이다.c##java/1234 - 나만의 공간 잡는 것 (수업용)c## 꼭 들어가야한다. - 21C 확인하기 !!listene..
summ.n
'Oracle' 카테고리의 글 목록