의사컬럼, Pseudo Columnrownum- 진짜 컬럼이 아닌데 컬럼처럼 행동하는 요소- 행번호 의사컬럼(현재행의 순서를 반환 의사컬럼)- 오라클 전용.- 서브쿼리를 잘하면 사용하기 쉬움 다음과 같은 결과가 나오는 테이블이 있다고 할때...select * from tblInsa;여기 > 다음과 같이 정렬조건이 붙게되면 rownum의 순서가 깨지게 됩니다. 기존 select * from tblinsa 결과에서 정해진 rownum들이 order by 정렬조건에 의해서 다 깨어지는 것이지요. 그래서 다음과 같이 처리하게 됩니다. 새로운 order by 절에 알맞도록 rownum을 조정하는 작업입니다. select name,buseo, jikwi,basicpay,rownum,rnum from (select ..
객체 생성 : create객체 수정 : alter객체 삭제 : drop데이터 생성 : insert데이터 수정 : update데이터 삭제 : delete 테이블 수정하기- 테이블의 구조(컬럼)를 수정하기- 최대한 테이블을 수정할 일을 만들지 말 것이 중요******************* 1. 테이블 삭제 > 테이블 쿼리 수정 > 수정된 DDL로 새롭게 테이블을 생성 +기존 데이터가 있으면 데이터를 백업 -> 테이블 삭제 -> 데이터 복구 >> 개발(공부)중에만 사용O, 시스템 운영중에는 사용 X 2. alter 명령어 -> 테이블의 구조만 변경 + 데이터 그대로 유지 :개발(공부)중에만사용 O , 운영중에는 사용 O(쉽지는 않다) 테이블 수정 > 컬럼 수정1. 새로운 컬럼을 추가하기 : 가장 쉬움2. 기..
뷰, View- DB Object 중 하나(테이블, 시퀀스, 뷰)- 가상 테이블- 진짜 테이블의 복사본 -> 복사 테이블, 뷰 테이블, 가상 테이블..- 테이블처럼 취급하는 객체(***)뷰 관리1. create2. drop 뷰생성create view vwInsa --머리as --목select * from tblInsa; --몸통(*****) 복사 테이블 생성create table copyInsaasselect * from tblInsa; 뷰사용 from 절에서 일반 테이블과 똑같이 쓸 수 있다select * from vwInsa;select * from copyInsa; 이렇게 where 절로 조건도 달아서 원하는 데이터도 뽑아낼 수 있다.select * from vwInsa where buseo = '..
조인, Join조인을 하기 이전 직원 테이블 + 담당 프로젝트 정보create table tblStaff( seq number primary key, --직원번호(PK) name varchar2(30) not null, --직원명 salary number not null, --급여 address varchar2(300) not null, --주소 projectname varchar2(100) null --해당이 담당 중인 프로젝트명);insert into tblStaff (seq, name, salary, address, projectname) values (1, '홍길동', 250, '서울시', '홍콩 수출');insert into tblStaff (seq, name, salary, address, p..
서브쿼리, Sub Query- 하위쿼리, 부분쿼리- SQL 안에 또 다른 SQL이 들어있는 형태- 서브쿼리를 사용할 수 있는 위치(어디든지 데이터가 필요한 곳이면 다 사용 가능) a. where절 : 서브쿼리의 결과셋을 조건으로 사용한다. b. 컬럼리스트 : 서브쿼리의 결과셋을 하나의 컬럼값으로 사용한다. c. from절 : 서브쿼리의 결과셋을 하나의 테이블로 이용. (=뷰 , 인라인뷰 d. order by절 e. group by절 목적 : tblhousekeeping 테이블에서 가장 비싼 아이템을 가져오려고한다. select item from tblhousekeeping where max(price) = price; 이게 안됨 서브쿼리사용서브쿼리가 먼저 질의한 후에 반환되는 결과값을 원래 쿼리에 사용하..
group by 절 - 레코드들을 특정 컬럼 값에 맞춰서 그룹을 나누는 작업.- 편가르기 그룹을 왜묶을까? 1. 그룹을 나눠서 구분해서 관리하려고? 따로 정렬을 하기 위해서? : X2. 나눠놓은 그룹들을 완전분리 -> 별도의 테이블로 관리하기 위해서? : X 3. 각각의 나눠놓은 그룹별로 집계함수를 적용하기 위해서 : O(group by 절의 목적) - group by 컬럼명 : 그룹을 나누는데 기준이 되는 컬럼명(1개 or 그이상) - group by 구문- select 컬럼리스트 from 테이블명 [where절] [group by 절] [order by절]- group by 사용시 컬럼리스트에 올수있는 대상 1. 집계함수(주목적) 2. group by의 대상 컬럼 3. 1과 2를 제외하고는 모두 불가..
update문 - DML(insert,delete,update)- 데이터를 수정하는 명령어- update 테이블명 set 컬럼명 = 수정할값[, 컬럼명 = 수정할 값]xN [where 절]- 테이블의 모든행에 대한 수정.- where 절 : 수정하고 싶은 레코드 지정 예제로 살펴보기 update tblname set gender='f'; --> 이건 전체 레코드의 gender 값을 'f'로 바꾸는것.update tblname set gender='f' where last='유'and first='재석'; 승진한 임직원의 직위 변경하기- 홍길동 부장 -> 이사로 진급 -> 직급을 이사로 수정해야한다.- ****** : 수정할 대상이 1개행(유일한 행) -> 그 행을 반드시 다른행과 구분해야한다. 식별가능해..
Insert문- DML(insert, update, delete)- insert into 테이블명(컬럼리스트) values(값리스트); create table tblMemo( seq number primary key, name varchar2(30) not null, memo varchar2(1000) not null, regdate date default sysdate not null, etc varchar2(500) default '비고없음' null, page number null);create sequence memoSeq; --메모테이블의 시퀀스 객체 생성한다. select * from tblMemo; insert 문 여러가지 사용 패턴 1. 표준 : 원본테이블에 정의된 컬럼 순서대로 컬럼리스트..