- 오라클 쿼리2024년 07월 31일
- chantleman
- 작성자
- 2024.07.31.:57
오라클 다른 계정 테이블에 있는 데이터 조회하는 법
사용자 이름.테이블명
SELECT * FROM pc03.MEMBER;
일련번호로 행번호 생성하기 (시퀀스 x)
select nvl(max(mem_no),0)+1
INSERT INTO MEMBER(mem_no, id, pw, name, reg_date) VALUES( (select nvl(max(mem_no),0)+1 from member), 'ID', 'PW', 'NAME', SYSDATE);
mem_no에 1부터 증가시키는 행번호 삽입하기
이전값, 다음값 (lag, lead)
lag: 이전 행의 값 리턴
lead: 다음 행의 값 리턴
lag(컬럼명, [값을 가져올 행 위치], [값이 없을 경우 기본값]) over([partition by 그룹 컬럼명] order by 정렬 컬럼명)
lead(컬럼명, [값을 가져올 행 위치], [값이 없을 경우 기본값]) over([partition by 그룹 컬럼명] order by 정렬 컬럼명)
SELECT empno , ename , job , sal , LAG(empno) OVER(ORDER BY empno) AS empno_prev , LEAD(empno) OVER(ORDER BY empno) AS empno_next FROM emp WHERE job IN ('MANAGER', 'ANALYST', 'SALESMAN');
현재행을 중심으로 이전 행의 사번과 다음 행의 사번 출력
SELECT empno , ename , job , sal , LAG(empno, 2, 9999) OVER(ORDER BY empno) AS empno_prev FROM emp WHERE job IN ('MANAGER', 'ANALYST', 'SALESMAN');
현재 행을 중심으로 두번째 이전 행 값 출력
가져올 행의 값이 없을 경우 기본값 9999를 출력
SELECT empno , ename , job , sal , LAG(job) OVER(PARTITION BY job ORDER BY empno) AS empno_prev FROM emp WHERE job IN ('MANAGER', 'ANALYST', 'SALESMAN');
그룹 컬럼 기준으로 이전 값 또는 다음값 표시
여러 컬럼 한번에 수정하기
update board set (cnt,content) = (select cnt+1, content from board where board_no=1) where board_no=1;
복잡한 select문 처리하기(with as)
with data as (select c.*, mem_name, mem_add1, p.* from cart c , member m , prod p where c.cart_member = m.mem_id and c.cart_prod = p.prod_id) select * from data where cart_member='a001';
with as 구문 이용해서 테이블 조인 후 그 결과를 통해 데이터 조회하려고 하는데
조회할 때마다 일일이 테이블 조인하기 힘드니까
쿼리가 복잡할 때는
with 테이블 as (쿼리문) 구문으로 한 번 끊으면
data 라는 테이블에 쿼리 결과들이 담기게 되고
그 data 테이블로 select 하면 훨씬 간편하게 조회할 수 있음
복잡한 select문 처리하기2 (view 만들기)
create view data as (select c.*, mem_name, mem_add1, p.* from cart c ,member m ,prod p where c.cart_member = m.mem_id and c.cart_prod = p.prod_id);
select sum(prod_price*cart_qty) from data where cart_member='a001';
728x90'오라클' 카테고리의 다른 글
코드조각 (0) 2024.08.02 MERGE INTO (0) 2024.08.01 오라클 FK 설정 (0) 2024.07.31 테이블스페이스 (0) 2024.07.30 다른 사용자 db 접속 (1) 2024.07.24 다음글이전글이전 글이 없습니다.댓글
스킨 업데이트 안내
현재 이용하고 계신 스킨의 버전보다 더 높은 최신 버전이 감지 되었습니다. 최신버전 스킨 파일을 다운로드 받을 수 있는 페이지로 이동하시겠습니까?
("아니오" 를 선택할 시 30일 동안 최신 버전이 감지되어도 모달 창이 표시되지 않습니다.)